64 Commits

Author SHA1 Message Date
Carlos Camacho
927495fe3d Change template names to queens
The new master branch should point now to queens instead of pike.

So, HOT templates should specify that they might contain features
for queens release [1]

[1]: https://docs.openstack.org/heat/latest/template_guide/hot_spec.html#queens

Change-Id: I7654d1c59db0c4508a9d7045f452612d22493004
2017-11-23 10:15:32 +01:00
Zuul
eeabc17247 Merge "Set notification_format to 'unversioned'" 2017-11-22 22:06:52 +00:00
Sven Anderson
1624e1cf19 Set notification_format to 'unversioned'
Currently there is no consumer for the versioned notification format,
which results in messages queueing up for infinite time.  Until we
have a consumer for the 'versioned' format, we set it to
'unversioned'.

Depends-On: Id08b2d5a1e87825b182e767bffc4c15e5ce9968f
Change-Id: I5be547acbd1245de42572941d2185863697f89bd
2017-11-10 17:33:22 +01:00
Juan Antonio Osorio Robles
2f7888c2c5 Add constraints to service Debug flags
The service debug flags (e.g. BarbicanDebug), allow the deployer to set
the verbose logging for a specific service. They are strings to allow
folks to set it up regardless of the global Debug flag being set.

This commit adds a constraint to set the allowed values for these
parameters. It is based on a subset of the underlying implementation
that sets this flag (which uses any2bool).

Change-Id: I35e7a7ee35aefb7108ec6b0bb8f3124610fb97ee
2017-11-06 08:23:21 +02:00
44c2a34651 Switch cinder_catalog_info from v2 to v3
nova removed cinder v2 support in [1], and puppet-nova
changed default in [2].

[1] https://review.openstack.org/#/c/501874/
[2] https://review.openstack.org/#/c/506557/

Change-Id: I38e90e3e82067f8984981d9d2fb5d49d86b923e5
2017-10-23 17:06:31 +05:30
Jenkins
56dd949172 Merge "Ensure Debug is a boolean" 2017-10-10 07:29:21 +00:00
Oliver Walsh
23331889a5 Fix cold/live migration network config
Cold migration network is determined by the value of my_ip in nova.conf.
If this isn't set then the network with the default gateway will be used.

This patch sets my_ip and the whitelisted IP for cold migation over SSH to the
NovaApiNetwork.

Until https://bugs.launchpad.net/nova/+bug/1671288 is fixed we cannot control
the network used for live migration over SSH. It is determined by hostname
resolution.
This patch sets the whitelisted IP for live migration over SSH to the hostname
resolution network for the role - which is typically the same as NovaApiNetwork.
(NB The puppet manifest will remove duplicates).

Live migration over TLS is not affected. It can control the network used so it
configurable via NovaLibvirtNetwork.

Change-Id: Ica3f79d6d0cfae446e276172146f3a9407f2971f
Depends-On: Id22a6c990f424b9f3ca6159088540ea207460ffd
2017-09-29 10:24:41 +01:00
Ade Lee
c9b7091536 Ensure Debug is a boolean
Oslo does not like it when Debug is not a proper python boolean
Closes-Bug: 1719929

Change-Id: Ib6c3969d4dd75d5fb2cc274266c060acff8d5571
2017-09-27 13:22:07 -04:00
Ben Nemec
c54e9b681b Make various password descriptions consistent
Since these are obviously global parameters they shouldn't specify
what will be using them because they are used in multiple places.

Change-Id: I5054c2d67dffe802e37f8391dd7bad4721e29831
Partial-Bug: 1700664
2017-07-21 18:39:28 +00:00
Giulio Fidente
baf6eee501 Adds network/cidr mapping into a new service property
Makes it possible to resolve network subnets within a service
template; the data is transported into a new property ServiceData
wired into every service which hopefully is generic enough to
be extended in the future and transport more data.

Data can be consumed in service templates to set config values
which need to know what is the subnet where a deamon operates (for
example the Ceph Public vs Cluster network).

Change-Id: I28e21c46f1ef609517175f7e7ee19e28d1c0cba2
2017-07-14 13:44:04 +02:00
Emilien Macchi
d5145167cb Allow to set Notification Driver to 'noop'
This patch does 2 things:
* Configure messagingv2 as default driver for Oslo Notifications sent on
  RPC.
* Allow users to choose between messagingv2 (default) and noop when we
  want to disable notifications (for example, when Telemetry is disabled).
* Deprecate KeystoneNotificationDriver in favor of NotificationDriver.

