1257 Commits

Author SHA1 Message Date
Zuul
dd0d903d88 Merge "Coordinate haproxy and keepalived restarts" 2020-10-07 19:26:31 +00:00
Zuul
7c1acb96a0 Merge "Add support for with_frontend and with_backend" 2020-10-07 16:48:12 +00:00
Zuul
7c61f72108 Merge "Control Neutron migrations" 2020-10-07 16:43:32 +00:00
Zuul
21a96db1be Merge "Add support for changing sysctl.conf path" 2020-10-07 16:33:31 +00:00
nikparasyr
fc4327d946 Allow overwrite of placement-api wsgi config
Use with_first_found on placement-api-wsgi to allow
overwrite from users and keep consistency with other
roles.

Change-Id: I11c84db6df1bb5be61db5b6b0adf8c160a2bd931
Closes-Bug: #1898766
2020-10-06 20:43:52 +02:00
Michal Nasiadka
c52a89ae04 Use Docker healthchecks for core services
This change enables the use of Docker healthchecks for core OpenStack
services.
Also check-failures.sh has been updated to treat containers with
unhealthy status as failed.

Implements: blueprint container-health-check
Change-Id: I79c6b11511ce8af70f77e2f6a490b59b477fefbb
2020-10-05 08:35:47 +00:00
Radosław Piliszek
c2d0bf30ea Coordinate haproxy and keepalived restarts
Keepalived and haproxy cooperate to provide control plane HA in
kolla-ansible deployments.
Certain care should be exerted to avoid prolonged availability
loss during reconfigurations and upgrades.
This patch aims to provide this care.
There is nothing special about keepalived upgrade compared to
reconfig, hence it is simplified to run the same code as for
deploy.
The broken logic of safe upgrade is replaced by common handler
code which's goal is to ensure we down current master only after
we have backups ready.

This change introduces a switch to kolla_docker module that allows
to ignore missing containers (as they are logically stopped).
ignore_missing is the switch's name.
All tests are included.

Change-Id: I22ddec5f7ee4a7d3d502649a158a7e005fe29c48
2020-10-04 16:58:24 +02:00
Mark Goddard
66c0472e0b Update release note for httpd keep alive
Adds information about change of default.

Change-Id: I9041345bbffefe6059d5ff151ebff07b6e26321a
Related: blueprint add-ssl-internal-network
2020-10-04 16:48:12 +02:00
wu.chunyang
97b532c972 add releasenote for octavia configuration
Change-Id: Ic3faf90ef7aea1c506e113fe77f62d916d1b118b
Implements: blueprint implement-automatic-deploy-of-octavia
2020-10-01 15:21:56 +00:00
Zuul
586357ca74 Merge "Change the default haproxy template to split variant" 2020-10-01 12:49:02 +00:00
Radosław Piliszek
8d2d37064e Control Neutron migrations
Since [1] and [2] merged, K-A has to control Neutron migrations
to migrate all required projects.

This patch additionally fixes the other observed issue.

[1] https://review.opendev.org/750075
[2] https://review.opendev.org/753543

Change-Id: I09e1b421e9066890b50bd82331a3050de252464f
Closes-Bug: #1894380
Depends-On: https://review.opendev.org/755346
2020-10-01 10:13:19 +02:00
Zuul
4441038e29 Merge "Make keep-alive timeout configurable" 2020-09-30 17:01:56 +00:00
Zuul
088602aad6 Merge "Add release note and upgrade docs for Ubuntu Focal 20.04" 2020-09-29 11:31:05 +00:00
Zuul
ba933f16e9 Merge "Support TLS encryption of RabbitMQ client-server traffic" 2020-09-29 11:31:03 +00:00
Zuul
0dd44b7675 Merge "Reduce the use of SQLAlchemy connection pooling" 2020-09-28 17:14:55 +00:00
Radosław Piliszek
2fd72a39e9 Add support for ACME http-01 challenge
All docs are included.

