From cbbb63ef186140f159f7941a1bf3b8255508eeeb Mon Sep 17 00:00:00 2001 From: Jake Hutchinson <jake@stackhpc.com> Date: Mon, 27 Jan 2025 13:37:17 +0000 Subject: [PATCH 1/3] Unpin Kayobe/Kolla-Ansible versions --- etc/kayobe/kolla.yml | 6 ++---- requirements.txt | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index e434e5ba9..7bf8fa16a 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -33,14 +33,12 @@ kolla_source_version: "{{ stackhpc_kolla_source_version }}" # URL of Kolla Ansible source code repository if type is 'source'. Default is # https://opendev.org/openstack/kolla-ansible. -kolla_ansible_source_url: "https://gitlab.developers.cam.ac.uk/rcs/platforms/cloud-services/kolla-ansible" -#kolla_ansible_source_url: "{{ stackhpc_kolla_ansible_source_url }}" +kolla_ansible_source_url: "{{ stackhpc_kolla_ansible_source_url }}" # Version (branch, tag, etc.) of Kolla Ansible source code repository if type # is 'source'. Default is {{ openstack_branch }}. #kolla_ansible_source_version: scientific-openstack/victoria-em.5 -kolla_ansible_source_version: "2023.1-eom-branch" -#kolla_ansible_source_version: "{{ stackhpc_kolla_ansible_source_version }}" +kolla_ansible_source_version: "{{ stackhpc_kolla_ansible_source_version }}" # Path to virtualenv in which to install kolla-ansible. Default is # $KOLLA_VENV_PATH or $PWD/venvs/kolla-ansible if $KOLLA_VENV_PATH is not set. diff --git a/requirements.txt b/requirements.txt index 609be2a81..774fe90a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -git+https://gitlab.developers.cam.ac.uk/rcs/platforms/cloud-services/kayobe.git@2023.1-eom-branch#egg-kayobe # Apache-2.0 +git+https://github.com/stackhpc/kayobe.git@stackhpc/2023.1 # Apache-2.0 ansible-modules-hashivault>=5.2.1 jmespath -- GitLab From e98de15d118c0d7513227e1cd0bce4a4aadd613b Mon Sep 17 00:00:00 2001 From: Kayobe Automation <kayobe-automation@example.org> Date: Mon, 10 Mar 2025 14:26:09 +0000 Subject: [PATCH 2/3] Add vars for new group compute-rcp-pvc-ood-20250228, login/OoD worker nodes for Dawn/Waldur --- etc/kayobe/ansible/compute-lvm.yml | 10 +- .../ansible/hypervisor-broadcom-sriov.yml | 2 +- .../production/inventory/overcloud | 12 ++ .../compute-rcp-pvc-ood-20250228/nova_cell | 11 ++ .../nova_cell.new | 20 +++ .../compute-rcp-pvc-ood-20250228/sriov | 6 + .../compute-rcp-pvc-ood-20250228/tuning | 4 + .../production/network-allocation.yml | 40 +++++- etc/kayobe/inventory/custom | 1 + .../compute-rcp-pvc-ood-20250228/compute.yml | 121 ++++++++++++++++++ .../compute-rcp-pvc-ood-20250228/firewall | 112 ++++++++++++++++ .../compute-rcp-pvc-ood-20250228/firewallgen | 53 ++++++++ .../compute-rcp-pvc-ood-20250228/lvm | 2 + .../network-interfaces | 22 ++++ .../network-interfaces.old | 23 ++++ .../compute-rcp-pvc-ood-20250228/sriov | 7 + .../compute-rcp-pvc-ood-20250228/tuning | 4 + etc/kayobe/kolla.yml | 1 + .../kolla/config/nova/nova-compute.conf | 3 + 19 files changed, 450 insertions(+), 4 deletions(-) create mode 100644 etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell create mode 100644 etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell.new create mode 100644 etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov create mode 100644 etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/compute.yml create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewall create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewallgen create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/lvm create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces.old create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov create mode 100644 etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning diff --git a/etc/kayobe/ansible/compute-lvm.yml b/etc/kayobe/ansible/compute-lvm.yml index 670d50058..3c3cdb8ed 100644 --- a/etc/kayobe/ansible/compute-lvm.yml +++ b/etc/kayobe/ansible/compute-lvm.yml @@ -7,9 +7,15 @@ vars: ansible_python_interpreter: "/bin/python3" ansible_user: "cloud-user" - # AR06 R660s - root_disk: "pci-0000:02:00.0-scsi-0:2:0:0" + # DR16 R660s + root_disk: "pci-0000:3f:00.0-scsi-0:3:111:0" root_partition_number: "3" + # CR13 R860s + #root_disk: "pci-0000:01:00.0-nvme-1" + #root_partition_number: "3" + # AR06 R660s + #root_disk: "pci-0000:02:00.0-scsi-0:2:0:0" + #root_partition_number: "3" # CCLake #root_disk: "pci-0000:00:11.5-ata-1.0" #root_partition_number: "3" diff --git a/etc/kayobe/ansible/hypervisor-broadcom-sriov.yml b/etc/kayobe/ansible/hypervisor-broadcom-sriov.yml index e19a235a1..a0390e82f 100644 --- a/etc/kayobe/ansible/hypervisor-broadcom-sriov.yml +++ b/etc/kayobe/ansible/hypervisor-broadcom-sriov.yml @@ -8,7 +8,7 @@ - name: "{{ primary_eth_interface }}" numvfs: 8 sriov_mft_url: https://www.mellanox.com/downloads/MFT/mft-4.15.1-9-x86_64-rpm.tgz - sriov_numvfs: 8 + sriov_numvfs: 16 remove_old_config: True force_network_restart: True tasks: diff --git a/etc/kayobe/environments/production/inventory/overcloud b/etc/kayobe/environments/production/inventory/overcloud index 34218d665..382c56d77 100644 --- a/etc/kayobe/environments/production/inventory/overcloud +++ b/etc/kayobe/environments/production/inventory/overcloud @@ -244,6 +244,7 @@ compute-rcp-internal-cclake-20240314 compute-ska-src-r660-himem-20240610 compute-ska-src-c6620-20240814 #compute-rcp-pvc-gpu-20240723 +compute-rcp-pvc-ood-20250228 #[compute-ar17-c6320] #svn1-ar17-u20 @@ -293,6 +294,7 @@ compute-ska-src-r660-himem-20240610 compute-ska-src-c6620-20240814 compute-iris-c6620-srapids-20241128 compute-iris-r860-himem-20250130 +compute-rcp-pvc-ood-20250228 [compute-20200110] cl-ar06-u28 ipmi_address=10.45.160.15 bmc_type=idrac @@ -757,6 +759,16 @@ nova-svn1-fr14-u40 ansible_host=10.41.168.127 #[compute-rcp-pvc-gpu-20240723] #nova-sv-ar19-u35 ansible_host=10.41.85.67 +[compute-rcp-pvc-ood-20250228] +nova-sv-dr16-u6 ansible_host=10.41.87.1 +nova-sv-dr16-u7 ansible_host=10.41.87.2 +nova-sv-dr16-u8 ansible_host=10.41.87.3 +nova-sv-dr16-u9 ansible_host=10.41.87.4 +nova-sv-dr16-u10 ansible_host=10.41.87.5 +nova-sv-dr16-u11 ansible_host=10.41.87.6 +nova-sv-dr16-u12 ansible_host=10.41.87.7 +nova-sv-dr16-u13 ansible_host=10.41.87.8 + # Switch groups [switches:children] ctl-switches diff --git a/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell new file mode 100644 index 000000000..acebde908 --- /dev/null +++ b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell @@ -0,0 +1,11 @@ +--- + +nova_cell_compute_provider_config: + meta: + schema_version: '1.0' + providers: + - identification: + name: "{{ inventory_hostname }}" + traits: + additional: + - 'CUSTOM_OOD_V2_HYPERVISOR' diff --git a/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell.new b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell.new new file mode 100644 index 000000000..f6bf1e6e4 --- /dev/null +++ b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/nova_cell.new @@ -0,0 +1,20 @@ +--- + +nova_cell_compute_provider_config: + meta: + schema_version: '1.0' + providers: + - identification: + name: "{{ inventory_hostname }}" + inventories: + additional: + - CUSTOM_PVC_1T_GPU: + total: 4 + reserved: 0 + min_unit: 1 + max_unit: 4 + step_size: 1 + allocation_ratio: 1.0 + traits: + additional: + - 'CUSTOM_PVC_1T_GPU' diff --git a/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov new file mode 100644 index 000000000..befb47a9e --- /dev/null +++ b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov @@ -0,0 +1,6 @@ +--- + +_enable_neutron_sriov: yes + +sriov_physnet_mappings: + eno12399np0: physnet1 diff --git a/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning new file mode 100644 index 000000000..8c14bedd5 --- /dev/null +++ b/etc/kayobe/environments/production/kolla/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning @@ -0,0 +1,4 @@ +--- + +enable_nested_virt: "false" +nova_cpu_dedicated_set: "4-63" diff --git a/etc/kayobe/environments/production/network-allocation.yml b/etc/kayobe/environments/production/network-allocation.yml index 05bd51211..05eed8535 100644 --- a/etc/kayobe/environments/production/network-allocation.yml +++ b/etc/kayobe/environments/production/network-allocation.yml @@ -40,8 +40,8 @@ admin_oc_net_ips: nova-sv-br08-u5: 10.41.243.132 nova-sv-br08-u7: 10.41.243.133 nova-sv-br08-u9: 10.41.243.134 + nova-sv-cr13-u21: 10.41.169.5 nova-sv-cr13-u23: 10.41.169.4 - nova-sv-cr13-u21: 10.41.169.5 nova-sv-cr13-u28: 10.41.169.3 nova-sv-cr13-u29: 10.41.169.2 nova-sv-cr13-u30: 10.41.169.1 @@ -53,6 +53,14 @@ admin_oc_net_ips: nova-sv-dr05-u27: 10.41.79.9 nova-sv-dr05-u29: 10.41.79.10 nova-sv-dr05-u8: 10.41.79.3 + nova-sv-dr16-u10: 10.41.87.5 + nova-sv-dr16-u11: 10.41.87.6 + nova-sv-dr16-u12: 10.41.87.7 + nova-sv-dr16-u13: 10.41.87.8 + nova-sv-dr16-u6: 10.41.87.1 + nova-sv-dr16-u7: 10.41.87.2 + nova-sv-dr16-u8: 10.41.87.3 + nova-sv-dr16-u9: 10.41.87.4 nova-sv-er19-u35: 10.41.18.5 nova-sv-er19-u37: 10.41.18.6 nova-svn1-ar02-u10: 10.41.161.17 @@ -381,6 +389,8 @@ internal_net_ips: nova-sv-br08-u5: 10.5.2.26 nova-sv-br08-u7: 10.5.2.27 nova-sv-br08-u9: 10.5.2.28 + nova-sv-cr13-u21: 10.5.2.75 + nova-sv-cr13-u23: 10.5.2.74 nova-sv-cr13-u28: 10.5.2.42 nova-sv-cr13-u29: 10.5.2.41 nova-sv-cr13-u30: 10.5.2.40 @@ -392,6 +402,14 @@ internal_net_ips: nova-sv-dr05-u27: 10.5.1.110 nova-sv-dr05-u29: 10.5.1.8 nova-sv-dr05-u8: 10.5.1.116 + nova-sv-dr16-u10: 10.5.2.80 + nova-sv-dr16-u11: 10.5.2.81 + nova-sv-dr16-u12: 10.5.2.82 + nova-sv-dr16-u13: 10.5.2.83 + nova-sv-dr16-u6: 10.5.2.76 + nova-sv-dr16-u7: 10.5.2.77 + nova-sv-dr16-u8: 10.5.2.78 + nova-sv-dr16-u9: 10.5.2.79 nova-sv-er19-u35: 10.5.1.82 nova-sv-er19-u37: 10.5.1.83 nova-svn1-ar02-u10: 10.5.2.8 @@ -790,6 +808,8 @@ storage_net_ips: nova-sv-br08-u5: 10.4.204.64 nova-sv-br08-u7: 10.4.204.65 nova-sv-br08-u9: 10.4.204.66 + nova-sv-cr13-u21: 10.4.204.127 + nova-sv-cr13-u23: 10.4.204.126 nova-sv-cr13-u28: 10.4.204.80 nova-sv-cr13-u29: 10.4.204.79 nova-sv-cr13-u30: 10.4.204.78 @@ -801,6 +821,14 @@ storage_net_ips: nova-sv-dr05-u27: 10.4.204.39 nova-sv-dr05-u29: 10.4.204.30 nova-sv-dr05-u8: 10.4.204.45 + nova-sv-dr16-u10: 10.4.204.132 + nova-sv-dr16-u11: 10.4.204.133 + nova-sv-dr16-u12: 10.4.204.134 + nova-sv-dr16-u13: 10.4.204.135 + nova-sv-dr16-u6: 10.4.204.128 + nova-sv-dr16-u7: 10.4.204.129 + nova-sv-dr16-u8: 10.4.204.130 + nova-sv-dr16-u9: 10.4.204.131 nova-sv-er19-u35: 10.4.201.80 nova-sv-er19-u37: 10.4.201.81 nova-svn1-ar02-u10: 10.4.204.7 @@ -1119,6 +1147,8 @@ tunnel_net_ips: nova-sv-br08-u5: 10.17.2.24 nova-sv-br08-u7: 10.17.2.25 nova-sv-br08-u9: 10.17.2.26 + nova-sv-cr13-u21: 10.17.2.73 + nova-sv-cr13-u23: 10.17.2.72 nova-sv-cr13-u28: 10.17.2.40 nova-sv-cr13-u29: 10.17.2.39 nova-sv-cr13-u30: 10.17.2.38 @@ -1130,6 +1160,14 @@ tunnel_net_ips: nova-sv-dr05-u27: 10.17.1.107 nova-sv-dr05-u29: 10.17.1.6 nova-sv-dr05-u8: 10.17.1.113 + nova-sv-dr16-u10: 10.17.2.78 + nova-sv-dr16-u11: 10.17.2.79 + nova-sv-dr16-u12: 10.17.2.80 + nova-sv-dr16-u13: 10.17.2.81 + nova-sv-dr16-u6: 10.17.2.74 + nova-sv-dr16-u7: 10.17.2.75 + nova-sv-dr16-u8: 10.17.2.76 + nova-sv-dr16-u9: 10.17.2.77 nova-sv-er19-u35: 10.17.1.80 nova-sv-er19-u37: 10.17.1.81 nova-svn1-ar02-u10: 10.17.2.7 diff --git a/etc/kayobe/inventory/custom b/etc/kayobe/inventory/custom index f3126334c..60755a4cf 100644 --- a/etc/kayobe/inventory/custom +++ b/etc/kayobe/inventory/custom @@ -37,6 +37,7 @@ [compute-rcp-l40-20231102] [compute-rcp-internal-cclake-20240314] [compute-rcp-pvc-gpu-20240723] +[compute-rcp-pvc-ood-20250228] [a100_gpu_xe8545_ska] [a100_gpu_xe8545_srcp] [a100_gpu_xe8545_iris] diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/compute.yml b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/compute.yml new file mode 100644 index 000000000..4ddeb1032 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/compute.yml @@ -0,0 +1,121 @@ +--- +############################################################################### +# Compute node configuration. + +# User with which to access the computes via SSH during bootstrap, in order +# to setup the Kayobe user account. +compute_bootstrap_user: cloud-user + +############################################################################### +# Network interface attachments. + +# List of networks to which compute nodes are attached. +compute_network_interfaces: > + {{ [admin_oc_net_name, + internal_net_name, + storage_net_name, + tunnel_net_name] | unique | list }} + +# List of default networks to which compute nodes are attached. +#compute_default_network_interfaces: + +# List of extra networks to which compute nodes are attached. +#compute_extra_network_interfaces: + +############################################################################### +# Compute node BIOS configuration. + +# Dict of compute BIOS options. Format is same as that used by stackhpc.drac +# role. +#compute_bios_config: + +# Dict of default compute BIOS options. Format is same as that used by +# stackhpc.drac role. +#compute_bios_config_default: + +# Dict of additional compute BIOS options. Format is same as that used by +# stackhpc.drac role. +#compute_bios_config_extra: + +############################################################################### +# Compute node RAID configuration. + +# List of compute RAID volumes. Format is same as that used by stackhpc.drac +# role. +#compute_raid_config: + +# List of default compute RAID volumes. Format is same as that used by +# stackhpc.drac role. +#compute_raid_config_default: + +# List of additional compute RAID volumes. Format is same as that used by +# stackhpc.drac role. +#compute_raid_config_extra: + +############################################################################### +# Compute node software RAID configuration. + +# List of software RAID arrays. See mrlesmithjr.mdadm role for format. +#compute_mdadm_arrays: + +############################################################################### +# Compute node LVM configuration. + +# List of compute volume groups. See mrlesmithjr.manage-lvm role for +# format. +#compute_lvm_groups: + +# Default list of compute volume groups. See mrlesmithjr.manage-lvm role for +# format. +#compute_lvm_groups_default: + +# Additional list of compute volume groups. See mrlesmithjr.manage-lvm role +# for format. +#compute_lvm_groups_extra: + +# Compute LVM volume group for data. See mrlesmithjr.manage-lvm role for +# format. +#compute_lvm_group_data: + +# List of disks for use by compute LVM data volume group. Default to an +# invalid value to require configuration. +#compute_lvm_group_data_disks: + +# List of LVM logical volumes for the data volume group. +#compute_lvm_group_data_lvs: + +# Docker volumes LVM backing volume. +#compute_lvm_group_data_lv_docker_volumes: + +# Size of docker volumes LVM backing volume. +#compute_lvm_group_data_lv_docker_volumes_size: + +# Filesystem for docker volumes LVM backing volume. ext4 allows for shrinking. +#compute_lvm_group_data_lv_docker_volumes_fs: + +############################################################################### +# Compute node Ceph configuration. + +# List of Ceph disks. +# The format is a list of dict like : +# - { osd: "/dev/sdb", journal: "/dev/sdc" } +# - { osd: "/dev/sdd" } +# Journal variable is not mandatory. +#compute_ceph_disks: + +############################################################################### +# Compute node sysctl configuration. + +# Dict of sysctl parameters to set. +#compute_sysctl_parameters: + +############################################################################### +# Compute node user configuration. + +# List of users to create. This should be in a format accepted by the +# singleplatform-eng.users role. +#compute_users: + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewall b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewall new file mode 100644 index 000000000..56136fa71 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewall @@ -0,0 +1,112 @@ +--- + +firewallgen_enable_firewall: True + +firewallgen_ipv4_input_allow_rules: + - interface: "lo" + port: 25 + proto: tcp + destination: "127.0.0.1" + comment: "hint: used by 'master'" + - interface: "lo" + port: 6633 + proto: tcp + destination: "127.0.0.1" + comment: "hint: used by 'neutron-openvsw' in docker container 'neutron_openvswitch_agent'" + - interface: "lo" + port: 6640 + proto: tcp + destination: "127.0.0.1" + comment: "hint: used by 'ovsdb-server' in docker container 'openvswitch_db'" + - interface: "{{ admin_oc_net_interface }}" + port: 22 + proto: tcp + comment: "hint: used by 'sshd'" + - interface: "{{ admin_oc_net_interface }}" + port: 161 + proto: udp + comment: "hint: used by 'snmpd'" + - interface: "{{ admin_oc_net_interface }}" + port: 5665 + proto: tcp + comment: "hint: used by 'icinga2'" + - interface: "{{ internal_net_interface }}" + port: 8022 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'sshd' in docker container 'nova_ssh'" + - interface: "{{ internal_net_interface }}" + port: 9100 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'node_exporter' in docker container 'prometheus_node_exporter'" + - interface: "{{ internal_net_interface }}" + port: 9177 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'libvirt_exporte' in docker container 'prometheus_libvirt_exporter'" + - interface: "{{ internal_net_interface }}" + port: 16509 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'libvirtd' in docker container 'nova_libvirt'" + - interface: "{{ internal_net_name | net_interface }}" + port: 9197 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'mtail' in docker container 'prometheus_mtail'" + - interface: "{{ internal_net_name | net_interface }}" + port: 10000:20000 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "Nova serial console proxy" + - interface: "{{ internal_net_name | net_interface }}" + port: 18080 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'cadvisor' in docker container 'prometheus_cadvisor'" + - interface: "{{ internal_net_name | net_interface }}" + port: 49152:49215 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "Nova live migration" + - interface: "{{ internal_net_name | net_interface }}" + port: 5900:6000 + proto: tcp + destination: "{{ internal_net_name | net_ip }}" + comment: "libvirt serial consoles" + - interface: "docker0" + port: 123 + proto: udp + destination: "172.17.0.1" + comment: "hint: used by 'ntpd'" + - interface: "lo" + port: 123 + proto: udp + destination: "127.0.0.1" + comment: "hint: used by 'ntpd'" + - interface: "lo" + port: 323 + proto: udp + destination: "127.0.0.1" + comment: "hint: used by 'chronyd' in docker container 'chrony'" + - interface: "lo" + port: 5140 + proto: udp + destination: "127.0.0.1" + comment: "hint: used by 'fluentd' in docker container 'fluentd'" + - interface: "{{ internal_net_interface }}" + port: 123 + proto: udp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'ntpd'" + - interface: "{{ internal_net_interface }}" + port: 5140 + proto: udp + destination: "{{ internal_net_name | net_ip }}" + comment: "hint: used by 'fluentd' in docker container 'fluentd'" + - interface: "{{ tunnel_net_name | net_interface }}" + port: 4789 + proto: udp + destination: "{{ tunnel_net_name | net_ip }}" + comment: "required for VXLANs to work" diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewallgen b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewallgen new file mode 100644 index 000000000..7a74be75f --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/firewallgen @@ -0,0 +1,53 @@ +--- + +firewallgen_libvirt_serial_console_range_start: 5900 +firewallgen_libvirt_serial_console_range_end: 6000 + +firewallgen_libvirt_serial_console_proxy_range_start: 10000 +firewallgen_libvirt_serial_console_proxy_range_end: 20000 + +firewallgen_nova_migrate_range_start: 49152 +firewallgen_nova_migrate_range_end: 49215 + +firewallgen_ipv4_input_allow_rewrite_rules_compute: + # systemd socket activation for portmapper service + - '. | map(select(.port != 111))' + # drop 4789 and add explictly it the custom_rules_extra + - '. | map(select(.port != 4789))' + # libvirt serial console range is added explictly (see below) + - >- + . | map(select(.port < {{ firewallgen_libvirt_serial_console_range_start }} or + .port > {{ firewallgen_libvirt_serial_console_range_end }} )) + +firewallgen_ipv4_input_allow_rewrite_rules: > + {{ firewallgen_ipv4_input_allow_rewrite_rules_compute + + firewallgen_ipv4_input_allow_rewrite_rules_all }} + +firewallgen_ipv4_input_allow_custom_rules_extra: + # Libvirt serial consoles, based on: + # https://blog.scottlowe.org/2013/09/10/adjusting-vnc-console-access-via-libvirt-xml/ + # https://libvirt.org/git/?p=libvirt.git;a=blob;f=src/qemu/qemu.conf#l387 + - interface: "{{ firewallgen_interface_tmpl % 'internal_net_name' }}" + port: "{{ firewallgen_libvirt_serial_console_range_start }}:{{ firewallgen_libvirt_serial_console_range_end }}" + proto: tcp + destination: "{% raw %}{{ internal_net_name | net_ip }}{% endraw %}" + comment: libvirt serial consoles + + # QEMU-KVM domains bind serial console proxy to this port range, logging console to file + - interface: "{{ firewallgen_interface_tmpl % 'internal_net_name' }}" + port: "{{ firewallgen_libvirt_serial_console_proxy_range_start }}:{{ firewallgen_libvirt_serial_console_proxy_range_end }}" + proto: tcp + destination: "{% raw %}{{ internal_net_name | net_ip }}{% endraw %}" + comment: Nova serial console proxy + + - interface: "{{ firewallgen_interface_tmpl % 'tunnel_net_name' }}" + destination: "{% raw %}{{ tunnel_net_name | net_ip }}{% endraw %}" + port: 4789 + proto: udp + comment: required for VXLANs to work + + - interface: "{{ firewallgen_interface_tmpl % 'internal_net_name' }}" + port: "{{ firewallgen_nova_migrate_range_start }}:{{ firewallgen_nova_migrate_range_end }}" + proto: tcp + destination: "{% raw %}{{ internal_net_name | net_ip }}{% endraw %}" + comment: Nova live migration diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/lvm b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/lvm new file mode 100644 index 000000000..a6322a1ca --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/lvm @@ -0,0 +1,2 @@ +--- +compute_group_lv_var_size: "3480g" diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces new file mode 100644 index 000000000..f20586556 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces @@ -0,0 +1,22 @@ +--- +############################################################################### +# Network interface definitions for the compute group. + +external_net_name_custom: admin_oc_net + +admin_oc_net_interface: bridge +admin_oc_net_bridge_ports: + - eno12399np0 +admin_oc_net_bootproto: dhcp +admin_oc_net_defroute: false +admin_oc_net_routes: + - cidr: 0.0.0.0/0 + gateway: 10.41.255.1 + +internal_net_interface: "{{ admin_oc_net_interface }}.{{ internal_net_vlan }}" +tunnel_net_interface: "{{ admin_oc_net_interface }}.{{ tunnel_net_vlan }}" +storage_net_interface: "{{ admin_oc_net_interface }}.{{ storage_net_vlan }}" + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces.old b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces.old new file mode 100644 index 000000000..675aa6105 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/network-interfaces.old @@ -0,0 +1,23 @@ +--- +############################################################################### +# Network interface definitions for the compute group. + +external_net_name_custom: br_net + +# Bridge interface +br_net_interface: bridge +br_net_bridge_ports: + - eno12399np0 + +# Admin network IP information. +admin_oc_net_interface: "{{ br_net_interface }}" +admin_oc_net_gateway: "10.{{ admin_oc_net_vlan }}.255.1" + +# Overcloud networks on bond bridge +internal_net_interface: "{{ br_net_interface }}.{{ internal_net_vlan }}" +tunnel_net_interface: "{{ br_net_interface }}.{{ tunnel_net_vlan }}" +storage_net_interface: "{{ br_net_interface }}.{{ storage_net_vlan }}" + +############################################################################### +# Dummy variable to allow Ansible to accept this file. +workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov new file mode 100644 index 000000000..c88f62a13 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/sriov @@ -0,0 +1,7 @@ +--- + +do_sriov: True +sriov_udev_rule_path: "/etc/udev/rules.d/{{ primary_eth_interface }}.rules" + +old_eth_interface: "p4p2" +primary_eth_interface: "eno12399np0" diff --git a/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning new file mode 100644 index 000000000..9017da041 --- /dev/null +++ b/etc/kayobe/inventory/group_vars/compute-rcp-pvc-ood-20250228/tuning @@ -0,0 +1,4 @@ +--- + +enable_nested_virt: false +hugepages_1G_number: 992 diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index 4d2fbd839..63e05ddd7 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -628,6 +628,7 @@ kolla_overcloud_inventory_top_level_group_map: - compute-rcp-l40-20231102 - compute-rcp-internal-cclake-20240314 - compute-rcp-pvc-gpu-20240723 + - compute-rcp-pvc-ood-20250228 - a100_gpu_xe8545_ska - a100_gpu_xe8545_srcp - a100_gpu_xe8545_iris diff --git a/etc/kayobe/kolla/config/nova/nova-compute.conf b/etc/kayobe/kolla/config/nova/nova-compute.conf index 4351cf1d5..16177c690 100644 --- a/etc/kayobe/kolla/config/nova/nova-compute.conf +++ b/etc/kayobe/kolla/config/nova/nova-compute.conf @@ -82,6 +82,9 @@ passthrough_whitelist = [{% for dev, physnet in sriov_physnet_mappings.items() % {% elif inventory_hostname in groups['compute-iris-r860-himem-20250130'] and sriov_physnet_mappings is defined %} passthrough_whitelist = [{% for dev, physnet in sriov_physnet_mappings.items() %}{{ (loop.index0 > 0)|ternary(',','') }}{ "devname": "{{ dev }}", "physical_network": "{{ physnet }}" }{% endfor %}] +{% elif inventory_hostname in groups['compute-rcp-pvc-ood-20250228'] and sriov_physnet_mappings is defined %} +passthrough_whitelist = [{% for dev, physnet in sriov_physnet_mappings.items() %}{{ (loop.index0 > 0)|ternary(',','') }}{ "devname": "{{ dev }}", "physical_network": "{{ physnet }}" }{% endfor %}] + {% elif inventory_hostname in groups['compute-lrs-srcp-cclake-20230707'] and sriov_physnet_mappings is defined %} passthrough_whitelist = [{% for dev, physnet in sriov_physnet_mappings.items() %}{{ (loop.index0 > 0)|ternary(',','') }}{ "devname": "{{ dev }}", "physical_network": "{{ physnet }}" }{% endfor %}] -- GitLab From e4c2f53194ce2241be44e188de5b93d6760860db Mon Sep 17 00:00:00 2001 From: Kayobe Automation <kayobe-automation@example.org> Date: Mon, 10 Mar 2025 14:31:59 +0000 Subject: [PATCH 3/3] Add config for ethsw-ar03-u37, tune Neutron RPC workers and timeouts --- .environment | 2 +- .gitlab/config.d/50-environment.yml | 4 ++-- .../environments/production/inventory/overcloud | 1 + .../production/kolla/config/neutron/ml2_conf.ini | 12 ++++++++++++ etc/kayobe/kolla/config/neutron/neutron-server.conf | 5 +++++ 5 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 etc/kayobe/kolla/config/neutron/neutron-server.conf diff --git a/.environment b/.environment index c44e75e79..dcd5906e3 100644 --- a/.environment +++ b/.environment @@ -1 +1 @@ -production +staging diff --git a/.gitlab/config.d/50-environment.yml b/.gitlab/config.d/50-environment.yml index c3daed618..724577156 100644 --- a/.gitlab/config.d/50-environment.yml +++ b/.gitlab/config.d/50-environment.yml @@ -1,6 +1,6 @@ variables: - GITLAB_ENVIRONMENT: production - KAYOBE_ENVIRONMENT: production + GITLAB_ENVIRONMENT: staging + KAYOBE_ENVIRONMENT: staging .tags: tags: diff --git a/etc/kayobe/environments/production/inventory/overcloud b/etc/kayobe/environments/production/inventory/overcloud index 382c56d77..273880774 100644 --- a/etc/kayobe/environments/production/inventory/overcloud +++ b/etc/kayobe/environments/production/inventory/overcloud @@ -805,6 +805,7 @@ ethsw-ar06-u23 ethsw-cr01-u40 ethsw-ar02-u15 ethsw-ar02-u20 +ethsw-ar03-u37 ethsw-ar04-u15 ethsw-ar04-u20 ethsw-ar05-u15 diff --git a/etc/kayobe/environments/production/kolla/config/neutron/ml2_conf.ini b/etc/kayobe/environments/production/kolla/config/neutron/ml2_conf.ini index ac17eeab5..d66c9b9d8 100644 --- a/etc/kayobe/environments/production/kolla/config/neutron/ml2_conf.ini +++ b/etc/kayobe/environments/production/kolla/config/neutron/ml2_conf.ini @@ -22,6 +22,18 @@ acquire_timeout = 300 #ngs_max_connections = 1 #ngs_batch_requests = False +[genericswitch:ethsw-ar03-u37] +device_type = netmiko_dell_force10 +ip = 10.45.253.40 +username = arcus-ngs +password = {{ secrets_arcus_ngs_switch_ssh_password } +ngs_physical_networks = physnet1 +ngs_port_default_vlan = 610 +ngs_disable_inactive_ports = False +ngs_max_connections = 1 +ngs_batch_requests = False +ngs_manage_vlans = False + [genericswitch:ethsw-br15-u38] device_type = netmiko_dell_force10 ip = 10.45.253.178 diff --git a/etc/kayobe/kolla/config/neutron/neutron-server.conf b/etc/kayobe/kolla/config/neutron/neutron-server.conf new file mode 100644 index 000000000..51b74ec15 --- /dev/null +++ b/etc/kayobe/kolla/config/neutron/neutron-server.conf @@ -0,0 +1,5 @@ +[DEFAULT] +api_workers = 5 +rpc_workers = 5 +rpc_response_timeout = 120 +rpc_state_report_workers = 5 -- GitLab