6628 Commits

Author SHA1 Message Date
Maksim Malchuk
47862b56bd Fix maximum width of the DIB Multiline-YAML
The dib_env_vars variable in the Bifrost's dib.yml file can contain
the DIB_BLOCK_DEVICE_CONFIG environment variable which is always the
Multiline-YAML data. By default, the format of the data is not
preserved while the configuration is merged and saved for the
bifrost-deploy container.

This is because Ansible uses the PyYAML library which has a default
80 symbol string length limit. The official Ansible documentation [1]
recommends using to_yaml or to_nice_yaml filters with width parameter.
This change adds the same ability to the merge_yaml Ansible plugin.

1. https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#formatting-data-yaml-and-json

The related change for the diskimage-builder to solve the issue with
incorrect data provided by Kolla-Ansible is also provided:
I3b74ede69eb064ad813a9108ec68a228e549e8bb

Closes-Bug: #2014980
Related-Bug: #2014981
Change-Id: Id79445c0311916ac6c1beb3986e14f652ee5a63c
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
2023-04-14 16:36:22 +03:00
Zuul
be2e353da3 Merge "RabbitMQ use maintenance mode on container restart" 2023-04-13 21:47:41 +00:00
Zuul
4b27d19b63 Merge "Set RabbitMQ ha-promote-on-shutdown=always" 2023-04-13 15:05:48 +00:00
Matt Crees
e709599ff0 RabbitMQ use maintenance mode on container restart
Puts the RabbitMQ node into maintenance mode before restarting the
container. This will make the node shutdown less disruptive. For details
on what maintenance mode does, see:
https://www.rabbitmq.com/upgrade.html#maintenance-mode

Change-Id: Ia61573f3fb95fe8fcde6b789ca77ef5b45fe0a65
2023-04-12 15:58:17 +01:00
Michal Nasiadka
b30c7bc87b rabbitmq: Do not stop containers on upgrade
Since RMQ 3.8 we can use rolling upgrade [1].

Depends-On: https://review.opendev.org/c/openstack/kolla/+/872393

[1]: https://www.rabbitmq.com/upgrade.html#rolling-upgrades

Change-Id: If6a7c6c12d9226a2406728108b3c87b3485ac55f
2023-04-12 11:12:30 +00:00
Zuul
717eb8c14f Merge "nova: Fix live migration on RHEL9 derivatives" 2023-04-03 14:31:39 +00:00
Michal Nasiadka
7c32e6f3b3 nova: Fix live migration on RHEL9 derivatives
Closes-Bug: #2005119
Change-Id: I542f7ae19b4400355b04854f42a1d1802a6efeea
2023-04-03 10:28:48 +00:00
Zuul
3e556dad61 Merge "Add LimitRequestBody configuration for Horizon" 2023-04-03 10:25:55 +00:00
Zuul
dbb4f3d0ae Merge "Add neutron_ovn_availability_zones parameter" 2023-03-29 16:48:23 +00:00
Maksim Malchuk
d907790fff Add LimitRequestBody configuration for Horizon
Since CVE-2022-29404 is fixed [1,2] the default value for the
LimitRequestBody directive in the Apache HTTP Server has been changed
from 0 (unlimited) to 1 GiB. This limits the size of images (for
example) uploaded in Horizon. This change add the ability to
configure the limit.

1. https://access.redhat.com/articles/6975397
2. https://ubuntu.com/security/CVE-2022-29404

Closes-Bug: #2012588
Change-Id: I4cd9dd088cbcf38ff6f8d188ebcc56be7d9ea1c9
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
2023-03-29 14:51:28 +03:00
Zuul
da48d99eef Merge "magnum: Fix trustee creation after ansible-collections-openstack bump" 2023-03-27 09:20:25 +00:00
Zuul
4971eccd62 Merge "Set RabbitMQ message TTL and queue expiry" 2023-03-24 16:28:43 +00:00
Zuul
ad744874c9 Merge "Add flags for RabbitMQ message TTL & queue expiry" 2023-03-24 16:20:29 +00:00
Michal Nasiadka
8dd409ceaf magnum: Fix trustee creation after ansible-collections-openstack bump
Change-Id: I54e68a3002d69f7b1be2704259c6a072f81aa586
2023-03-23 16:18:58 +00:00
Zuul
2845861ef9 Merge "Fix deploy/genconfig in check mode" 2023-03-23 10:55:24 +00:00
John Garbutt
fd30dfb867 Set RabbitMQ message TTL and queue expiry
Following ideas here:
https://wiki.openstack.org/wiki/Large_Scale_Configuration_Rabbit

Make sure old messages with no consumer are dropped after the message
TTL of 10 mins, longer than the 1 min RPC timeout.
Also ensure queues expire after an hour of inactivity, so queues from
removed nodes or renamed nodes don't grow over time.