Change-Id: Ie29ff7ca340812c8dc0dac493518c87cf7bf137b
Partially-Implements: blueprint letsencrypt-https
2020-09-26 20:29:20 +02:00
Zuul
29b2d4284a Merge "Fix keystone-startup.sh" 2020-09-25 13:44:13 +00:00
Mark Goddard
cfb935a2a5 Add release note and upgrade docs for Ubuntu Focal 20.04
Change-Id: I439e8afc87d21aa8b7f381534c963e39f69c5d73
2020-09-25 14:27:11 +01:00
Zuul
07cbec194f Merge "Add support for encrypting Ironic API" 2020-09-25 11:47:49 +00:00
Michal Nasiadka
d78673e77f Fix keystone-startup.sh
keystone-startup.sh is using fernet_token_expiry instead of
fernet_key_rotation_interval - which effects in restart loop of keystone
containers - when restarted after 2-3 days.

Closes-Bug: #1895723

Change-Id: Ifff77af3d25d9dc659fff34f2ae3c6f2670df0f4
2020-09-25 10:19:44 +00:00
James Kirsch
7c2df87ded Add support for encrypting Ironic API
This patch introduces an optional backend encryption for the Ironic API
service. When used in conjunction with enabling TLS for service API
endpoints, network communcation will be encrypted end to end, from
client through HAProxy to the Ironic service.

Change-Id: I9edf7545c174ca8839ceaef877bb09f49ef2b451
Partially-Implements: blueprint add-ssl-internal-network
2020-09-24 10:09:13 -07:00
Zuul
01a47b927d Merge "Bump minimum Ansible version to 2.9" 2020-09-24 09:40:15 +00:00
Pierre Riteau
c5c6d995d3 Bump minimum Ansible version to 2.9
Change-Id: I5befc72a4894d625ca352b27df9d3aa84a2f5b2c
2020-09-23 17:48:01 +02:00
Pierre Riteau
c81772024c Reduce the use of SQLAlchemy connection pooling
When the internal VIP is moved in the event of a failure of the active
controller, OpenStack services can become unresponsive as they try to
talk with MariaDB using connections from the SQLAlchemy pool.

It has been argued that OpenStack doesn't really need to use connection
pooling with MariaDB [1]. This commit reduces the use of connection
pooling via two configuration options:

- max_pool_size is set to 1 to allow only a single connection in the
  pool (it is not possible to disable connection pooling entirely via
  oslo.db, and max_pool_size = 0 means unlimited pool size)
- lower connection_recycle_time from the default of one hour to 10
  seconds, which means the single connection in the pool will be
  recreated regularly

These settings have shown better reactivity of the system in the event
of a failover.

[1] http://lists.openstack.org/pipermail/openstack-dev/2015-April/061808.html

Change-Id: Ib6a62d4428db9b95569314084090472870417f3d
Closes-Bug: #1896635
2020-09-22 17:54:45 +02:00
Radosław Piliszek
3916c156be Add support for with_frontend and with_backend
This allows for more config flexibility - e.g. running multiple
backends with a common frontend.

Note this is a building block for future work on letsencrypt
validator (which should offer backend and share frontend with
any service running off 80/443 - which would be only horizon
in the current default config), as well as any work towards
single port (that is single frontend) and multiple services
anchored at paths of it (which is the new recommended default).

Change-Id: Ie088fcf575e4b5e8775f1f89dd705a275725e26d
Partially-Implements: blueprint letsencrypt-https
2020-09-22 17:26:42 +02:00
Radosław Piliszek
9451ac61a0 Change the default haproxy template to split variant
This allows for more config flexibility - e.g. running multiple
backends with a common frontend.
It is not possible with the 'listen' approach (which enforces
frontend).
Additionally, it does not really make sense to support two ways
to do the exact same thing as the process is automated and
'listen' is really meant for humans not willing to write separate
sections.
Hence this deprecates 'listen' variant.

At the moment both templates work exactly the same.
The real flexibility comes in following patches.

