Commit Graph

288 Commits

Author SHA1 Message Date
Zuul 47a7796066 Merge "Add variable to control distributed FIP choice" 2024-04-02 17:21:11 +00:00
Jimmy McCrory 66cdc8fa7c Use ansible_facts['processor_vcpus'] instead of fact variable
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/912768
Change-Id: If9fc16a7938a49d51dbd1110e908e3bda74e7adb
2024-03-13 13:41:18 +00:00
Dmitriy Rabotyagov 112d379094 Add variable to control distributed FIP choice
On OVN you can configure if Floating IPs should flow directly from compute
nodes or through gateway hosts.

While this parameter can be overriden with neutron_ml2_conf_ini_overrides variable,
it might be useful for some more advanced logic in follow-up patches.

Change-Id: Ib20cd013cbf396f14e88faabc36f012fc14c3f3a
2024-02-20 12:37:31 +00:00
Dmitriy Rabotyagov 4e855db6b2 Add VPNaaS OVN support
At the moment it's possible to deploy VPNaaS for non-OVN environemnts only.
OVN implementation is slighly different and requires a standalone agent to
run on gateway hosts, where OVN router is active.

This agent spawns namespaces as used to do and talks through RPC with API.

More detailed spec on the feature can be found here [1]. There's also
configuration reference in progress of writing [2].

[1] https://opendev.org/openstack/neutron-specs/src/branch/master/specs/xena/vpnaas-ovn.rst
[2] https://review.opendev.org/c/openstack/neutron-vpnaas/+/895651
Change-Id: Idb223ee0d8187f372682aafda1b8d6fd78cb71d1

Change-Id: Iad163ac7b032a97bd49164d94490b0f0deb83d90
2024-02-20 12:37:13 +00:00
Dmitriy Rabotyagov 601c66666f Run neutron OVN agents as neutron user
As of today we run some agents, like neutron-ovn-metadata agent as
root user, since it needs access to ovsdb socket, which has 750 permissions
by default.

With that, for OVN we already use connection via host:port to the same
ovsdb manager, which allows to run it as an arbitrary user.

In order to align connection methods and to run services with lower
privileges
we introduce couple of new variables that allow to create valid connection
strings for both OpenFlow listeners and regular connection to the manager.

Change-Id: Iceab27aa1fdacc8b13f7ef6974b6a9076b8b7cd9
2024-02-20 13:34:49 +01:00
Dmitriy Rabotyagov 70bb847605 Add Availability Zone variables
At the moment the only way to configure multi-AZ support in Neutron were
config overrides, which work quite nicely with LXB/OVS scenarios. However,
with OVN changing configuration is not enough, and command that sets
up OVN Gateway should provide extra CMS option.

In order to improve AZ support in Neutron role, we add couple of variables
that control behaviour and allow to perform required configuration without
config overrides for OVS/LXB/OVN.

Co-Authored-By: Danila Balagansky <dbalagansky@me.com>
Closes-Bug: #2002040
Change-Id: Ic964329c06765176692f7b0c32f33ec46360a3fb
2024-01-03 15:03:27 +01:00
Dmitriy Rabotyagov 59697ba1c5 Deprecate OpenDaylight support
OpenDaylight support has been deprecated by Neutron team in 2023.2 [1]. We remove support from
our code to address that decision.

[1] 517df91c9e

Change-Id: Iaaf87b6d5400fe88c7edf86995ea9ba891866678
2023-10-05 14:48:53 +00:00
Dmitriy Rabotyagov 8ceea78a97 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.

Depends-On: https://review.opendev.org/c/openstack/ansible-role-systemd_service/+/888223
Change-Id: I3905e334cfbeb7ccb976358016f81c5edd6cd284
2023-09-04 18:55:41 +02:00
Zuul 01da88f560 Merge "Add quorum queues support for the service" 2023-09-04 08:24:11 +00:00
Danila Balagansky d35c27bf71 Configure OVN NB and SB DB Connection probes
Allow configuration of `inactivity_probe` in Connection table in NB and
SB for new installations.

Issues, which successfully resolve by using this as a workaround:
1. https://www.mail-archive.com/ovs-discuss@openvswitch.org/msg07431.html
2. https://bugs.launchpad.net/kolla-ansible/+bug/1917484

According to the OVN ML, specifically this part [1], there is no other
way to set `inactivity_probe` other than using Connection table. And the
only valid option for it would be `0.0.0.0`, so that it could be applied
to all connections.