Change-Id: Ifb28ac68b6328adb604a7474d01e5f7a47b2e788
2023-03-21 09:11:41 +00:00
Matt Crees
dae2cbca30 Add flags for RabbitMQ message TTL & queue expiry
Adds two new flags to alter behaviour in RabbitMQ:
    * `rabbitmq_message_ttl_ms`, which lets you set a TTL on messages.
    * `rabbitmq_queue_expiry_ms`, which lets you set an expiry time on queues.
See https://www.rabbitmq.com/ttl.html for more information on both.

Change-Id: I51ca37ffbb1bb5c07f2d39873f0f33ca20263f2a
2023-03-21 09:10:56 +00:00
Matt Crees
a87810db7e Set RabbitMQ ha-promote-on-shutdown=always
Changes the default value of `rabbitmq-ha-promote-on-shutdown` to
`"always"`.

We are seeing issues with RabbitMQ automatically recovering when nodes
are restarted. https://www.rabbitmq.com/ha.html#cluster-shutdown

Rather than waiting for operator interventions, it is better we allow
recovery to happen, even if that means we may loose some messages.
A few failed and timed out operations is better than a totaly broken
cloud. This is achieved using ha-promote-on-shutdown=always.

Note, when a node failure is detected, this is already the default
behaviour from 3.7.5 onwards:
https://www.rabbitmq.com/ha.html#promoting-unsynchronised-mirrors

Related-Bug: #1954925
Change-Id: I484a81163f703fa27112df22473d657e2a9ab964
2023-03-21 09:08:42 +00:00
Zuul
0d42110e01 Merge "Improve RabbitMQ performance by reducing ha replicas" 2023-03-20 12:17:42 +00:00
Zuul
13f4f78c6f Merge "Add flag to change RabbitMQ ha-mode definition" 2023-03-20 11:52:43 +00:00
Zuul
648870d275 Merge "RabbitMQ: Support setting ha-promote-on-shutdown" 2023-03-20 11:50:47 +00:00
Zuul
d6bfec4ad2 Merge "cloudkitty: set cafile for fetcher_keystone" 2023-03-20 10:41:19 +00:00
Michal Nasiadka
f5b3f9d22b ironic: fix dev mode for inspector
Change-Id: I1649a389bdc3977b936402c3ce3e55056d74ba08
2023-03-15 09:44:35 +00:00
Zuul
76268b7221 Merge "iscsi: Use assert on checks for readability" 2023-03-12 13:50:01 +00:00
Zuul
21e2434b59 Merge "etcd: Set the proper peer and client protocol when tls is enabled" 2023-03-09 08:06:05 +00:00
Christian Berendt
6768b760ab Add neutron_ovn_availability_zones parameter
With the new ``neutron_ovn_availability_zones`` parameter it is possible
to define network availability zones for OVN. Further details can be found
in the Neutron OVN documentation:
https://docs.openstack.org/neutron/latest/admin/ovn/availability_zones.html#how-to-configure-it

Change-Id: I203e0d400a3218d0b4a41f2a948207032c4febec
2023-03-06 13:28:28 +00:00
Matthew N Heler
5d3eed23a7 Set the etcd internal hostname and cacert for tls internal enabled
deployments

This allows services to work with etcd when coordination is enabled
for TLS internal deployments. Without this fix, we fail to connect to
etcd with the coordination backend and the service itself crashes.

Change-Id: I0c1d6b87e663e48c15a846a2774b0a4531a3ca68
2023-03-02 06:48:40 -06:00
Matthew N Heler
ee336ac45c etcd: Set the proper peer and client protocol when tls is enabled
Partial-Bug: #1930109

Change-Id: I383b2b5a139d24a419145473b66a34c06e32060a
2023-03-01 14:25:56 +00:00
Zuul
ad745bf1f8 Merge "hacluster: Use nodename to align with nova service names" 2023-02-22 20:38:43 +00:00
Zuul
ff0fca8fdc Merge "Switch trove-api to wsgi running under apache." 2023-02-20 16:46:42 +00:00
Matthew N Heler
e1ae8223f9 hacluster: Use nodename to align with nova service names
For Masakari and HACluster to work properly, the hostnames used
in HACluster need to match with the hostnames used in Nova.

Change-Id: Iac917ef4471905caab591cd64eab379e150a8524
2023-02-18 04:33:59 +00:00
Zuul
b1e5a97028 Merge "Use loadbalancer to connect to etcd" 2023-02-17 08:55:34 +00:00
Zuul
5ee602fcf1 Merge "ansible: Use assert on checks for readability" 2023-02-17 08:55:31 +00:00
Zuul
8f15011134 Merge "neutron: Use assert on checks for readability" 2023-02-17 08:55:28 +00:00
Zuul
4a0f058c54 Merge "rabbitmq: Use assert on checks for readability" 2023-02-17 08:40:25 +00:00
Zuul
b2dcfa0824 Merge "host_os: Use assert on checks for readability" 2023-02-17 08:39:24 +00:00
Mark Goddard
572ff2f8dc Fix deploy/genconfig in check mode
Previously, when running one of the following commands:

  kolla-ansible deploy --check
  kolla-ansible genconfig --check