Note this is a building block for future work on letsencrypt
validator (which should offer backend and share frontend with
any service running off 80/443 - which would be only horizon
in the current default config), as well as any work towards
single port (that is single frontend) and multiple services
anchored at paths of it (which is the new recommended default).

Change-Id: I2362aaa3e8069fe146d42947b8dddf49376174b5
Partially-Implements: blueprint letsencrypt-https
2020-09-22 16:49:36 +02:00
Radosław Piliszek
a45ef7ccaa Fix default mode in haproxy_single_service_split
haproxy_single_service_listen (the default template) was already fine.

Closes-Bug: #1896591
TrivialFix

Change-Id: Id68fe19ea87565aa36fb74f2a2ca66cb951169f6
2020-09-22 11:58:38 +02:00
Radosław Piliszek
bce266201b Allow to skip and unset sysctl vars
via KOLLA_SKIP and KOLLA_UNSET

Change-Id: I7d9af21c2dd8c303066eb1ee4dff7a72bca24283
Related-Bug: #1837551
2020-09-21 13:13:58 +02:00
Radosław Piliszek
6be51fa67a Add support for changing sysctl.conf path
via kolla_sysctl_conf_path

Change-Id: I09b20fa008a7fecedcb599b4792f24215179b853
2020-09-21 11:47:05 +02:00
Zuul
90e4795f50 Merge "Change mariadb image to mariadb-server" 2020-09-17 16:53:21 +00:00
Mark Goddard
761ea9a333 Support TLS encryption of RabbitMQ client-server traffic
This change adds support for encryption of communication between
OpenStack services and RabbitMQ. Server certificates are supported, but
currently client certificates are not.

The kolla-ansible certificates command has been updated to support
generating certificates for RabbitMQ for development and testing.

RabbitMQ TLS is enabled in the all-in-one source CI jobs, or when
The Zuul 'tls_enabled' variable is true.

Change-Id: I4f1d04150fb2b5af085b762890092f87ae6076b5
Implements: blueprint message-queue-ssl-support
2020-09-17 12:05:44 +01:00
Zuul
fbef9b36d6 Merge "Performance: use a single config file for fluentd" 2020-09-17 11:03:26 +00:00
Zuul
bc388d5657 Merge "Performance: use a single config file for logrotate" 2020-09-17 10:55:01 +00:00
Michal Nasiadka
a7941e2498 Change mariadb image to mariadb-server
Since change [1] merged we have two mariadb images (mariadb and mariadb-server)
Let's use mariadb-server in kolla-ansible, so we can deprecate mariadb image.

[1]: https://review.opendev.org/#/c/710217/

Change-Id: I4ae2ccaaba8fb516f469f4ce8628e8c61de03f0d
2020-09-17 10:42:21 +00:00
Zuul
ec34132b25 Merge "Synchronize REST_API_REQUIRED_SETTINGS with Horizon" 2020-09-09 09:17:35 +00:00
Pierre Riteau
295f8d1b43 Remove unused configuration for prometheus-openstack-exporter
The Prometheus OpenStack exporter was needlessly configured to use the
prometheus Docker volume and change permissions of /data, which does
not exist in the container image.

This must have been copy-pasted from existing Prometheus code.

Change-Id: I96017c17e68ca7a00a2d5ac41f2f43ef87694514
2020-09-01 14:15:52 +02:00
Zuul
fa48cc7eaf Merge "Use iSCSI multipath for libvirt" 2020-08-26 13:57:47 +00:00
Zuul
50999f4af3 Merge "Drop option http-tunnel for neutron-server" 2020-08-26 13:22:11 +00:00
Nick Jones
e721c6ae0b
Disable arp_responder option for LinuxBridge agent
Enabling both l2_population and arp_responder for LinuxBridge can cause
problems in some configurations [0].  This commit removes the explicit
'true', reverting it to the default which is 'False'.

Closes-Bug: #1892776

[0] https://bugs.launchpad.net/neutron/+bug/1661717