Change-Id: Ia547d7f4bfb51e7c45246b097b48fd86da231bd3
Related-Bug: #1701357
2017-07-11 13:57:48 -07:00
Emilien Macchi
1e899703cc Ability to enable/disable debug mode per OpenStack service
Add ServiceDebug parameters for each services that will allow operators
to enable/disable Debug for specific services.

We keep the Debug parameters for backward compatibility.

Operators want to enable Debug everywhere:
  Debug: true
Operators want to disable Debug everywhere:
  Debug: false
Operators want to disable Debug everywhere except Glance:
  GlanceDebug: true
Operators want to enable Debug everywhere except Glance:
  Debug: true
  GlanceDebug: false

New parameters: AodhDebug, BarbicanDebug, CeilometerDebug, CinderDebug,
CongressDebug, GlanceDebug, GnocchiDebug, HeatDebug, HorizonDebug,
IronicDebug, KeystoneDebug, ManilaDebug, MistralDebug, NeutronDebug,
NovaDebug, OctaviaDebug, PankoDebug, SaharaDebug, TackerDebug,
ZaqarDebug.

Note: for backward compatibility in Horizon, HorizonDebug is set to
false, so we maintain previous behavior.

Change-Id: Icbf4a38afcdbd8471d1afc11743df9705451db52
Implement-blueprint: composable-debug
Closes-Bug: #1634567
2017-06-07 11:26:30 +02:00
Saravanan KR
a096ddab34 Add role specific information to the service template
When a service is enabled on multiple roles, the parameters for the
service will be global. This change enables an option to provide
role specific parameter to services and other templates.

Two new parameters - RoleName and RoleParameters, are added to the
service template. RoleName provides the role name of on which the
current instance of the service is being applied on. RoleParameters
provides the list of parameters which are configured specific to the
role in the environment file, like below:

  parameters_default:
      # Default value for applied to all roles
      NovaReservedHostMemory: 2048
      ComputeDpdkParameters:
          # Applied only to ComputeDpdk role
          NovaReservedHostMemory: 4096

In above sample, the cluster contains 2 roles - Compute, ComputeDpdk.
The values of ComputeDpdkParameters will be passed on to the templates
as RoleParameters while creating the stack for ComputeDpdk role. The
parameter which supports role specific configuration, should find the
parameter first in in the RoleParameters list, if not found, then the
default (for all roles) should be used.
Implements: blueprint tripleo-derive-parameters

Change-Id: I72376a803ec6b2ed93903cc0c95a6ffce718b6dc
2017-05-15 10:06:46 +05:30
Zane Bitter
b26fe7d164 Use the make_url function to build URLs
Change-Id: I2b23d92c85d5ecc889a7ee597b90e930bde9028e
Depends-On: I72f84e737b042ecfaabf5639c6164d46a072b423
2017-05-05 14:43:11 -04:00
Mike Bayer
a87b5630ba add configurable timeouts for DB sync
This patch integrates with the db_sync_timeout
parameter recently added to puppet-nova
and puppet-neutron in
I6b30a4d9e3ca25d9a473e4eb614a8769fa4567e7, which allow for the full
db_sync install to have more time than just Pupppet's
default of 300 seconds.   Ultimately, similar timeouts
can be added for all other projects that feature
db sync phases, however Nova and Neutron are currently
the ones that are known to time out in some
environments.

Closes-bug: #1661100
Change-Id: Ic47439a0a774e3d74e844d43b58956da8d1887da
2017-04-05 16:10:02 -06:00
Jenkins
151a4c909d Merge "[N->O] Fix wrong database connection for cell0 during upgrade." 2017-03-30 11:51:22 +00:00
Sofer Athlan-Guyot
4883e8b229 [N->O] Fix wrong database connection for cell0 during upgrade.
During upgrade the cell0 database has the connection pointing to

   mysql+pymysql://nova:c2cdagE8PyAbnpers3AD88Hge@10.0.0.19/nova_cell0?bind_address=10.0.0.20

where 10.0.0.20 was the ip of the bootstrap node.  This makes the
nova-api fails on 2/3 node at the end of the
major-upgrade-composable-steps.yaml step.

We do have the right value in the hiera database so make sure we use
it for cell0 creation and not the nova.conf file which hasn't been
updated yet.

Change-Id: I09775206cb8fc5e15934f7e4475506a7fe17271e
Closes-Bug: #1675359
2017-03-23 17:58:03 +01:00
Steven Hardy
947a7148e8 Only set EnableConfigPurge on major upgrades
Bug #1611800 fixed an upgrade issue by enabling purging configs for
some services, but this causes issues such as longer updates and
restarting services in the minor update case, so only do this for
major upgrades, and default to false.

