529 Commits

Author SHA1 Message Date
Zuul
d1b9fd84ea Merge "Align on cinder service naming" 2025-04-02 12:01:44 +00:00
Dmitriy Rabotyagov
88e7eb07fe Align on cinder service naming
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-os_cinder/+/942581
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-os_tempest/+/942775
Change-Id: I728b1fdbd8c61853cec564203f8e58d66ea09374
2025-03-25 15:47:07 +00:00
Dmitriy Rabotyagov
4cb54be737 Auto-fix usage of modules via FQCN
Since ansible-core 2.10 it is recommended to use modules via FQCN
In order to align with recommendation, we perform migration
by applying suggestions made by `ansible-lint --fix=fqcn`

Change-Id: I3106f13014a3f99cefcd07ccf31a0c79f2977805
2025-02-12 14:19:21 +01:00
Dmitriy Rabotyagov
b176f7523b 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: I0dbc21f8bb838f1cdcdcfa3ccaff550a595b2fe3
2025-02-12 14:17:53 +01:00
Zuul
4dfa9d782b Merge "Switch from focal to jammy based amphora image for CI testing" 2025-02-05 10:49:10 +00:00
Jonathan Rosser
7817bd4be7 Switch from focal to jammy based amphora image for CI testing
Change-Id: I202e1b64f796a9af83663f5fa1e9d2a2290d3f34
2025-01-21 09:01:12 +00:00
Jonathan Rosser
2e890373d2 Remove support for amqp1
Support is removed in oslo.messaging so we remove support in
openstack-ansible roles.

Change-Id: I49f9f32ca58d061819e27307db77402b63391bc3
2025-01-13 08:36:54 +00:00
Zuul
40b8a2e0e2 Merge "Move rpc_conn_pool_size to oslo_messaging_rabbit" 2024-10-09 13:24:48 +00:00
Zuul
f8beb48724 Merge "Align coordination_client_ssl value with other roles" 2024-10-07 12:21:01 +00:00
Zuul
415723d5e8 Merge "Ensure quota is set for BFV amphoras" 2024-10-05 00:46:02 +00:00
Dmitriy Rabotyagov
55bb4cace7 Align coordination_client_ssl value with other roles
At the moment cinder[1] and designate[1] do have coordination_client_ssl
default set to False, so it makes sense to align defaults in order
to get same behaviour across services.

[1] eb70c981dd/defaults/main.yml (L145)
[2] 8b68114626/defaults/main.yml (L72)

Change-Id: I0cd6e541b864e7e36d6954449f147808f053c273
2024-10-04 22:02:22 +00:00
Dmitriy Rabotyagov
3b6f39ffbd Ensure quota is set for BFV amphoras
At the moment role does not increase volumes quota for the project
when BFV is enabled for Octavia. This might lead to Amphora
failures to spawn-up once default quota (of 10 volumes) is reached.

With that we also calculate amout of diskspace required based on the
instance limit.

It also changes flavor to contain 0 disk if BFV is enabled to ensure
that ephemeral is not gonna be used.

Change-Id: Ia35948cd2381b13d3792fc0029d93a9e176c884c
2024-09-27 18:12:55 +02:00
Damian Dabrowski
59a0e0f448 Disable octavia_management_net_dhcp by default
config_drive is always enabled for amphora VMs [1], so DHCP is not
required for cloud-init to configure octavia network interface.
To avoid confusion, this patch disables DHCP for octavia network by default.

[1] eff69261f4/octavia/compute/drivers/nova_driver.py (L146)

Change-Id: Iabb1afac5dcea64251813404d924da9a648ca2e9
2024-09-25 17:02:45 +02:00
Dmitriy Rabotyagov
8f2bd1661e Move rpc_conn_pool_size to oslo_messaging_rabbit
Defining option in DEFAULT section is deprecated, which triggers
a deprecation warning in logs.

Change-Id: I50cc79528c57a92ca4a62e8952258d57a3954d81
2024-09-25 15:40:00 +02:00
Zuul
c091f3d2dd Merge "Provide better flexability for SSH keypair options" 2024-09-17 12:39:30 +00:00
Dmitriy Rabotyagov
17e0de1112 Return amphora provider back
As Magnum does rely on `amphora` provider as a default and we got
a notice from Octavia devs that `amphora` provider is gonna stay
while potentially `amphorav2` might be sunsetted in the future,
it makes sense to partially revert the [1] and return `amphora` back.

[1] https://review.opendev.org/c/openstack/openstack-ansible-os_octavia/+/885519

Change-Id: Ia34be7a05593b034003bd40c866fbf6561a154e5
2024-09-10 16:13:03 +02:00
Dmitriy Rabotyagov
f976e5fd28 Provide better flexability for SSH keypair options
At the moment we do generate SSH keypairs for octavia with pre-defined
options for backwards compatability.
In the meanwhile it might not make much sense for new deployments,
though there's no clear way to overrride these options.]

With that we implement a bunch of new variables that allows to tune
properties for the SSH key to be used.

