1542 Commits

Author SHA1 Message Date
Zuul
cc019e1f06 Merge "Conditionally mount the TLS-related certs on the haproxy container" 2018-09-23 12:32:02 +00:00
Zuul
399d03a538 Merge "Enable health check for Ironic inspector services" 2018-09-21 23:31:48 +00:00
Zuul
47e279b036 Merge "Enable Sahara API health check" 2018-09-21 23:27:04 +00:00
Juan Antonio Osorio Robles
46ed8d8483 Conditionally mount the TLS-related certs on the haproxy container
These were always mounted, which is an anti-pattern. In order to get the
podman deployment to work, these mounts need to be conditional.

Change-Id: I5f649eea4e6c50905a333f231b49e91b8b5bef0d
2018-09-21 22:10:57 +00:00
Zuul
5c53cb3727 Merge "Bind mount the database client settings in sahara_db_sync" 2018-09-21 16:46:00 +00:00
Zuul
f7a8fe0e6c Merge "Fix syntax for set_fact module." 2018-09-21 16:36:20 +00:00
Zuul
38368d51dd Merge "Only set ca_bundle for HAProxy if internal TLS enabled & fix mounts" 2018-09-20 11:49:06 +00:00
Zuul
cb39705872 Merge "heat-api fix log path" 2018-09-19 08:01:48 +00:00
Zuul
ad2dc3a8ff Merge "heat-api-cfn fix log path" 2018-09-19 08:01:46 +00:00
Zuul
85da81624f Merge "Remove references to logging_group" 2018-09-19 08:01:19 +00:00
Juan Antonio Osorio Robles
5ca1aee232 Only set ca_bundle for HAProxy if internal TLS enabled & fix mounts
* We don't use this setup if TLS everywhere is not enabled, so lets set it
  up as such. This prevents the HAProxy container managed by pacemaker of
  mounting this file.
* Also fix the docker service to exercise the if with proper syntax.

Co-Authored-By: Emilien Macchi <emilien@redhat.com>
Change-Id: Id8dff81c5af390446507bcef458a135fc2287186
2018-09-18 22:03:59 -04:00
Jiri Stransky
8e127bce07 Don't fail ironic upgrade if xinetd isn't present
When upgrading from Rocky to master in CI, we don't seem to have
xinetd present in the overcloud, and attempting to restart it fails
the upgrade. Check if it's running before trying to restart it.

Change-Id: I9f45340cf6caf7811aa03a1b2aa16eec599d4faa
Closes-Bug: #1792527
2018-09-14 09:24:27 +02:00
Yurii Prokulevych
33e49507a5 Fix syntax for set_fact module.
Fix issue that arise during upgrade:
 error while evaluating conditional (redis_pcs_res|bool):
  'redis_pcs_res' is undefined

Change-Id: I4298eb1ec2fc0e0c44aa63189cff3962fb06c6bd
2018-09-13 15:14:00 +02:00
Zuul
1c2f282b67 Merge "Fix neutron dhcp log path" 2018-09-13 00:46:59 +00:00
Martin Mágr
f1ec2452af Enable health check for Ironic inspector services
This patch enables container health check script execution for containers
ironic_inspector and ironic_inspector_dnsmasq.

Change-Id: I62a50021605e1017e387f76595bd0f5680979900
Depends-On: Ie724b155fa071da9f1baee193cf79e2ecdc2ff30
2018-09-12 08:30:01 +00:00
Martin Mágr
3f121ed456 Enable Sahara API health check
This patch enables health check execution in sahara_api container.

Change-Id: Ic14d9c5b9a4ad014181e8505fae3d2f656b7b0bd
Depends-On: Ie724b155fa071da9f1baee193cf79e2ecdc2ff30
2018-09-12 08:29:59 +00:00
Zuul
8283a9c225 Merge "Initial support for Podman in docker-puppet" 2018-09-09 03:09:00 +00:00
Zuul
1ba194d156 Merge "Run online data migrations" 2018-09-08 13:26:23 +00:00
Emilien Macchi
e175e5ab2f Initial support for Podman in docker-puppet
Create a new parameter in TripleO: ContainerCli.
The default is set to 'docker' for backward compatibility but it allows
to also set to 'podman'.
When podman is selected, the right commands will be run so docker-puppet
can configure the containers when Podman is the selected container
library backend.

It removes the tripleo_logs:/var/log/tripleo/ mount that was used
by tripleo-ui but we shouldn't do that here. We'll create a bind mount
in tripleo-ui container later.

It run puppet with FACTER_hostname only if NET_HOST is disabled.

