From d0d98aa2fef0b24dd2f437b8cfab533214863233 Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Mon, 4 Apr 2022 10:25:22 -0500 Subject: [PATCH] Default to OVN raft clustering Default to deploying OVN with RAFT Active/Active clustering instead of Pacemaker Active/Backup. The code to support RAFT has been been in THT since train. Requires OVS 2.17 (technically only python-ovs 2.17) to work properly at scale. Change-Id: I535087bc5f1266d1f4fe8bb1dca7d8c355c9de9d --- ci/environments/multinode-containers.yaml | 3 --- environments/docker-ha.yaml | 1 - environments/podman-ha.yaml | 1 - .../services-baremetal/neutron-ovn-dvr-ha.yaml | 1 - .../services-baremetal/neutron-ovn-ha.yaml | 1 - environments/services/neutron-ovn-dvr-ha.yaml | 1 - environments/services/neutron-ovn-ha.yaml | 1 - .../services/neutron-ovn-standalone.yaml | 1 - environments/standalone/standalone-tripleo.yaml | 1 - overcloud-resource-registry-puppet.j2.yaml | 2 +- ...ult-ovn-to-raft-cluster-9a1fb213d28d0650.yaml | 16 ++++++++++++++++ sample-env-generator/standalone.yaml | 3 --- 12 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 releasenotes/notes/default-ovn-to-raft-cluster-9a1fb213d28d0650.yaml diff --git a/ci/environments/multinode-containers.yaml b/ci/environments/multinode-containers.yaml index 395894980a..cfd44ad13e 100644 --- a/ci/environments/multinode-containers.yaml +++ b/ci/environments/multinode-containers.yaml @@ -1,6 +1,3 @@ -resource_registry: - OS::TripleO::Services::OVNDBs: ../../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml - parameter_defaults: ControllerNetworkConfigTemplate: 'templates/ci/multinode.j2' ComputeNetworkConfigTemplate: 'templates/ci/multinode.j2' diff --git a/environments/docker-ha.yaml b/environments/docker-ha.yaml index 32ad0a5869..5bd4762e82 100644 --- a/environments/docker-ha.yaml +++ b/environments/docker-ha.yaml @@ -16,7 +16,6 @@ resource_registry: OS::TripleO::Services::MySQL: ../deployment/database/mysql-pacemaker-puppet.yaml OS::TripleO::Services::OsloMessagingRpc: ../deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml OS::TripleO::Services::OsloMessagingNotify: ../deployment/rabbitmq/rabbitmq-messaging-notify-shared-puppet.yaml - OS::TripleO::Services::OVNDBs: ../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml parameter_defaults: ContainerCli: podman diff --git a/environments/podman-ha.yaml b/environments/podman-ha.yaml index 7831fd793e..e9955cdf6b 100644 --- a/environments/podman-ha.yaml +++ b/environments/podman-ha.yaml @@ -15,7 +15,6 @@ resource_registry: OS::TripleO::Services::MySQL: ../deployment/database/mysql-pacemaker-puppet.yaml OS::TripleO::Services::OsloMessagingRpc: ../deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml OS::TripleO::Services::OsloMessagingNotify: ../deployment/rabbitmq/rabbitmq-messaging-notify-shared-puppet.yaml - OS::TripleO::Services::OVNDBs: ../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml parameter_defaults: ContainerCli: podman diff --git a/environments/services-baremetal/neutron-ovn-dvr-ha.yaml b/environments/services-baremetal/neutron-ovn-dvr-ha.yaml index 8f94694ca5..e94150b2ad 100644 --- a/environments/services-baremetal/neutron-ovn-dvr-ha.yaml +++ b/environments/services-baremetal/neutron-ovn-dvr-ha.yaml @@ -2,7 +2,6 @@ resource_registry: OS::TripleO::Services::NeutronMl2PluginBase: ../../deployment/neutron/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::OVNController: ../../deployment/ovn/ovn-controller-container-puppet.yaml - OS::TripleO::Services::OVNDBs: ../../deployment/pacemaker/ovn-dbs-baremetal-puppet.yaml # Disabling Neutron services that overlap with OVN OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None diff --git a/environments/services-baremetal/neutron-ovn-ha.yaml b/environments/services-baremetal/neutron-ovn-ha.yaml index 390a8d55ac..b4ad5aee6f 100644 --- a/environments/services-baremetal/neutron-ovn-ha.yaml +++ b/environments/services-baremetal/neutron-ovn-ha.yaml @@ -2,7 +2,6 @@ resource_registry: OS::TripleO::Services::NeutronMl2PluginBase: ../../deployment/neutron/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::OVNController: ../../deployment/ovn/ovn-controller-container-puppet.yaml - OS::TripleO::Services::OVNDBs: ../../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml OS::TripleO::Services::OVNMetadataAgent: ../../deployment/ovn/ovn-metadata-container-puppet.yaml # Disabling Neutron services that overlap with OVN OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None diff --git a/environments/services/neutron-ovn-dvr-ha.yaml b/environments/services/neutron-ovn-dvr-ha.yaml index c0f90354cc..6995cd02d7 100644 --- a/environments/services/neutron-ovn-dvr-ha.yaml +++ b/environments/services/neutron-ovn-dvr-ha.yaml @@ -2,7 +2,6 @@ resource_registry: OS::TripleO::Services::NeutronMl2PluginBase: ../../deployment/neutron/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::OVNController: ../../deployment/ovn/ovn-controller-container-puppet.yaml - OS::TripleO::Services::OVNDBs: ../../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml OS::TripleO::Services::OVNMetadataAgent: ../../deployment/ovn/ovn-metadata-container-puppet.yaml # Disabling Neutron services that overlap with OVN OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None diff --git a/environments/services/neutron-ovn-ha.yaml b/environments/services/neutron-ovn-ha.yaml index b5f9492ab3..2035d649e2 100644 --- a/environments/services/neutron-ovn-ha.yaml +++ b/environments/services/neutron-ovn-ha.yaml @@ -2,7 +2,6 @@ resource_registry: OS::TripleO::Services::NeutronMl2PluginBase: ../../deployment/neutron/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::OVNController: ../../deployment/ovn/ovn-controller-container-puppet.yaml - OS::TripleO::Services::OVNDBs: ../../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml OS::TripleO::Services::OVNMetadataAgent: ../../deployment/ovn/ovn-metadata-container-puppet.yaml # Disabling Neutron services that overlap with OVN OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None diff --git a/environments/services/neutron-ovn-standalone.yaml b/environments/services/neutron-ovn-standalone.yaml index a8c81fd7a5..4d092f88f4 100644 --- a/environments/services/neutron-ovn-standalone.yaml +++ b/environments/services/neutron-ovn-standalone.yaml @@ -2,7 +2,6 @@ resource_registry: OS::TripleO::Services::NeutronMl2PluginBase: ../../deployment/neutron/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::OVNController: ../../deployment/ovn/ovn-controller-container-puppet.yaml - OS::TripleO::Services::OVNDBs: ../../deployment/ovn/ovn-dbs-container-puppet.yaml OS::TripleO::Services::OVNMetadataAgent: ../../deployment/ovn/ovn-metadata-container-puppet.yaml # Disabling Neutron services that overlap with OVN OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None diff --git a/environments/standalone/standalone-tripleo.yaml b/environments/standalone/standalone-tripleo.yaml index 8d3d556fec..d308bef306 100644 --- a/environments/standalone/standalone-tripleo.yaml +++ b/environments/standalone/standalone-tripleo.yaml @@ -104,7 +104,6 @@ resource_registry: OS::TripleO::Services::ManilaBackendVNX: OS::Heat::None OS::TripleO::Services::ManilaScheduler: OS::Heat::None OS::TripleO::Services::ManilaShare: OS::Heat::None - OS::TripleO::Services::OVNDBs: ../../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml OS::TripleO::Services::OpenStackClients: ../../deployment/clients/openstack-clients-baremetal-ansible.yaml OS::TripleO::Services::Podman: ../../deployment/podman/podman-baremetal-ansible.yaml OS::TripleO::Services::Rear: OS::Heat::None diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index 3ee6ab278d..11e808b9d1 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -153,7 +153,7 @@ resource_registry: # Neutron Core Plugin Vendors (these typically override NeutronCorePlugin) OS::TripleO::Services::NeutronCorePluginML2OVN: deployment/neutron/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::NeutronCorePluginNSX: deployment/neutron/neutron-plugin-nsx-container-puppet.yaml - OS::TripleO::Services::OVNDBs: deployment/ovn/ovn-dbs-pacemaker-puppet.yaml + OS::TripleO::Services::OVNDBs: deployment/ovn/ovn-dbs-cluster-ansible.yaml OS::TripleO::Services::OVNController: deployment/ovn/ovn-controller-container-puppet.yaml OS::TripleO::Services::OvsDpdkNetcontrold: OS::Heat::None diff --git a/releasenotes/notes/default-ovn-to-raft-cluster-9a1fb213d28d0650.yaml b/releasenotes/notes/default-ovn-to-raft-cluster-9a1fb213d28d0650.yaml new file mode 100644 index 0000000000..cae363fa0b --- /dev/null +++ b/releasenotes/notes/default-ovn-to-raft-cluster-9a1fb213d28d0650.yaml @@ -0,0 +1,16 @@ +--- +prelude: > + The default ovsdb-server deployment mode has been switched from + active/backup with Pacemaker to the native active/active RAFT clustering. +issues: + - | + To operate well at scale, it is important that OVS 2.17+ is used when + deploying with RAFT clustering. Specifically, python-ovs >= 2.17.1 is + required. +upgrade: + - | + When upgrading from a non-RAFT deployment, the old Pacemaker ovn-dbs-bundle + containers will still exist and need to be cleaned up. They will not + interfere with the function of the cluster, as all services connecting to + ovsdb-server will be configured to connect to the server's individual IP + addresses and not the Pacemaker ovsdb-server VIP. diff --git a/sample-env-generator/standalone.yaml b/sample-env-generator/standalone.yaml index 6f95e616b9..aea7cdb71c 100644 --- a/sample-env-generator/standalone.yaml +++ b/sample-env-generator/standalone.yaml @@ -56,9 +56,6 @@ environments: # this network config is assumed by the tripleo deploy command OS::TripleO::Network::Ports::ControlPlaneVipPort: ../../deployed-server/deployed-neutron-port.yaml - # OVN - OS::TripleO::Services::OVNDBs: ../../deployment/ovn/ovn-dbs-pacemaker-puppet.yaml - OS::TripleO::Services::OpenStackClients: ../../deployment/clients/openstack-clients-baremetal-ansible.yaml # Disable Docker