Change-Id: I5c4c20e7375b2471cc47ac628e007d6297bdeb7e
2024-09-02 13:50:56 +00:00
Zuul
689aa04a20 Merge "Define ovn provider agent when OVN is used" 2024-08-29 15:16:58 +00:00
Zuul
5840dfe7bb Merge "Remove superfluous quote from enabled_provider_agents" 2024-08-29 15:02:53 +00:00
Hirano Yuki
1b745fea66 Add additional security group rules support
When customizing Amphora, like syslog forwarding support, we need to add
some rules to octavia_sec_grp. This change allows us to specify
additional rules using variables.

Change-Id: Ia0388171b784615924f5a5dafb5e160e942123db
2024-08-28 17:59:33 +09:00
Dmitriy Rabotyagov
03f797df2a Define ovn provider agent when OVN is used
Defining OVN provider agent is required for the OVN driver as it is
responsible for connection to NB DB and listens to the events in it.

Without the any provider being enabled octavia-driver-agent service is
not doing anything. Moreover, assinged FIP to the LB VIP will not be
working properly, as that needs update to the LB inside of OVN, which
is performed only when agent detects changes to the VIP port.

Change-Id: I82b4cd6749f42220be799c3a3e0d6bc14255125f
2024-08-27 21:34:12 +02:00
Dmitriy Rabotyagov
67d0df6bbd Remove superfluous quote from enabled_provider_agents
At the moment we do have an extra quote for enabled_provider_agents
defenition which prevents variable from properly renderring.

Change-Id: I67f934d0543311d5977c997d8324374fc2b604cf
2024-08-27 18:48:21 +02:00
Dmitriy Rabotyagov
9efc5efcaa Ensure Octavia communicates with Neutron through internal URL
Since 2023.2 release `endpoint_type` option was deprecated in favor of
`valid_interfaces` [1]. For rest services there's no such deprecation
notes, so leaving them "as is".

[1] https://docs.openstack.org/octavia/latest/configuration/configref.html#neutron.endpoint_type

Change-Id: I541b52fdf87703fcf434742b6d259c57cc9e281a
2024-08-07 15:23:00 +00:00
Dmitriy Rabotyagov
56a41ab760 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: I6c14dc2d153995b4045e34318e5e857ddad42019
2024-07-22 16:11:20 +02:00
Zuul
92e069f148 Merge "reno: Update master for unmaintained/zed" 2024-06-06 10:49:25 +00:00
Dmitriy Rabotyagov
eb3a5431bb 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: I6ecffcaa8abea6c5fcf1822c4b3ac58c1e7a80dc
2024-05-25 15:31:50 +02:00
Zuul
de2740275b Merge "Implement support for octavia-ovn-provider driver" 2024-05-22 09:57:38 +00:00
James Denton
86172dca82 Implement support for octavia-ovn-provider driver
This patch is the second of two required to implement the
octavia-ovn-provider driver for Octavia. A new var, octavia_ovn_enabled,
can be used to install the driver and configure Octavia accordingly.

This patch has also restructured the driver/plugin mechanism for the
os_octavia role to better mirror that of os_neutron and to make
future additions easier to implement.

It also uses neutron's method of certificate delivery for the ovn certs.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/919599
Change-Id: Ic5963070f4f2504860ddf0829819ca2f301546b1
Signed-off-by: Matthew Thode <mthode@mthode.org>
2024-05-16 13:14:55 +00:00
Andrew Bonney
6a89e0a926 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: I6c84cf958a1d7268ccec14c3cf1b98ff6a8115e3
2024-05-15 09:09:27 +01:00
Dmitriy Rabotyagov
77478dfd99 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: I88e1fd869fa0e1e13184d17d5fa16364f87d14bd
2024-05-11 10:56:33 +02:00
375917fc2a reno: Update master for unmaintained/zed
Update the zed release notes configuration to build from
unmaintained/zed.

Change-Id: I66e26f0cc9a99fad05a6509d9694d55dc72ed6fd
2024-05-10 18:56:53 +00:00
Dmitriy Rabotyagov
053b2f8f5b 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: Id9bc7f2ba4a2e813657d65f2bb6be5089c1a5461
2024-05-10 16:21:46 +02:00
Dmitriy Rabotyagov
e85299f413 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: I594514580ca7180089699914805a595c2feb965b
2024-05-10 16:18:58 +02:00
Dmitriy Rabotyagov
59606f0957 Adopt for usage openstack_resources role
With efforts to create a resources in same, unified way,
we convert tempest role to use openstack_resources
for creating and managing openstack resources, like projects, flavors,
networks, images, etc. This should reduce maintenance costs
in case of futher collection updates and unify approach.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/878794
Change-Id: I762ded9b6099ea55e8a19bfb82473b950155eaa4
2024-02-01 10:15:56 +00:00
Dmitriy Rabotyagov
34e0def6ec Remove obsoleted provider drivers
amphorav1 driver has been dropped from octavia early in 2023.2 cycle [1]

[1] 6c0515c988

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/900399
Change-Id: I7afeaca12dd65e5455359e22c21a77191381bc73
2023-12-05 14:06:47 +00:00
Dmitriy Rabotyagov
e3c74d18e3 Adjust condition for availability_zone definition
We're checking if octavia_amp_availability_zone is defined, while the
variable is defined in defaults, so there is no clean way to undefine
the availability_zone except to use config overrides and define to
none.
So whe change condition in a way to allow empty value to be treated as
False which would result in availability_zone being undefined in the
config.