Change-Id: I240b15663b720d6bd994d5114d43d51fa26d76cc
Co-Authored-by: Martin André <m.andre@redhat.com>
2018-09-08 05:23:00 +00:00
Emilien Macchi
668afdc37a iscsi: workaround to let podman read /dev/null
We currently hit this bug: https://github.com/containers/libpod/issues/1412
In order to move forward, let's bind-mount /dev/null into the container
until the bug is fixed. Note, it doesn't hurt docker deployment as we
already mounted /dev.

Related-Bug: #1791167
Change-Id: I0e885c248bb08c04fb9b7efa9e075e692879b450
2018-09-06 16:03:16 -04:00
Zuul
639a043f0d Merge "Allow performing Ceph update/upgrade separately" 2018-09-04 23:04:41 +00:00
Zuul
224383fa35 Merge "Add reflection of RpcPort to health checks" 2018-09-04 14:19:43 +00:00
Jiri Stransky
16405ff928 Run online data migrations
We always run DB sync in deploy_tasks, ensuring that the database is
up to date. We should follow up with online data migrations
too.

Doing this via docker_config has 2 purposes:

* We can easily ensure this happens in a container with the right
  config files mounted.

* We can even apply this via a minor update. This is important because
  we'll have to backport this all the way to Pike and apply it there
  using Pike containers, before upgrading to Queens containers.

There's an additional issue to consider: In Puppet service variant we
ran the online migrations for release X before upgrading to X+1, but
the proposed Docker variant migrations for X run with upgrade to
X. This means that when switching from non-containerized to
containerized, we'll need to run migrations twice, to correctly switch
between the aforementioned approaches.

Change-Id: I2eb6c7c42d7e7aea4a78a892790e42bc5371f792
Closes-Bug: #1790474
2018-09-04 15:42:33 +02:00
Zuul
514b0a9efb Merge "Make redeploy idempotent" 2018-09-03 05:33:55 +00:00
Zuul
a23a6f04d9 Merge "python3ification of docker-puppet.py" 2018-09-02 22:16:22 +00:00
David J Peacock
7c2d544f3e python3ification of docker-puppet.py
modifications to docker/docker-puppet.py that provide support
/ compatibility for Python 3

Change-Id: Ibdb5697584161cedf8f76e5b78376076d0a95dc0
2018-08-31 10:09:34 -04:00
Zuul
2e92007709 Merge "Pass in rndc key to Designate deployment" 2018-08-30 21:12:38 +00:00
Zuul
35f28a2bef Merge "Run designate pool update only on bootstrap node" 2018-08-30 20:56:14 +00:00
Zuul
e2a48eac57 Merge "Create missing directories before mounting them" 2018-08-30 17:11:44 +00:00
Michele Baldessari
42c3f18051 Make redeploy idempotent
Rerunning the overcloud deploy command with no changes restarts a
truckload of containers (first seen this via
https://bugzilla.redhat.com/show_bug.cgi?id=1612960).  So we really have
three separate issues here. Below is the list of all the containers that
may restart needlessly (at least what I have observed in my tests):
A) cron category:
ceilometer_agent_notification cinder_api cinder_api_cron cinder_scheduler
heat_api heat_api_cfn heat_api_cron heat_engine keystone keystone_cron
logrotate_crond nova_api nova_api_cron nova_conductor nova_consoleauth
nova_metadata nova_scheduler nova_vnc_proxy openstack-cinder-volume-docker-0
panko_api

These end up being restarted because in the config volume for the container there is
a cron file and cron files are generated with a timestamp inside:
$ cat /var/lib/config-data/puppet-generated/keystone/var/spool/cron/keystone
...
 # HEADER: This file was autogenerated at 2018-08-07 11:44:57 +0000 by puppet.
...

The timestamp is unfortunately hard coded into puppet in both the cron provider and the parsedfile
provider:
https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/cron/crontab.rb#L127
https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/parsedfile.rb#L104

We fix this by repiping tar into 'tar xO' and grepping away any line
that starts with # HEADER.

B) swift category:
swift_account_auditor swift_account_reaper swift_account_replicator
swift_account_server swift_container_auditor swift_container_replicator
swift_container_server swift_container_updater swift_object_auditor
swift_object_expirer swift_object_replicator swift_object_server
swift_object_updater swift_proxy swift_rsync

