1453 Commits

Author SHA1 Message Date
Dmitriy Rabotyagov
79675d4c5f Auto-fix yaml rules
In order to reduce divergance with ansible-lint rules, we apply
auto-fixing of violations.

In current patch we replace all kind of truthy variables with
`true` or `false` values to align with recommendations along with
alignment of used quotes.

Change-Id: Ibcbb660f39c067e68b699436ef2da0903c8500fd
2025-02-20 10:30:28 +01:00
Dmitriy Rabotyagov
5ec1f6ab00 Return defenition for wsgi-required workers
During revert of the change Id38a671ff8b5535f232c09a8365963f613eb5bc8 it
was also accidentally reverted introduction of services which
were required for uWSGI mode.

Without these services being defined, they will not be stopped/managed
while disabling uWSGI on upgrade.

Change-Id: I21302b2cccea794fdf567056eee52ac073aadfb2
2025-02-20 10:30:12 +01:00
Zuul
0686e096b5 Merge "Simplify condition on ovn_ssl configuration in ml2" 2025-02-15 12:18:32 +00:00
Zuul
cbdabfdad6 Merge "Respect defined neutron_dnsmasq_dns_servers for OVN" 2025-02-15 12:18:30 +00:00
Zuul
655e81eb8f Merge "Revert "Re-enable uWSGI as default for Neutron"" 2025-02-12 17:49:38 +00:00
Dmitriy Rabotyagov
36188e06ce Simplify condition on ovn_ssl configuration in ml2
There is no reason to evaluate groups condition multiple times,
as we are not placing OVN TLS configuration without more basic
config anyway. So condition evaluation can be simplified and made
more readable.

Change-Id: If33870c00cc139e0fc8de4ec69adf331f178ee9d
2025-02-12 10:22:30 +00:00
Dmitriy Rabotyagov
55c7b50e77 Respect defined neutron_dnsmasq_dns_servers for OVN
At the moment variable neutron_dnsmasq_dns_servers is respected
only for OVS/LXB scenarios, when dnsmasq is used. At the same
time we do not have any sane way to supply a list of DNS servers
for OVN.

Let's re-use the variable as actual behaviour behind it will be the
same [1]

[1] https://docs.openstack.org/neutron/latest/configuration/ml2-conf.html#ovn.dns_servers

Change-Id: Iabe6381fe9add1b3fac4179fdcd3d49dab099dad
2025-02-12 11:21:34 +01:00
Dmitriy Rabotyagov
e41f2f5205 Revert "Re-enable uWSGI as default for Neutron"
This reverts commit 48a935d7c8a8a96d6e66f0cc1b4b7fb7b33760bb.

Reason for revert: A bug was reported regarding uWSGI issue with multinode
setup

Change-Id: Id38a671ff8b5535f232c09a8365963f613eb5bc8
Closes-Bug: #2096937
2025-01-30 16:34:51 +01:00
Andrew Bonney
ed34c4ab97 Set valid_interfaces to internal for ironic-python-agent
Without an explicit interface set, keystoneauth appears to default
to public. Internal seems like a more sensible default.

This can be overridden via neutron_ironic_neutron_agent_ini_overrides

Change-Id: Ia1f09d5d45fe073936214ffb141fcddbc5eebe4a
2025-01-10 11:19:50 +00:00
Jonathan Rosser
df2eb998cd Remove support for amqp1
Support is removed in oslo.messaging so we remove support in
openstack-ansible roles.

Change-Id: I8ba856cef878c8d7aac2c71a78983c5ee177907e
2025-01-06 10:50:14 +00:00
Zuul
b75ba136bf Merge "Enable ovs_use_veth when gateway_ip_qos is used" 2024-12-05 21:46:10 +00:00
Zuul
65419ff73c Merge "Re-enable uWSGI as default for Neutron" 2024-11-27 00:48:15 +00:00
Dmitriy Rabotyagov
5c58b66f54 Enable ovs_use_veth when gateway_ip_qos is used
In case QoS is enabled for the gateway, we need to enable ovs_use_veth
to ensure that rate limiting will work inside of the namespace.

Change-Id: I1cbbcde27e4a9edac40ff0fe4086894c7b601087
2024-11-26 18:28:14 +01:00
Dmitriy Rabotyagov
48a935d7c8 Re-enable uWSGI as default for Neutron
Neutron team has reportedly addressed issues with uWSGI for the service
including OVN within [1]. Solution requires deployment of 2 new services
while one should be running whenever WSGI is used, where second is
needed specifically for OVN scenario.