Change-Id: I86ffd71d6791dec700c381b695ab5a4bca8051a3
2023-11-07 19:11:02 +00:00
Zuul
8da3bddd99 Merge "Add quorum queues support for service" 2023-10-26 11:58:28 +00:00
Zuul
7710ff484f Merge "Drop Neutron oslomsg configuration" 2023-10-26 10:17:06 +00:00
Dmitriy Rabotyagov
c0783fcdf5 Add quorum queues support for service
This change implements and enables by default quorum support
for rabbitmq as well as providing default variables to globally tune
it's behaviour.

In order to ensure upgrade path and ability to switch back to HA queues
we change vhost names with removing leading `/`, as enabling quorum
requires to remove exchange which is tricky thing to do with running
services.

Change-Id: I4781a0c23274b145970b3269e517c2a62497acc4
2023-10-20 12:34:55 +00:00
Dmitriy Rabotyagov
a6cb51d27a Drop Neutron oslomsg configuration
These options were used for lbaasv2 and are not used in Octavia code
for quite some time.

Change-Id: Ie6f21fe9b46c55c37ee88ad911e7c5aa56b9db9c
2023-10-20 10:48:46 +00:00
Dmitriy Rabotyagov
ce5c701ab4 Add security rule for octavia healthmanager
Amphora does report back it's status to Octavia healthmanager through
octavia_health_manager_port. This outgoing traffic from Amphora must be
allowed to show LB stats and operational_status.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/896017
Change-Id: Ib6b8547b69949f7af0ba0f7f436b4286d3baccb7
2023-10-05 07:01:19 +00:00
Dmitriy Rabotyagov
3a7c5e6634 Fix example playbook linters
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/896017
Change-Id: I19aa9c5e915aa7e71617de6556d1eccff1a93ebb
2023-10-05 07:01:07 +00:00
Dmitriy Rabotyagov
1ae94217ec Use proper galera port in configuration
While <service>_galera_port is defined and used for db_setup
role, it's not in fact used in a connection string for oslo.db.

Change-Id: I94cc61d88b0ec54bde01477e8fba35e341afffa2
2023-08-17 14:57:08 +00:00
Dmitriy Rabotyagov
138696d0f5 Define constraints file for docs and renos
Right now we are not using any constraints for docs and releasenotes builds.
This has resulted in docs job failures once Sphinx 7.2.0 has been released.

The patch will ensure that constraints are used an we should not face
simmilar issue again.

TOX_CONSTRAINTS_FILE is updated by Release bot once new branch is created,
so it should always track relevant constraints.

Some extra syntax-related changes can apply, since patch is being passed
through ConfigParser, that does not preserve comments and align indenting.


Change-Id: Ia704b63838c8730039e135eb38e170204d5a30e2
2023-08-17 16:32:22 +02:00
Dmitriy Rabotyagov
d94e57f17b Fix linters and metadata
With update of ansible-lint to version >=6.0.0 a lot of new
linters were added, that enabled by default. In order to comply
with linter rules we're applying changes to the role.

With that we also update metdata to reflect current state.

Change-Id: Id8215882ee528d4c3055479e770c7432616649ba
2023-07-17 15:38:00 +02:00
Zuul
048f9d548e Merge "Add TLS support to octavia backends" 2023-05-08 11:51:23 +00:00
Damian Dabrowski
ee554649bd Add TLS support to octavia backends
By overriding the variable `octavia_backend_ssl: True` HTTPS will
be enabled, disabling HTTP support on the octavia backend api.

The ansible-role-pki is used to generate the required TLS
certificates if this functionality is enabled.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/879085
Change-Id: Id6c187cad4e444fb83ca1f938bd13bb9b73652b3
2023-04-29 18:43:06 +02:00
Dmitriy Rabotyagov
8499e1713e Switch default provider to amphorav2
Amphorav1 has been deprecated and is removed early at the
beginning of the 2023.2 cycle. With that Antelope is perfect time for
switching the default.

[1] 6c0515c988

Change-Id: I133f20a6d971832138708101e6a8380d23e75cf2
2023-04-24 16:16:20 +02:00
Dmitriy Rabotyagov
cea4f2e358 Change default CIDR for security_group
At the moment security group allows to access Amphora SSH/API
from any network which is insecure. We're changing default for
security groups to allow access only from Octavia Management
network.

Change-Id: I6ea6ab4ec1c28a3b354d40f6744434eefb05fcfe
2023-04-19 09:51:08 +00:00
Dmitriy Rabotyagov
7c46b9460d Do not limit IP prefix for DHCP rule
In case it's needed to limit access to DHCP servers, rules must be
way more complex then this one, since DHCP uses broadcast.

To avoid complexity, let's just avoid defining remote_ip_prefix
that allows egress traffic for DHCP.

Change-Id: I280c064b4d93bcd78092f02a928d5d6dfb4fda68
2023-04-19 11:50:46 +02:00