Related-Bug: #1611800
Closes-Bug: #1674858
Change-Id: Iff7d715f6730c5633f1146008504b4309ef3133d
2017-03-22 09:20:37 +00:00
Michele Baldessari
90431683b5 Make the DB URIs host-independent for all services
When fixing LP#1643487 we added ?bind_address to all DB URIs.
Since this clashes with Cellsv2 due to the URIs becoming host
dependent, we need a new approach to pass bind_address to pymysql
that leaves the DB URIs host-independent.

In change Iff8bd2d9ee85f7bb1445aa2e1b3cfbff1f397b18 we first create a
/etc/my.cnf.d/tripleo.cnf file with a [tripleo] section with the correct
bind-address option.

In this change we make sure that the DB URIs will point to the added
file and to the specific section containing the necessary bind-address
option. We do introduce a new MySQLClient profile which will hold all
this more client-specific configuration so that this change can fit
better in the composable roles work. Also, in the future it might
contain the necessary configuration for SSL for example.

Note that in case the /etc/my.cnf.d/tripleo.cnf file does not exist
(because it is created via the mysqlclient profile), things keep on
working as usual and the bind-address option simply won't be set, which
has no impact on hosts where there are no VIPs.

Co-Authored-By: Damien Ciabrini <dciabrin@redhat.com>

Change-Id: Ieac33efe38f32e949fd89545eb1cd8e0fe114a12
Related-Bug: #1643487
Closes-Bug: #1663181
Closes-Bug: #1664524
Depends-On: Iff8bd2d9ee85f7bb1445aa2e1b3cfbff1f397b18
2017-02-17 17:22:42 +01:00
Jenkins
0f1c1d66eb Merge "Add nova service support for composable upgrades" 2017-02-15 19:23:33 +00:00
Steven Hardy
5353f1c7c9 Add nova service support for composable upgrades
Co-Authored-By: Mathieu Bultel <mbultel@redhat.com>
Co-Authored-By: Oliver Walsh <owalsh@redhat.com>

Change-Id: Iafad800a6819d7e75fdaab60d328999d3d3c037f
Partially-Implements: blueprint overcloud-upgrades-per-service
Related-Bug: #1662344
2017-02-14 23:23:33 +00:00
Juan Antonio Osorio Robles
d1eb0bc0dc Use Keystone internal endpoint instead of admin for services
The admin endpoint is listening on the ctlplane network by default;
services should ideally be using the internal api network for this kind
of traffic, as the ctlplane network is mostly for provisioning. On the
other hand, the admin endpoint shouldn't be as relevant with services
switching to keystone v3.

Change-Id: I1213a83ef8693c1cca1d20de974f7949a801d9f1
2017-02-14 02:41:13 +00:00
Jenkins
fab8f52263 Merge "Configure the placement API's interface to use the internal endpoint" 2017-02-14 00:38:20 +00:00
Juan Antonio Osorio Robles
ca843e1882 Configure the placement API's interface to use the internal endpoint
Due to the keystoneauth library's defaults, it uses the public interface
currently. This is not desirable in most cases (specially when using
network isolation); so we set it to use the internal one.

Change-Id: Ic222a2b734f4d512349fd8556aa2864b13a1eb07
Depends-On: I1c7fd3a32d04e2fafb3820d1c1f221f45c613c83
Closes-Bug: #1663187
2017-02-13 08:44:54 +02:00
Emilien Macchi
94a0d14f8d Fix Neutron region in nova.conf
Default in puppet-neutron is 'RegionOne', so let's override it with the
right parameter in TripleO.

Change-Id: I3f1693b91178027c8e05288aeba72b7d6bd042be
2017-02-12 08:48:15 -05:00
Oliver Walsh
6d27319b7c Stop setting bind_address on nova db uri.
This reverts the changes in https://review.openstack.org/414629 for nova as
they are incompatible with cell_v2.

This is a temporary fix for HA while a long-term solution is developed.

Change-Id: I79d30a2d76a354999152c0c997ea77f104c51027
Related-bug: #1643487
Closes-bug: #1662344
2017-02-07 13:02:00 +00:00
Jenkins
1fc0346dd3 Merge "Move nova placement hiera to nova-base" 2017-01-20 13:52:50 +00:00
Jenkins
6a96411953 Merge "Revert "Revert "Specify cell0 db creation""" 2017-01-20 04:06:11 +00:00
Emilien Macchi
cb56496b64 Move nova placement hiera to nova-base
Nova placement hiera parameters need to be common across all nova
services because they are used to more than one place.
This patch moves them to nova-base, so nova-compute and other services
that need it will be able to run correctly.