`ovn-ctl` forces `ovsdb-server` to look for addresses to listen on in
Connection table with `db-nb-use-remote-in-db` and
`db-sb-use-remote-in-db` options which are enabled by default.

If `db-nb-create-insecure-remote` and `db-sb-create-insecure-remote` are
set to `yes` (when `neutron_ovn_ssl` is `False`), this would result in
flooding OVN logs with `Address already in use` errors.

So we will rely on default value `no` for them from now on and only
listen on and with whatever options are provided in Connection tables.

[1] https://www.mail-archive.com/ovs-discuss@openvswitch.org/msg07476.html

Change-Id: If87cf7cfa1788d68c9a4013d7f4877692f2bb11c
2023-07-12 13:24:18 +03:00
Dmitriy Rabotyagov 89c24924dc Add quorum queues support for the 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.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/875399
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/873618
Change-Id: I43840a397ea6da6c3187291a74591c2205e1dca1
2023-07-06 13:43:00 +00:00
Damian Dabrowski a68fe97981 Add TLS support to neutron_server backends
By overriding the variable `neutron_backend_ssl: True` HTTPS will
be enabled, disabling HTTP support on the neutron 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: I9f16f916d1ef3e5937c91f6b09a3d4073594ecb4
2023-04-29 18:42:54 +02:00
Jonathan Rosser 4d1889a233 Remove support for calico ml2 driver.
Change-Id: I25e28c678f69a1b2f067e6ce87f1b3134e6470d2
2022-12-06 12:28:17 +00:00
Zuul 05948f688d Merge "Set default plugin type to OVN" 2022-12-01 23:44:04 +00:00
Zuul b0db979c90 Merge "add ovn ssl config" 2022-12-01 11:23:56 +00:00
Dmitriy Rabotyagov fb8ff420ef Set default plugin type to OVN
We temporary comment out default CI checks to resolve circular dependency

Needed-By: https://review.opendev.org/c/openstack/openstack-ansible/+/862924
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/866012
Change-Id: Ie4e76a270467b40b127bc3772d6178ea58acb83e
2022-11-30 16:39:37 +00:00
Marc Gariepy 556c5c6733 add ovn ssl config
Create ssl-certs for ovn deployment
ssl encryption is now enabled between neutron and ovn componants.

Change-Id: If8ca3f2035ada97cff248ad49771eefab95c6c23
2022-11-30 16:03:14 +00:00
Marcus Klein 2d53620286 Allow to set dnsmasq configuration options
This is useful to work around
https://bugs.launchpad.net/ubuntu/+source/dnsmasq/+bug/1974230 by setting
"no-negcache" into neutron_dhcp_config_list.

Change-Id: I1a0c1b5a125c72635efc89c9763aa41bfb503a3f
2022-11-23 15:19:59 +01:00
Zuul cce4be1037 Merge "Drop VPNAAS overrides variables" 2022-10-17 21:45:37 +00:00
Dmitriy Rabotyagov bd1db203a0 Revert "Remove the neutron-fwaas since it retired"
This reverts commit 5fb6ef370e.

Reason for revert: FWAAS has been revived in Zed with I14f551c199d9badcf25b9e65c954c012326d27cd

Change-Id: I45d6cd0f039c3fd2016e52df3607a5ac22956d0a
2022-10-14 08:03:37 +00:00
Dmitriy Rabotyagov 4451f1a46b Drop VPNAAS overrides variables
vpnaas is being configured in l3 agent config as of today. These
variables are not used anywhere down the code and are confusing.

Change-Id: I48798d848e9ebcb2579bc5cff9caefb75f28f55f
2022-10-11 09:02:08 +02:00
shahab taee 26b768ea5b Allow to provide custom configuration for VPNaaS
As we need to monitor vpn connection detailes, the only way to config vpnaas to log states and connections of vpn
is to provide own templates for VPNaaS configuration. With that we enable deployers to provide custom configuration
files for using with any vpn drivers (stronswan/openswan).

Co-Authored-By: Dmitriy Rabotyagov <noonedeadpunk@gmail.com>
Change-Id: I54dbd5c9690281af475312a277eab534403edf92
2022-06-18 10:00:36 +02:00
Dmitriy Rabotyagov ce9992335e Support service tokens
Implement support for service_tokens. For that we convert
role_name to be a list along with renaming corresponding variable.