Change-Id: Ia9445a651fd7a082835a858964bcb9e8e325338d
Signed-off-by: Nick Jones <nick@dischord.org>
2020-08-24 20:34:53 +01:00
Zuul
02ba8bb847 Merge "Prevent overwriting existing Keystone Fernet keys" 2020-08-24 10:59:13 +00:00
Radosław Piliszek
7c42204a65 Drop option http-tunnel for neutron-server
Change-Id: I6910bcdb122e42337d7938405f792fa0fe32e49b
Closes-Bug: #1892686
2020-08-24 10:01:27 +02:00
Radosław Piliszek
8228b5ea12 Make keep-alive timeout configurable
Change-Id: Iffadcddfb70650cdf4c6c4d9ec3b7471d63f5ff8
Closes-Bug: #1892622
2020-08-23 20:33:51 +02:00
Zuul
ac5238955b Merge "Add workaround for keystonemiddleware/neutron memcached issue" 2020-08-21 18:47:47 +00:00
Zuul
e53dae8eff Merge "Add cinder auth config to nova-cell nova.conf.j2" 2020-08-21 15:45:02 +00:00
Doug Szumski
d3e87a2e4d Update String type for Monasca ES template
This updates the Elasticsearch template used by Monasca to
persist logs so that is uses the 'new' string types [1]. As
an aside it helps to make the template more clear; full text
search for log messages, and keyword searches for everything
else.

[1] https://www.elastic.co/blog/strings-are-dead-long-live-strings

Closes-Bug: #1892376
Change-Id: I0cd6bf22d4695d88d93241da4364d170d8d8c80e
2020-08-20 14:54:03 +00:00
Pierre Riteau
5a52d8e4a0 Add workaround for keystonemiddleware/neutron memcached issue
There is an issue where keystonemiddleware connections to memcached from
neutron-server grow beyond configured values [1], eventually reaching
the maximum number of connections accepted by memcached servers. Other
services do not appear to be affected by this issue.

A workaround is to use the advanced memcached pool. Despite its
documentation claiming to only work with Python 2, it appears to work
fine on Python 3.

[1] https://bugs.launchpad.net/keystonemiddleware/+bug/1883659

Change-Id: Ifbbc2022839cbc575848d830600241c61603c80b
Closes-Bug: #1892210
2020-08-19 17:56:30 +02:00
Jegor van Opdorp
de16013bd6 Add cinder auth config to nova-cell nova.conf.j2
Fixes an issue during deleting evacuated instances with encrypted block
devices.

Change-Id: I9b9b689ef7e1e41b597e2c5f6b96f3ed011193c5
Closes-Bug: 1891462
Related-Bug: 1850279
2020-08-19 07:25:20 +00:00
Florian LEDUC
56710de59d Use iSCSI multipath for libvirt
* Multipath daemon allows to reach block devices
via multiple paths for better resiliency and performance.
Multipathd periodically checks the failed iscsi paths
and maintains a list of valid paths. Libvirt can use more
than one iSCSI path when option volume_use_multipath is set
and when multipathd enabled.

Change-Id: I54629656803c4989f7673e8c69d2a820609b5960
Implements: blueprint nova-libvirt-multipath-iscsi
2020-08-19 07:24:51 +00:00
likui
16f97867a3 Fix ownership and permissions of admin-openrc.sh
Previously the post-deploy.yml playbook was executed with become: true,
and the admin-openrc.sh file templated without an owner or mode
specified. This resulted in admin-openrc.sh being owned by root with 644
permissions.

This change creates the file without become: true, and explicitly sets
the owner to the user executing Ansible, and the mode to 600.

Co-Authored-By: Mark Goddard <mark@stackhpc.com>

Closes-Bug: #1891704

Change-Id: Iadf43383a7f2bf377d4666a55a38d92bd70711aa
2020-08-19 07:24:22 +00:00
Zuul
ad50147194 Merge "Deploy neutron-mlnx-agent and neutron-eswitchd containers" 2020-08-17 19:02:45 +00:00