Change-Id: Ibccc55fc9d045487fb7e47bd1c2ebe9cf788765e
Depends-On: Iada8e9fcccec7dbfe7ac0ec0f9ec6eac1581290e
2017-01-20 00:13:07 +00:00
Carlos Camacho
07cdf9bec2 Enabling until_complete to be configured dynamically
Adding to THT the cabability of configuring until_complete
in the archive job.
This will be a boolean flag to clean all the deleted instances.
Will run in batches of max_rows until empty.

Change-Id: I087bc66729fef4f33122a7633c154d5a66613d6f
Depends-On: I927b75adb0fc3251f3734d41f4393590294c1c9b
Closes-Bug: 1650680
2017-01-19 19:54:12 +01:00
Jenkins
7d283d3629 Merge "Configure cron parameters for Cinder Heat Keystone and Nova" 2017-01-19 17:57:17 +00:00
Dan Prince
0561ae1a27 Revert "Revert "Specify cell0 db creation""
This reverts commit 34f3ab689616517888422582357d0d4a38e0925d.

Creating the cells database doesn't hurt anything and will fix
issues using the new Docker nova services for development
(these packages are more recent and require cells).

Change-Id: I85b0e80ca208ef3ca3dfadfe6e98d83ec009a31d
2017-01-18 10:05:41 -05:00
Emilien Macchi
26ae162564 Nova Placement API composable service
Add support to deploy Nova Placement API service in TripleO.

Change-Id: Ie41ebc362a0695c8f55419e231100c63007405ed
2017-01-17 16:23:16 +00:00
Carlos Camacho
e1f223b925 Configure cron parameters for Cinder Heat Keystone and Nova
Change-Id: I1b2c0025e363d0387ddc0514decd3bc2dc80f9ae
Closes-Bug: 1650680
2017-01-16 09:43:32 +01:00
Jenkins
720c595ab6 Merge "Revert "Specify cell0 db creation"" 2017-01-13 19:49:27 +00:00
Alex Schultz
34f3ab6896 Revert "Specify cell0 db creation"
This reverts commit 4e3b085a59e7af49d1025986fd80796be338f5fd.

Change-Id: Id9b3610af7167572b292ba330c3f0aad660fedc4
Related-Bug: #1656276
2017-01-13 16:55:56 +00:00
Jenkins
0bfe7c9279 Merge "DB connection: prevent src address from binding to a VIP" 2017-01-04 16:43:34 +00:00
Alex Schultz
4e3b085a59 Specify cell0 db creation
This change pulls the hard coded value out of puppet-tripleo to later
allow people to skip the cell0 creation if they want a more complex cell
v2 setup for nova.

Change-Id: I08119d781ef60750cc19753bc03190e413159925
Related-Bug: #1649341
2017-01-03 13:14:03 -07:00
Jenkins
6b8c34b27a Merge "Bump template version for all templates to "ocata"" 2017-01-03 10:31:44 +00:00
Damien Ciabrini
56ebc7e58d DB connection: prevent src address from binding to a VIP
When a service connects to the database VIP from the node hosting this
VIP, the resulting TCP socket has a src address which is by default
bound to the VIP as well. If the VIP is failed over to another node
while the socket's Send-Q is not empty, TCP keepalive won't engage and
the service will become unavailable for a very long time (by default
more than 10m).

To prevent failover issues, DB connections should have the src address
of their TCP socket bound to the IP of the network interface used for
MySQL traffic. This is achieved by passing a new option to the
database connection URIs. This option is available starting from
PyMySQL 0.7.9-2.

We use a new intermediate variable in hiera to hold the IP to be used
as a source address for all DB connections. All services adapt their
database URI accordingly.

Moreover, a new YAML validation check is added to guarantee that new
services will construct their database URI appropriately.

Change-Id: Ic69de63acbfb992314ea30a3a9b17c0b5341c035
Closes-Bug: #1643487
2017-01-03 10:56:02 +01:00
Steven Hardy
3c6ec654b4 Bump template version for all templates to "ocata"
Heat now supports release name aliases, so we can replace
the inconsistent mix of date related versions with one consistent
version that aligns with the supported version of heat for this
t-h-t branch.

This should also help new users who sometimes copy/paste old templates
and discover intrinsic functions in the t-h-t docs don't work because
their template version is too old.

Change-Id: Ib415e7290fea27447460baa280291492df197e54
2016-12-23 11:43:39 +00:00
Alex Schultz
7f58104f5d Pass nova rabbit information to mysql
The cell v2 setup requires the transport url for nova. We need to
provide mysql with the rabbit connection information so that it can it
when setting up the cell information.