Additionally service_type is defined now for keystone_authtoken which
enables to validate tokens with restricted access rules

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/845690
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-os_nova/+/845903
Change-Id: Id2a50a1df6287789eeb59d6ed5246e2375d93b52
2022-06-16 06:50:16 +00:00
Andy McCrae bdd06c8448 Implement uWSGI for neutron-api
As part of the Pike goals we are moving api services to run as WSGI
apps. neutron-server service is set up as a wsgi app, and this patch
moves it over.

Since this is just a drop in replacement for the existing eventlet
service, operators an deployers should notice no difference.

Change-Id: Ia7ebd13be9ce7834679d439b7bda242805768ef8
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/820586
Implements: blueprint goal-deploy-api-in-wsgi
2022-05-27 18:34:38 +00:00
Andrew Bonney fb6284b257 Add parameters to limit the number of DHCP or L3 agents
At present the maximum number of DHCP or L3 agents per tenant
network is governed by the total number of agents which exist
in the deployment. When using L3 routed pods it may be necessary
to deploy extra DHCP agents, but each of these only has access
to a subset of the networks.

This patch adds optional parameters 'neutron_l3_agents_max' and
'neutron_dhcp_agents_max' which allow the number of agents used
per tenant network to be limited to match the deployment's
requirements.

Change-Id: I80e6206c54cf1876b5c6c273b948718d48d495ca
2022-04-07 11:41:05 +00:00
Andrew Bonney 01951cd77b Add configuration option for heartbeat_in_pthread
This configuration option has been observed to result in file
descriptor leaks in certain circumstances. A variable is added
here so that it can be easily overridden.

Change-Id: I833d72715daff81b64da077e899615b9b2002650
Related-Bug: #1961603
2022-03-15 10:39:52 +00:00
Jonathan Rosser 65016f2883 Remove legacy db pooling variables
Change-Id: Ie04bea4468c9fe789195857d9d47a02470cda6e3
2022-02-01 09:21:11 +00:00
Damian Dabrowski 2134df4c53 Database connection pooling improvements
- Implemented new variable ``connection_recycle_time`` responsible for SQLAlchemy's connection recycling
- Set new default values for db pooling variables which are inherited from the global ones.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/819424
Change-Id: I9609542a2d0de17c9e7a148f5a21ac1e47a390ac
2021-12-08 13:55:04 +00:00
Dmitriy Rabotyagov eb4ed919e1 Update Calico Felix version
Change-Id: I04a107244b259ebdad7ed0ca743cdbfc313fdb2a
2021-12-07 08:05:27 +02:00
Zuul 8752d02a9f Merge "Drop designate notifications topic" 2021-12-06 10:54:29 +00:00
Zuul 2d48102f5a Merge "Set default for neutron_local_ip" 2021-11-26 15:48:23 +00:00
Dmitriy Rabotyagov 821a43489d Drop designate notifications topic
According to Designate integration guide [1] notification queue is not
required anymore as all interaction happens through API.

[1] https://docs.openstack.org/neutron/latest/admin/config-dns-int-ext-serv.html

Change-Id: I7821dbfcb63f86274fca64e107cc5e4ec3983756
2021-11-25 15:50:33 +02:00
Dmitriy Rabotyagov 39dc90c99d Set default for neutron_local_ip
Move providing variable from integrated repo playbook to the role
defaults

Change-Id: Ibbd537281c716a1353fc20768ec1eb20e97edb62
2021-11-15 10:32:06 +02:00
James Denton 23964743a5 Implement ironic_neutron_agent and baremetal driver
This patch implements changes to support the ironic_neutron_agent
and baremetal plugin for Neutron (Ironic).

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/813006
Change-Id: If37161aaee17d72d9463b361489d5febac434e83
2021-10-27 10:43:13 +00:00
Dmitriy Rabotyagov 18024df25d Refactor galera_use_ssl behaviour
With PKI role in place in most cases you don't need to explicitly
provide path to the CA file because PKI role ensures that CA is trusted
by the system overall. In the meanwhile in PyMySQL [1] you must either
provide CA file or cert/key or enable verify.

Since current behaviour is to provide path to the custom CA we expect
certificate being trusted overall. Thus we enable cert verification when
galera_use_ssl is True.

[1] 78f0cf99e5/pymysql/connections.py (L267)

Change-Id: I1d9e22487272b1e1f0ce5f66045bc53d7c031d67
2021-09-20 17:57:22 +03:00
Satish Patel 454866176f Use list of cluster member for ovn ml2 agent to directly connect
Use list of cluster member in ovn/ml2 agent to directly talk to nb/sb
central services instead of using haproxy lb. ovn-controller agent
automatically monitor cluster member and remove them from list if
they are dead or not reachable. This is better approch then using
haproxy lb.