neutron-ovn-maintenance-worker is conditionally enabled to avoid
systemd service deployment for non-OVN scenarios, as we do not support
switching neutron_plugin_type back and force at the moment.

[1] https://bugs.launchpad.net/neutron/+bug/1912359

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/935664
Change-Id: I9340d1dc94a6aa1a962bdc10b97439aa1fdc8658
2024-11-19 15:34:13 +00:00
Dmitriy Rabotyagov
b6846dbbd2 [doc] Add description of the LR binded usecase
WIth [1] being merged, behaviour of LR binding has changed depending
on the underlying external network, which good to mention in our docs.

[1] https://review.opendev.org/c/openstack/neutron/+/909194

Change-Id: Ica7124760221644dda6ae93ef9ece551b3978ab7
2024-11-18 10:07:05 +00:00
Dmitriy Rabotyagov
96fb295bbc Ensure that services that intended to stay disabled are not started
This mainly affects neutron-rpc-server service, which intended to stay
disabled/stopped.

While we've introduced logic in vars, which is respected by systemd role
it is not respected by the role handlers, which brings service back up
running unconditionally.

This actually breaks neutron behaviour after merging of [1], which relies
on neutron-rpc-server being disabled.

[1] https://review.opendev.org/c/openstack/openstack-ansible-os_neutron/+/927881

Change-Id: I28c928362ef009c1b49673005463b653d038faf9
2024-10-14 18:08:15 +00:00
Dmitriy Rabotyagov
aebe62ef84 Define default value for neutron_default_availability_zones
OVN driver does have a different behaviour whenever scheduler hint
is provided or not [1]. In case it's not provided, it will filter out
all chassis which do not have AZ specified[2]. With that, we supply
an AZ for each chassis starting with [3].

So most painless way forward from here is to ensure that same hint will
be supplied for scheduling.

With that the change should be also safe for OVS/LXB drivers.

[1] e9acc14d37/neutron/common/ovn/utils.py (L1071-L1078)
[2] e9acc14d37/neutron/common/ovn/utils.py (L896-L897)
[3] https://review.opendev.org/c/openstack/openstack-ansible-os_neutron/+/904572/2/tasks/providers/setup_ovs_ovn.yml

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-openstack_hosts/+/930272
Change-Id: I6caa3f682133c89c1c997599043fe142c84eb016
2024-09-24 16:51:26 +00:00
Zuul
67be118a53 Merge "Disable uWSGI usage by default" 2024-09-11 12:49:18 +00:00
Zuul
755814ddf9 Merge "Remove ns-metadata-proxy cleanuop handler" 2024-09-10 13:53:25 +00:00
Zuul
807c0e1212 Merge "Do not kill ipsec on L3 cleanup" 2024-09-10 13:37:10 +00:00
Zuul
89e33a360d Merge "Improve OVN cluster setup idempotence report" 2024-09-10 13:37:08 +00:00
Dmitriy Rabotyagov
e45107b4fd Improve OVN cluster setup idempotence report
Current command/shell modules for ovn cluster setup while fetching
current deployment state do not actually have changed_when: false
which causes these tasks to end up in "Changed" state

Change-Id: Id4b947d0b7aaa54eb3bbe58d2593ad6b49009b5c
2024-09-09 16:51:12 +02:00
Dmitriy Rabotyagov
34cd689662 Remove ns-metadata-proxy cleanuop handler
neutron-ns-metadata service has been deperecated and replaced with
haproxy [1]. So this handler is redundant and does not do anything.

[1] https://opendev.org/openstack/neutron/src/branch/master/releasenotes/notes/switching-to-haproxy-for-metadata-proxy-9d8f7549fadf9182.yaml

Change-Id: If6b266741bc56829587e2216d42db3e4da2a3bbc
2024-09-04 16:24:09 +02:00
Dmitriy Rabotyagov
3912bf3a5f Do not kill ipsec on L3 cleanup
In case VPNaaS driver is enabled ipsec process also runs as part of the
l3 agent service and should not be touched by the handler.

Change-Id: I86655567810c61dbed0415afd2e7ff343f20c736
2024-09-04 16:22:21 +02:00
Dmitriy Rabotyagov
6e23144f48 Use cgroupsv2 for L3 cleanup
During OpenStack upgrades we need to ensure that no process is running
with the old code base. For that we used to kill L3 agent processes
except ones running haporoxy/keepalived.