Change-Id: I43ba77cd4c8da7c6dc117ab0bd53e5cd330dc3de
Related-Bug: #1649341
2016-12-22 13:54:13 -07:00
Dan Prince
7876851011 Hiera optimization: use a new hiera hook
This patch optimizes how we deploy hiera by using a new
heat hook specifically designed to help compose hiera
within heat templates. As part of this change:

 - we update all the 'hiera' software configurations to set the group to hiera
   instead of os-apply-config.

 - The new format uses JSON instead of YAML. The hook actually writes
   out the hiera JSON directly so no conversion takes place. Arrays,
   Strings, Booleans all stay in their native formats. As such we can avoid
   having to do many of the awkward string and list conversions in t-h-t to
   support the previous YAML formatting.

 - The new hook prefers JSON over YAML so upgrading users will have the
   new files prefered. (we will post a cleanup routine for the old files
   soon but this isn't a new behavior, JSON is now simply prefered.)

 - A lot of services required edits to account for default settings that
   worked in YAML that no longer work correctly in the native JSON
   format. In almost all these cases I think the resulting codes looks
   cleaner and is more explicit with regards to what is getting
   configured in hiera on the actual nodes.

Depends-On: I6a383b1ad4ec29458569763bd3f56fd3f2bd726b
Closes-bug: #1596373

Change-Id: Ibe7e2044e200e2c947223286fdf4fd5bcf98c2e1
2016-11-30 22:16:13 -05:00
Dan Prince
8ab22a95da Nova base cleanups for hiera json hook
This patch resolves an issue with nova-base.yaml that prevents
it from working with the new heat hiera agent hook (which
uses Json instead of Yaml).

It updates the service so that we only set the upgrade level if it
is not an empty string.

Partial-bug: #1596373

Change-Id: I595f2e16c33a6f935c7ca8935fec445d19c7b8f3
2016-11-15 22:08:14 -05:00
Dan Prince
7ba5525207 Move db::mysql into service_config_settings
This patch movs the various db::mysql hiera settings into a
'mysql' specific service_config_settings section for each
service so that these will only get applied on the MySQL service
node. This follows a similar puppet-tripleo change where we
create the actual databases for all services locally on
the MySQL service node to avoid permission issues.

Change-Id: Ic0692b1f7aa8409699630ef3924c4be98ca6ffb2
Closes-bug: #1620595
Depends-On: I05cc0afa9373429a3197c194c3e8f784ae96de5f
Depends-On: I5e1ef2dc6de6f67d7c509e299855baec371f614d
2016-09-28 07:01:49 -04:00
Dan Prince
e3cb92a5db Mv Nova, Neutron, Horizon out of controller.yaml
This patch moves the settings for Nova, Neutron, and Horizon
out of controller.yaml.

Also fixes the NovaPassword settings in nova-base.yaml
so they don't use get_input.

Also, creates a new apache.yaml base service to contain shared
apache settings for several services which use Apache for WSGI.

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>

Change-Id: I35d909bd5abc23976b5732a2b9af31cf1448838e
Related-bug: #1604414
2016-08-30 08:59:07 -04:00
Dan Prince
3b62761d2f Add DefaultPasswords to composable services
This patch adds a new DefaultPasswords parameter to
composable services. This is needed to help provide
access to top level password resources that overcloud.yaml
currently manages (passwords for Rabbit, Mysql, etc.).

Moving the RandomString resources into composable services
would cause them to regenerate within the stack. With this
approach we can leave them where they are while we deprecate
the top level mechanism and move the code that uses the
passwords into the composable services.

Change-Id: I4f21603c58a169a093962594e860933306879e3f
2016-08-18 12:45:30 -04:00
Giulio Fidente
885b37c80e Pass ServiceNetMap to services
This will be needed to pick the network where the service has
to bind to from within the service template.

Change-Id: I52652e1ad8c7b360efd2c7af199e35932aaaea8c
2016-08-18 12:36:18 -04:00
Dan Prince
4e05d138c6 Move Nova settings out of puppet/compute.yaml
This finishes moving most of the config settings out of
compute.yaml for Nova and into the proper nova-* services.

Only the bind port/VIP related Nova settings remain now and those
will be dealt with in a follow up patch.

Change-Id: I1c40e7d54c11dfff2aaa6438c7701e98da17ebe6
Related-Bug: #1604412
2016-08-15 13:07:58 -04:00
Jenkins
8c61510e60 Merge "Add parameter for enabling purging configuration files" 2016-08-12 16:50:48 +00:00