From ba70aa747eb51a87d4d6d651688efa7f2e611e44 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Tue, 28 Feb 2023 09:53:26 +0000 Subject: [PATCH 1/4] support VMs as compute/controllers in multinode This change allows ansible facts to be used in group_vars/*/network-interfaces, which can be used to select the default network interface. This means different flavors and images can be used without needing to manually change the interface. It also reduces the MTU of all networks except external. --- etc/kayobe/ansible/configure-vxlan.yml | 2 +- .../inventory/group_vars/compute/network-interfaces | 2 +- .../group_vars/controllers/network-interfaces | 2 +- etc/kayobe/environments/ci-multinode/networks.yml | 12 ++++++------ .../add-vm-overcloud-support-92baa7c2ce87ac1d.yaml | 7 +++++++ 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml diff --git a/etc/kayobe/ansible/configure-vxlan.yml b/etc/kayobe/ansible/configure-vxlan.yml index b43c8b65d..a801c5418 100644 --- a/etc/kayobe/ansible/configure-vxlan.yml +++ b/etc/kayobe/ansible/configure-vxlan.yml @@ -1,7 +1,7 @@ --- - name: Configure VXLAN hosts: controllers,compute,seed,storage - gather_facts: false + gather_facts: true vars: ansible_user: "{{ bootstrap_user }}" # We can't assume that a virtualenv exists at this point, so use the system diff --git a/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces b/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces index aab2482b8..96c6f15c3 100644 --- a/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces +++ b/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces @@ -2,7 +2,7 @@ ############################################################################### # Network interface definitions for the compute group. -admin_oc_interface: "eno1" +admin_oc_interface: "{{ ansible_facts.default_ipv4.interface }}" internal_interface: "{{ vxlan_interfaces[0].device }}.{{ internal_vlan }}" diff --git a/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces b/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces index 2dab6c5a8..d02d17ead 100644 --- a/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces +++ b/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces @@ -2,7 +2,7 @@ ############################################################################### # Network interface definitions for the controller group. -admin_oc_interface: "eno1" +admin_oc_interface: "{{ ansible_facts.default_ipv4.interface }}" internal_interface: "{{ vxlan_interfaces[0].device }}.{{ internal_vlan }}" diff --git a/etc/kayobe/environments/ci-multinode/networks.yml b/etc/kayobe/environments/ci-multinode/networks.yml index 86406bfad..6afa05758 100644 --- a/etc/kayobe/environments/ci-multinode/networks.yml +++ b/etc/kayobe/environments/ci-multinode/networks.yml @@ -73,7 +73,7 @@ storage_mgmt_net_name: storage_mgmt # Internal network internal_cidr: 192.168.37.0/24 -internal_mtu: 1450 +internal_mtu: 1392 internal_allocation_pool_start: 192.168.37.3 internal_allocation_pool_end: 192.168.37.254 internal_vip_address: 192.168.37.2 @@ -88,7 +88,7 @@ external_vlan: 102 # Public network public_cidr: 192.168.39.0/24 -public_mtu: 1450 +public_mtu: 1392 public_allocation_pool_start: 192.168.39.3 public_allocation_pool_end: 192.168.39.254 public_vip_address: 192.168.39.2 @@ -96,28 +96,28 @@ public_vlan: 103 # Tunnel network tunnel_cidr: 192.168.40.0/24 -tunnel_mtu: 1450 +tunnel_mtu: 1392 tunnel_allocation_pool_start: 192.168.40.3 tunnel_allocation_pool_end: 192.168.40.254 tunnel_vlan: 104 # Storage network storage_cidr: 192.168.41.0/24 -storage_mtu: 1450 +storage_mtu: 1392 storage_allocation_pool_start: 192.168.41.3 storage_allocation_pool_end: 192.168.41.254 storage_vlan: 105 # Storage management network storage_mgmt_cidr: 192.168.42.0/24 -storage_mgmt_mtu: 1450 +storage_mgmt_mtu: 1392 storage_mgmt_allocation_pool_start: 192.168.42.3 storage_mgmt_allocation_pool_end: 192.168.42.254 storage_mgmt_vlan: 106 # Provision overcloud network provision_oc_cidr: 192.168.33.0/24 -provision_oc_mtu: 1450 +provision_oc_mtu: 1392 provision_oc_allocation_pool_start: 192.168.33.128 provision_oc_allocation_pool_end: 192.168.33.254 provision_oc_vlan: 107 diff --git a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml new file mode 100644 index 000000000..a1f18e10f --- /dev/null +++ b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Adds support for using a VMs as compute and controller nodes in the + multinode-ci environment by decreasing the MTU of the networks in + networks.yml to 1392 and removing the static definition of the network + interfaces for the compute and controller groups. From 58c6ec51ac7980da865a9218f728e2ed0da3195e Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Tue, 28 Feb 2023 13:23:24 +0000 Subject: [PATCH 2/4] un-disable monitoring in the multinode environment --- etc/kayobe/environments/ci-multinode/kolla.yml | 4 ---- etc/kayobe/environments/ci-multinode/kolla/globals.yml | 3 +++ .../notes/add-monitoring-to-multinode-958603f026edbc7c.yaml | 4 ++++ 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml diff --git a/etc/kayobe/environments/ci-multinode/kolla.yml b/etc/kayobe/environments/ci-multinode/kolla.yml index e645b971c..64c472fb4 100644 --- a/etc/kayobe/environments/ci-multinode/kolla.yml +++ b/etc/kayobe/environments/ci-multinode/kolla.yml @@ -9,7 +9,3 @@ kolla_enable_octavia: true # These are set to true within etc/kayobe/kolla.yml. # Leaving them set to true would require additional # configuration change. -kolla_enable_central_logging: false -kolla_enable_elasticsearch_curator: false -kolla_enable_grafana: false -kolla_enable_prometheus: false diff --git a/etc/kayobe/environments/ci-multinode/kolla/globals.yml b/etc/kayobe/environments/ci-multinode/kolla/globals.yml index 8d020e349..bd726ddc5 100644 --- a/etc/kayobe/environments/ci-multinode/kolla/globals.yml +++ b/etc/kayobe/environments/ci-multinode/kolla/globals.yml @@ -15,6 +15,9 @@ nova_backend_ceph: "yes" neutron_bridge_name: "{{ vxlan_interfaces[0].device }}-ovs" neutron_external_interface: "{{ vxlan_interfaces[0].device }}" +# Elasticsearch memory tuning +es_heap_size: 1g + # Octavia load balancer configuration octavia_auto_configure: "no" octavia_provider_drivers: "ovn:OVN provider" diff --git a/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml new file mode 100644 index 000000000..4f3b70639 --- /dev/null +++ b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Set monitoring services be enabled by default in the multinode environment. From aa72bfaff68ff98e8fc2582e337b0bf78bccc0fa Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Tue, 28 Feb 2023 13:54:10 +0000 Subject: [PATCH 3/4] fix VM internet connectivity in multinode This fix sets seed_enable_snat and fixes the external IP of the seed which (in conjunction with an update to the multinode openstack configuration to set the gateway on the external subnet) allows VMs to reach the internet. --- etc/kayobe/environments/ci-multinode/network-allocation.yml | 2 ++ etc/kayobe/environments/ci-multinode/seed.yml | 2 ++ ...-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml | 5 +++++ 3 files changed, 9 insertions(+) create mode 100644 etc/kayobe/environments/ci-multinode/network-allocation.yml create mode 100644 releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml diff --git a/etc/kayobe/environments/ci-multinode/network-allocation.yml b/etc/kayobe/environments/ci-multinode/network-allocation.yml new file mode 100644 index 000000000..827597b84 --- /dev/null +++ b/etc/kayobe/environments/ci-multinode/network-allocation.yml @@ -0,0 +1,2 @@ +external_ips: + alex-mn-seed: 192.168.38.3 \ No newline at end of file diff --git a/etc/kayobe/environments/ci-multinode/seed.yml b/etc/kayobe/environments/ci-multinode/seed.yml index 1ae71f1a4..fe72e7c31 100644 --- a/etc/kayobe/environments/ci-multinode/seed.yml +++ b/etc/kayobe/environments/ci-multinode/seed.yml @@ -8,3 +8,5 @@ seed_lvm_groups: seed_extra_network_interfaces: - "external" - "public" + +seed_enable_snat: true diff --git a/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml new file mode 100644 index 000000000..7f34afca7 --- /dev/null +++ b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes internet connectivity for VMs deployed in the ci-multinode + environment. From ac6f53465fcca3c1cc85a1f5503e174f826a0325 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Wed, 1 Mar 2023 14:19:50 +0000 Subject: [PATCH 4/4] make ci-multinode network MTUs dynamic --- etc/kayobe/environments/ci-multinode/kolla.yml | 5 ----- .../environments/ci-multinode/network-allocation.yml | 2 -- etc/kayobe/environments/ci-multinode/networks.yml | 12 ++++++------ etc/kayobe/environments/ci-multinode/seed.yml | 2 ++ ...add-monitoring-to-multinode-958603f026edbc7c.yaml | 3 ++- .../add-vm-overcloud-support-92baa7c2ce87ac1d.yaml | 4 ++-- ...de-vm-internet-connectivity-49ab64cd75833f09.yaml | 2 +- 7 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 etc/kayobe/environments/ci-multinode/network-allocation.yml diff --git a/etc/kayobe/environments/ci-multinode/kolla.yml b/etc/kayobe/environments/ci-multinode/kolla.yml index 64c472fb4..5c6c80dae 100644 --- a/etc/kayobe/environments/ci-multinode/kolla.yml +++ b/etc/kayobe/environments/ci-multinode/kolla.yml @@ -4,8 +4,3 @@ kolla_enable_cinder_backup: true kolla_enable_neutron_provider_networks: true kolla_enable_ovn: true kolla_enable_octavia: true - -# Override these from etc/kayobe/kolla.yml -# These are set to true within etc/kayobe/kolla.yml. -# Leaving them set to true would require additional -# configuration change. diff --git a/etc/kayobe/environments/ci-multinode/network-allocation.yml b/etc/kayobe/environments/ci-multinode/network-allocation.yml deleted file mode 100644 index 827597b84..000000000 --- a/etc/kayobe/environments/ci-multinode/network-allocation.yml +++ /dev/null @@ -1,2 +0,0 @@ -external_ips: - alex-mn-seed: 192.168.38.3 \ No newline at end of file diff --git a/etc/kayobe/environments/ci-multinode/networks.yml b/etc/kayobe/environments/ci-multinode/networks.yml index 6afa05758..8d1d93c2c 100644 --- a/etc/kayobe/environments/ci-multinode/networks.yml +++ b/etc/kayobe/environments/ci-multinode/networks.yml @@ -73,7 +73,7 @@ storage_mgmt_net_name: storage_mgmt # Internal network internal_cidr: 192.168.37.0/24 -internal_mtu: 1392 +internal_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" internal_allocation_pool_start: 192.168.37.3 internal_allocation_pool_end: 192.168.37.254 internal_vip_address: 192.168.37.2 @@ -88,7 +88,7 @@ external_vlan: 102 # Public network public_cidr: 192.168.39.0/24 -public_mtu: 1392 +public_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" public_allocation_pool_start: 192.168.39.3 public_allocation_pool_end: 192.168.39.254 public_vip_address: 192.168.39.2 @@ -96,28 +96,28 @@ public_vlan: 103 # Tunnel network tunnel_cidr: 192.168.40.0/24 -tunnel_mtu: 1392 +tunnel_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" tunnel_allocation_pool_start: 192.168.40.3 tunnel_allocation_pool_end: 192.168.40.254 tunnel_vlan: 104 # Storage network storage_cidr: 192.168.41.0/24 -storage_mtu: 1392 +storage_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" storage_allocation_pool_start: 192.168.41.3 storage_allocation_pool_end: 192.168.41.254 storage_vlan: 105 # Storage management network storage_mgmt_cidr: 192.168.42.0/24 -storage_mgmt_mtu: 1392 +storage_mgmt_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" storage_mgmt_allocation_pool_start: 192.168.42.3 storage_mgmt_allocation_pool_end: 192.168.42.254 storage_mgmt_vlan: 106 # Provision overcloud network provision_oc_cidr: 192.168.33.0/24 -provision_oc_mtu: 1392 +provision_oc_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" provision_oc_allocation_pool_start: 192.168.33.128 provision_oc_allocation_pool_end: 192.168.33.254 provision_oc_vlan: 107 diff --git a/etc/kayobe/environments/ci-multinode/seed.yml b/etc/kayobe/environments/ci-multinode/seed.yml index fe72e7c31..3eb7afa90 100644 --- a/etc/kayobe/environments/ci-multinode/seed.yml +++ b/etc/kayobe/environments/ci-multinode/seed.yml @@ -9,4 +9,6 @@ seed_extra_network_interfaces: - "external" - "public" +# Enable IP routing and source NAT on the seed, allowing it to be used as the +# external subnet gateway and provide internet access for VMs in the deployment. seed_enable_snat: true diff --git a/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml index 4f3b70639..0a985519c 100644 --- a/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml +++ b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml @@ -1,4 +1,5 @@ --- features: - | - Set monitoring services be enabled by default in the multinode environment. + Set monitoring services be enabled by default in the ``ci-multinode`` + environment. diff --git a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml index a1f18e10f..a3ebacc1f 100644 --- a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml +++ b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml @@ -2,6 +2,6 @@ features: - | Adds support for using a VMs as compute and controller nodes in the - multinode-ci environment by decreasing the MTU of the networks in - networks.yml to 1392 and removing the static definition of the network + ``ci-multinode`` environment by dynamically setting the MTU of the networks + in networks.yml and removing the static definition of the network interfaces for the compute and controller groups. diff --git a/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml index 7f34afca7..007de8a76 100644 --- a/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml +++ b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml @@ -1,5 +1,5 @@ --- fixes: - | - Fixes internet connectivity for VMs deployed in the ci-multinode + Fixes internet connectivity for VMs deployed in the ``ci-multinode`` environment.