However that handler was broken with migration of systems to cgroupsv2
as it was relying on a filepath for cgroups.
As all modern operating systems already migrated to cgroupsv2 or use
them in compatability mode, let's detect the actual path and use it
instead of the hardcoded one.

Change-Id: I717f3cf13a8001a1f2077a325c4ec451f45f9f74
2024-09-04 16:18:51 +02:00
Dmitriy Rabotyagov
63900b617d Disable uWSGI usage by default
While we are supposed to move Neutron fully to uWSGI usage from current
eventlet for 2024.2 release, in order to make change backportable we
are disabling uWSGI usage for Neutron API by default as it requires
more services to run, which were added just for 2024.2 cycle.

All prior releases are still expected to run old eventlet version to
avoid any potenital issues.

[1] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/thread/SVP3VUCOZGIY63TGD33H6NQ6UBAFDN5V/

Change-Id: I5bea4bf1946f9788d9d87561da15c3abdcba1993
2024-09-04 01:11:05 +02:00
Dmitriy Rabotyagov
d81a2fb7aa Ensure proper permissions for OVN Metadata service
With change of the user under which ovn-metadata service is
running from root to neutron, it was clean forgot to change an
ownership for existing configuration produced be the service during
upgrades.

This patch adds an extra folder defenition that should ensure ownership
being correct for all files related to the ovn-metadata-proxy service.

Closes-Bug: #2077684
Change-Id: I8e82558fce8a420dca5fb5302dd5f73e40230e48
2024-08-27 07:16:55 +00:00
Zuul
b7a96f9b9f Merge "Correct 'neutron-policy-override' tag" 2024-08-05 18:33:43 +00:00
Dmitriy Rabotyagov
8f636d295f Allow to nicely control list of L3 agent extensions
This implements a standalone variable which allows to re-define or
extend a list of enabled neutron extensions.

Change-Id: I5476fe856ffa02c60490976c359d3d81e5d9d393
2024-07-23 19:50:57 +02:00
Jimmy McCrory
e9db0fce11 Correct 'neutron-policy-override' tag
Rename the 'neutron-policy-overrides' tag to 'neutron-policy-override'
so that it's consistent with the other tagged task in this role and all
other openstack-ansible service roles.

Change-Id: I7af67908920bf386d204e28cbf5b936fea76ecd0
2024-07-22 14:30:49 -07:00
Dmitriy Rabotyagov
0cf7321ff8 Ensure that first/last host detection is deterministic
With ansible-core 2.16 a breaking changes landed [1] to some filters
making their result returned in arbitrary order. With that, we were
relying on them to always return exactly same ordered lists.

With that we need to ensure that we still have determenistic behaviour
where this is important.

[1] https://github.com/ansible/ansible/issues/82554

Change-Id: I9cdc2ba3679e0dc7fc1f7636ae9efb90984c4652
2024-07-22 16:07:47 +02:00
Dmitriy Rabotyagov
4f0187e7fc Remove handler delegation for DB contract
There is no reason to perform that kind of delegation, as handler should
run only for one host out of the play anyway.

Even more, this delegation might cause failures in case of running role
with limits, as `neutron_bin` on play host may not exist on the
delegated host during minor upgrades, for instance.

Change-Id: Ic8d8aae75dd58a30cd41327fe62009cc0dfb8bbb
2024-06-12 13:50:10 +02:00
Zuul
a53b28c8da Merge "reno: Update master for unmaintained/zed" 2024-06-01 12:40:21 +00:00
Dmitriy Rabotyagov
399c83618d Define unique hostname for QManager
Due to the shortcoming of QManager implementation [1], in case of uWSGI
usage on metal hosts, the flow ends up with having the same
hostname/processname set, making services to fight over same file
under SHM.

In order to avoid this, we prepend the hostname with a service_name.
We can not change processname instead, since it will lead to the fight
between different processes of the same service.

[1] https://bugs.launchpad.net/oslo.messaging/+bug/2065922

Change-Id: Id7a52f7e7ebb658b7a5af914d4101be4632022c8
2024-05-25 15:28:14 +02:00
Zuul
cda387dd90 Merge "[doc] Expand documentation on OVN useful commands" 2024-05-20 20:04:06 +00:00
Dmitriy Rabotyagov
db3b8d7021 [doc] Expand documentation on OVN useful commands
Change-Id: Ic318e4058c648ffa98392978bbb40440326ba948
2024-05-20 15:11:10 +00:00
Andrew Bonney
4cb5f70e4e Add tag to enable targeting of post-install config elements only
<service>-config tags are quite broad and have a long execution
time. Where you only need to modify a service's '.conf' file and
similar it is useful to have a quicker method to do so.