So the swift containers restart because when recalculating the md5 over the
/var/lib/config-data/puppet-generated/swift folder we also include:
B.1) /etc/swift/backups/... which is a folder which over time collects backup of the ringfiles
B.2) /etc/swift/*.gz it seems that the *.gz files seem to change over time

We just add a parameter to the tar command to exclude those files as
we do not need to trigger a restart if those files change.
--exclude='*/etc/swift/backups/*' --exclude='*/etc/swift/*.gz'

C) libvirt category:
nova_compute nova_libvirt nova_migration_target nova_virtlogd

This one seems to be due to the fact that the /etc/libvirt/passwd.db file contains a timestamp and
even when we disable a user and passwd.db does not exist, it gets
created:
[root@compute-1 nova_libvirt]# git diff cb2441bb1caf7572ccfd870561dcc29d7819ba04..0c7441f30926b111603ce4d4b60c6000fe49d290 .

passwd.db changes do not need to trigger a restart of the container se
we can safely exclude this file from any md5 calculation.

Part C) was: Co-Authored-By: Martin Schupper <mschuppe@redhat.com>

We only partial-bug this one because we want a cleaner fix where
exceptions to the files being checksummed will be specified in the tht
service files.

Partial-Bug: #1786065

Tested as follows:
./overcloud_deploy.sh
tripleo-ansible-inventory --static-yaml-inventory inv.yaml
ansible -f1 -i inv.yaml  -m shell --become -a "docker ps --format=\"{{ '{{' }}.Names{{ '}}' }}: {{ '{{' }}.CreatedAt{{ '}}' }}\" | sort" overcloud > before
./overcloud_deploy.sh
ansible -f1 -i inv.yaml  -m shell --become -a "docker ps --format=\"{{ '{{' }}.Names{{ '}}' }}: {{ '{{' }}.CreatedAt{{ '}}' }}\" | sort" overcloud > after
diff -u before after | wc -l
0

Change-Id: I10f5cacd9fee94d804ebcdffd0125676f5a209c4
2018-08-30 12:16:43 +02:00
Juan Badia Payno
74439ff701 Fix neutron dhcp log path
The neutron dhcp-agent log path is not set properly.
The service is logging at /var/log/containers/neutron/dhcp-agent.log
and the log is set to /var/log/neutron/dhcp-agent.log

Change-Id: Ia22eff1093c25395bc98cacd2f2106a2ac374eb9
2018-08-30 11:43:55 +02:00
Zuul
356bef7da5 Merge "Enable neutron-sriov-agent health check" 2018-08-29 21:14:32 +00:00
Emilien Macchi
24f5a255c9 Create missing directories before mounting them
When deploying with podman, we need to create directories if they don't
exist before trying to mount them later when containers are starting.
Otherwise, podman fails with this kind of error:
error checking path \"/etc/iscsi\": stat /etc/iscsi: no such file or directory"

Change-Id: I7dbdc7f3646dda99c8014b4c8ca2edd48778b392
2018-08-29 18:29:32 +00:00
Martin Mágr
9473817a09 Enable neutron-sriov-agent health check
This patch enables health check execution for neutron-sriov-agent docker container.

Change-Id: I96e93c2eade261f3a3f44f5b8ffd4c1d75274c15
Depends-On: Ief543580e6b717bb9dba62b19ffe12aff5395ff9
Depends-On: Id5dc7d169301e45cb0abab7cecae67457db9fd96
2018-08-29 16:25:02 +02:00
Martin Mágr
7351b3cc20 Add reflection of RpcPort to health checks
This patch passes RpcPort parameter value to container health check
scripts, which are based on verifying if service is connected to RabbitMQ.

Change-Id: If63f136b5173bb9a94572ea5062a188469c2c782
Closes-Bug: #1782369
2018-08-29 13:33:32 +02:00
Juan Antonio Osorio Robles
90234f4f2a Remove references to logging_group
This has been unused for a while, and even deprecation was scheduled
(although the patch never merged [1]). So, in order to stop folks
getting confused with this, it's being removed.

[1] https://review.openstack.org/#/c/543871/

Change-Id: Icc6b51044ccc826f5b629eb1abd3342813ed84c0
2018-08-29 13:43:30 +03:00
Kamil Sambor
5c4983fd24 Remove unused config file when start ovs agent
ml2_conf.ini shoudn't be used in neutron-ovs-agent
Some parameters can be in conflict and overwrite
each other eg firewall_driver. Using openvswitch_agent
is enought to configure correct agent.

Change-Id: I815cb67fd4ea9ad98347d6d6bbcc9bcf01113649
Closes-Bug: 1789549
2018-08-29 08:33:51 +02:00
Zuul
81b2f888a1 Merge "Ceph update and upgrade in config-download era" 2018-08-28 21:06:35 +00:00
Juan Badia Payno
2153786d77 heat-api fix log path
As it can be check on the gate[1], the log path for the service
is not set properly. "/var/log/containers/heat/heat-api.log"

This patch set the path properly to:
  "/var/log/containers/heat/heat_api.log.txt"

[1]  http://logs.openstack.org/36/594836/1/check/tripleo-ci-centos-7-scenario002-multinode-oooq-container/427de6c/logs/subnode-2/var/log/config-data/fluentd/etc/fluentd/config.d/100-openstack-heat_api.conf.txt.gz

Depends-On: If253da4f0f89221dc6ddacc280c984079c6a3c7f
Change-Id: Ice83d3e6e06c44d20de223db212a6c4dce19e659
2018-08-28 13:34:04 +02:00
Juan Badia Payno
7456303dd7 heat-api-cfn fix log path
As it can be check on the gate[1], the log path for the service
is not set properly. "/var/log/containers/heat/heat-api-cfn.log"

This patch set the path properly to:
  "/var/log/containers/heat/heat_api_cfn.log.txt"

[1]  http://logs.openstack.org/36/594836/1/check/tripleo-ci-centos-7-scenario002-multinode-oooq-container/427de6c/logs/subnode-2/var/log/config-data/fluentd/etc/fluentd/config.d/100-openstack-heat_api_cfn.conf.txt.gz

Depends-On: If253da4f0f89221dc6ddacc280c984079c6a3c7f
Change-Id: I03fb46b06f0201f9fcea2ea7606219cea9fba742
2018-08-28 10:40:49 +02:00
Zuul
c7aeb8f7c8 Merge "neutron-api: remove /usr/share/neutron mount" 2018-08-25 17:32:04 +00:00
Zuul
472e394cc1 Merge "Update rsyslog existence check" 2018-08-24 20:01:49 +00:00
Emilien Macchi
191841339b neutron-api: remove /usr/share/neutron mount
We don't need to mount /usr/share/neutron, the directory is provided in
openstack-neutron rpm, so we don't need to manage this directory. It
should be in all neutron containers, including the neutron_db_sync.

Change-Id: I6f71ce62b1c5f3de175d7a50ee7229d3047a379a
2018-08-24 17:29:36 +00:00
Zuul
d8d834c5be Merge "Fix bind-mount to manila's bootstrap container" 2018-08-22 14:06:39 +00:00
Luigi Toscano
40d59f2c22 Bind mount the database client settings in sahara_db_sync
Apparently not doing this break the bootstrap container in some cases
(for example when TLS everywhere is enabled). This case is not really
supported by Sahara right now, but better fix it in advance.

More details about this change are available in the similar patches
that landed for other components:
- Cinder: https://review.openstack.org/539498
- Manila: https://review.openstack.org/594801

Change-Id: Iab8ad50f4397ee9809f50d1474026d5ff8a6972c
2018-08-22 15:17:09 +02:00
Goutham Pacha Ravi
a4bb5ab1a6 Fix bind-mount to manila's bootstrap container
When deploying with tls-everywhere, there are
more connection options necessary for the Overcloud
manila database bootstrap container to connect
to mysql. These connection options are present in
the configuration folder
/var/lib/config-data/manila/etc/my.cnf.d/tripleo.cnf.

Fix the bind-mounts on the manila_api_db_sync
container so it doesn't fail to find this
configuration.

Closes-Bug: #1788337
Change-Id: I44133b0b0c4367214649777680c94dcfa7bddc76
2018-08-22 04:52:52 +00:00
Alex Schultz
ba461c1c61 Update rsyslog existence check
It turns out cloud-init creats a /etc/rsyslog.d folder even if rsyslog
isn't installed. So let's switch the check to look for if the service
has been installed instead.

Change-Id: Id9ea7d1e0b37a523541eb0fa5a5f2495c5df9500
Closes-Bug: #1788051
2018-08-21 11:38:14 -06:00
Sergii Golovatiuk
7a70aec6de Group fast_forward_upgrade_tasks tasks into blocks
Add block to step_0 for all services
Add block to step_6 for neutron-api.yaml
Add block to step_1 for nova-compute.yaml

Change-Id: Ib4c59302ad5ad64f23419cd69ee9b2a80333924e
2018-08-21 15:51:42 +00:00
Zuul
672c7a9864 Merge "Only configure rsyslog when present" 2018-08-21 11:59:35 +00:00
Zuul
2c9529a99a Merge "Fix rsyslog restart for swift" 2018-08-21 11:59:34 +00:00