Change-Id: Icb490225ff34354b3f5821c5f7a54a039091c924
2021-08-12 03:45:07 +00:00
Satish Patel 61459c64bb Add centos-8 support for ovs-dpdk
changed /var/lib/vhost_socket dir owner/group permission for centos-8 and
added openvswitch service name.

Change-Id: Idedbef8b70cb42588c9c9ace9530df84a5d1f6ff
2021-06-25 10:16:32 +00:00
Satish Patel d6198cdd32 Add ovn clustering support
This patch will add ovn clustering support, Basically it will use first
node to start cluster and then new nodes will use leader node to join
cluster.

Change-Id: I4b11d3484c99e538ecd6f7d05570486b5f59c782
2021-06-15 18:58:57 +00:00
Zuul d907f2360c Merge "Add variables for rabbitmq ssl configuration" 2021-05-18 13:47:52 +00:00
Jonathan Rosser 3546176dc7 Add variables for rabbitmq ssl configuration
Change-Id: I5674041a749c6c1521e43e8a2a5a5823ed9f87b6
2021-05-13 14:40:54 +00:00
Jonathan Rosser 0495f54875 Use ansible_facts[] instead of fact variables
See https://github.com/ansible/ansible/issues/73654

Change-Id: I9aaeee50a4d07159a7a8a886c27eceee04c162b9
2021-05-13 06:35:49 +01:00
Dmitriy Rabotyagov 7f2b7ea4f4 Use global dhcp_domain by default
Set neutron_dns_domain to the `dhcp_domain` value by default.

It is convenient to use signle variable to adjust DHCP domain
configuration across services

Change-Id: I355078189598726e0fe349c7ee2320487cfc0e7a
2021-04-20 17:23:31 +03:00
Zuul 8be83f5d5d Merge "Remove neutron_keepalived_no_track variable" 2021-04-05 02:31:27 +00:00
Zuul e06c25eaa1 Merge "Adding support of subnet_dns_publish_fixed_ip extension in ml2 plugin" 2021-03-25 10:37:00 +00:00
Satish Patel 10e31ea1e2 Adding support of subnet_dns_publish_fixed_ip extension in ml2 plugin
The subnet-dns-publish-fixed-ip extension adds a new attribute to the definition of the subnet resource. When set to true it will allow publishing DNS records for fixed IPs from that subnet independent of the restrictions described in the [1].

[1] https://docs.openstack.org/neutron/latest/admin/config-dns-int-ext-serv.html

Change-Id: I095564cec0f5804e4d0ea9b5201ed40b9d9be603
2021-03-22 21:44:14 +00:00
James Denton d088ddf4b4 Remove third-party OVS NSH support in favor of built-in support
This patchset removes the ovs_nsh_support variable used to deploy
a custom-compiled release of Open vSwitch with NSH support in favor
of relying on built-in NSH support in recent releases of Open vSwitch[1].

[1] https://mail.openvswitch.org/pipermail/ovs-dev/2017-November/340716.html

Change-Id: If6456d2916982226bbdc5080ec58a47b6fb1ec8d
2021-03-16 08:56:55 +00:00
Dmitriy Rabotyagov da4924577f Remove neutron_keepalived_no_track variable
Neutron has deprecated [1] usage of keepalived_use_no_track since
it is capable of distinguishing when no_track should and where should not
be used.

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

Depends-On: I351b3f2ae458abc14a899768a04999ca10c86ea4
Change-Id: Ia343cdb2268ef19d0e6270322b4ba5b97a069673
2021-03-15 15:15:38 +02:00
Zuul dec952a0f6 Merge "Move neutron pip packages from constraints to requirements" 2021-03-12 20:33:33 +00:00
Jonathan Rosser a608842c0b Move neutron pip packages from constraints to requirements
This is necessary to support the new pip resolver.

Depends-On: I9be6bbf4a29a4da2ddf96dc0336bc2a7d8ec9281
Depends-On: I49c75dd11d6c4e8d37fe013b7ffdfd56ff193fcd
Change-Id: Ib17a2712993c6c7e3b5622fc944d7754dbb872ba
2021-03-11 09:23:53 +00:00
Jonathan Rosser 1dda1bda7d Switch default virtualenv to python3
Change-Id: Idfeaf2127fe2888b081b01d45dca5a3f85fc97f8
2021-03-10 23:16:15 +00:00