Change-Id: I8cc76005915afc5ae16a8df0b8ced4e1b1807f09
2024-05-15 09:11:26 +01:00
Dmitriy Rabotyagov
d0917f561c Implement variables to address oslo.messaging improvements
During last release cycle oslo.messaging has landed [1] series of extremely
useful changes that are designed to implement modern messaging
techniques for rabbitmq quorum queues.

Since these changes are breaking and require queues being re-created,
it makes total sense to align these with migration to quorum queues by default.

[1] https://review.opendev.org/q/topic:%22bug-2031497%22

Change-Id: I6f1131cb9c8f15d7d9367397ff8ca1b439d66ab0
2024-05-11 10:48:57 +02:00
d810804a02 reno: Update master for unmaintained/zed
Update the zed release notes configuration to build from
unmaintained/zed.

Change-Id: I52fdcd4b955dee90ecc71a7f436d85e2306fc0b2
2024-05-10 18:56:35 +00:00
Dmitriy Rabotyagov
32db8f9d85 Add variable to globally control notifications enablement
In order to be able to globally enable notification reporting for all services,
without an need to have ceilometer deployed or bunch of overrides for each
service, we add `oslomsg_notify_enabled` variable that aims to control
behaviour of enabled notifications.

Presence of ceilometer is still respected by default and being referenced.

Potential usecase are various billing panels that do rely on notifications
but do not require presence of Ceilometer.

Change-Id: Idd3bb9a0ab58307b6acced6dd60fce3adf17b138
2024-05-10 15:17:40 +02:00
Dmitriy Rabotyagov
5525538be1 Add service policies defenition
In order to allow definition of policies per service, we need to add variables
to service roles, that will be passed to openstack.osa.mq_setup.

Currently this can be handled by leveraging group_vars and overriding `oslomsg_rpc_policies` as a whole, but it's not obvious and
can be non-trivial for some groups which are co-locating multiple services
or in case of metal deployments.

Change-Id: If239bee6267b983cf335c37ce9fb26bd352a3921
2024-05-10 14:28:09 +02:00
Zuul
e7c2f539b9 Merge "Add support for ovn-bgp-agent deployment" 2024-05-03 19:59:51 +00:00
Christian Mattsson
df1559f072 Add debian package libstrongswan-standard-plugins
The package provides the following plugins for strongSwan.

 - agent (RSA/ECDSA private key backend connecting to SSH-Agent)
 - gcm (GCM cipher mode wrapper)
 - openssl (Crypto backend based on OpenSSL, provides
   RSA/ECDSA/DH/ECDH/ciphers/hashers/HMAC/X.509/CRL/RNG)

Change-Id: Id459831d936a60843a2c07d79c97a1b6aeaa6126
2024-04-23 20:18:01 +02:00
Dmitriy Rabotyagov
42b2492642 Fix multiline yaml formatting in neutron systemd services
This patch adjusts the whitespace insertion so a space between the
--config-file instances is not trimmed anymore

Change-Id: Ia1507f03febd5bdba18610909f5c3856976566b4
2024-04-08 10:07:19 +00:00
Zuul
20f10e44c8 Merge "[doc] Briefly describe VPNaaS plugin changes with OVN" 2024-04-02 17:21:12 +00:00
Zuul
47a7796066 Merge "Add variable to control distributed FIP choice" 2024-04-02 17:21:11 +00:00
Zuul
f3d2317141 Merge "Create an openrc for nb/sb clients" 2024-04-02 16:50:55 +00:00
Dmitriy Rabotyagov
4a4ff70478 [doc] Briefly describe VPNaaS plugin changes with OVN
Change-Id: I471537e7c299ed5f44148883d030f6cfe4d3ef61
2024-03-28 13:53:25 +00:00
Dmitriy Rabotyagov
392f1a90ad Create an openrc for nb/sb clients
In order to connect to NB/SB leader it requires quite some parameters
to be passed to the CLI. To simplify that we define an environment variables
that are used as defaults once /root/ovnctl.rc is sourced.

Change-Id: Ia44829a48b4b73a81c82b79bc8898c1a95989aef
2024-03-28 09:56:22 +00:00
Zuul
b6c3bfeca7 Merge "Restart OVN on certificate changes" 2024-03-22 14:42:10 +00:00