deployment or configuration generation fails for various reasons.

MariaDB fails to lookup the existing cluster.

Keystone fails to generate cron config.

Nova-cell fails to get the cell settings.

Closes-Bug: #2002661
Change-Id: I5e765f498ae86d213d0a4379ca5d473db1499962
2023-02-14 17:18:16 +00:00
Zuul
0a128d24b9 Merge "Put etcd behind HTTP loadbalancer" 2023-02-14 11:31:09 +00:00
John Garbutt
6cf22b0cb1 Improve RabbitMQ performance by reducing ha replicas
Currently we do not follow the RabbitMQ advice on replicas here:
https://www.rabbitmq.com/ha.html#replication-factor

Here we reduce the number of replicas to n // 2 + 1 as advised
above. The hope it this helps speed up recovery from rabbit
issues.

Related-Bug: #1954925
Change-Id: Ib6bcb26c499c9884faa4a0cd51abaec00cacb096
2023-02-14 10:56:11 +00:00
Matt Crees
e13072a98d Add flag to change RabbitMQ ha-mode definition
Adds the flag `rabbitmq_ha_replica_count` to change how many different
nodes a queue should be mirrored across. If the value is not set, then
it defaults to "ha-mode":"all". This value is unset by default to avoid
any unexpected changes to the RabbitMQ definitions.json file, as that
would trigger an unexpected restart of RabbitMQ during the next deploy.

Change-Id: Iee98cd937197a73a3b04aa8501fa325e8ecfff24
2023-02-14 10:51:46 +00:00
Will Szumski
e2c7dace44 Use loadbalancer to connect to etcd
Hardcoding the first etcd host creates a single point of failure.

Change-Id: I0f83030fcd84ddcdc4bf2226e76605c7cab84cbb
2023-02-14 10:16:55 +00:00
Zuul
4ba17d6da4 Merge "loadbalancer: Use assert on checks for readability" 2023-02-13 16:19:50 +00:00
Zuul
ffa9c307b4 Merge "zun: Use assert on checks for readability" 2023-02-13 16:19:48 +00:00
Will Szumski
6f536a4f71 Put etcd behind HTTP loadbalancer
etcd-compatible tooz drivers do not support multiple endpoints via
backend_url. We can put a loadbalancer in front of etcd and configure
backend_url to use the VIP instead. The issue with hard coding the first
host is that we break coordination if we take this host offline. In the
case of cinder, we would not be able to perform any volume related
operations.

Co-Authored-By: Mark Goddard <mark@stackhpc.com>
Change-Id: Ib684501ba03c386dc5ac71e5cbea05c99f191665
2023-02-13 11:45:53 +00:00
Zuul
df12f2ce02 Merge "Default neutron_tls_proxy and glance_tls_proxy to haproxy_tag" 2023-02-10 14:47:49 +00:00
John Garbutt
94f3ce0c78 RabbitMQ: Support setting ha-promote-on-shutdown
By default ha-promote-on-shutdown=when-synced. However we are seeing
issues with RabbitMQ automatically recovering when nodes are restarted.
https://www.rabbitmq.com/ha.html#cluster-shutdown

Rather than waiting for operator interventions, it is better we allow
recovery to happen, even if that means we may loose some messages.
A few failed and timed out operations is better than a totaly broken
cloud. This is achieved using ha-promote-on-shutdown=always.

Note, when a node failure is detected, this is already the default
behaviour from 3.7.5 onwards:
https://www.rabbitmq.com/ha.html#promoting-unsynchronised-mirrors

This patch adds the option to change the ha-promote-on-shutdown
definition, using the flag `rabbitmq_ha_promote_on_shutdown`. This
value is unset by default to avoid any unexpected changes to the
RabbitMQ definitions.json file, as that would trigger an unexpected
restart of RabbitMQ during the next deploy.

Related-Bug: #1954925

Change-Id: I2146bda2c72ddac2c9923c6941b0596395fd9ab5
2023-02-09 13:49:07 +00:00
Zuul
75bd313678 Merge "Trivial: Add connection: local for keystone-fernet cron generate task" 2023-02-08 00:15:59 +00:00
Zuul
bc5e462143 Merge "remove elasticsearch remnants in antelope cycle" 2023-02-07 17:34:36 +00:00
Bartosz Bezak
ee658f4549 remove elasticsearch remnants in antelope cycle
Change-Id: I115b491eca413437926f5bcaf53336151f9a7c0b
2023-02-07 11:25:27 +01:00
wu.chunyang
303998e294 Switch trove-api to wsgi running under apache.
This change also adds support for Trove backend TLS.

Depends-On: https://review.opendev.org/c/openstack/kolla/+/854744
Change-Id: I2acf7820b24b112b57b0c00a01f5c4b8cb85ce25
2023-02-02 01:22:59 +00:00