From 59afe0619f5aa183481d68bf033e81143969fdae Mon Sep 17 00:00:00 2001 From: Roberto Alfieri Date: Wed, 15 Jul 2026 17:02:52 +0200 Subject: [PATCH] Enable Ceph for uni05epsilon adoption scenario Add external Ceph deployment to the uni05epsilon multi-cell adoption scenario, following the uni04delta pattern. The Ceph cluster is deployed on the cell1 and cell2 compute nodes (which have OSD disks) as an external cluster before the TripleO overcloud deploy. All three stacks (overcloud, cell1, cell2) reference the external-ceph environment and generated credentials. Changes: - Add ceph_inventory.yaml targeting cell1/cell2 computes - Add osd_spec.yaml for OSD device configuration - Add pre_oc_run hooks to overcloud stack: setup ceph nodes, deploy ceph cluster, create external ceph parameters - Add external-ceph.yaml environment to all three stacks Related: OSPNW-1658 Co-authored-by: Cursor --- scenarios/uni05epsilon.yaml | 24 +++++++++++++++++++ scenarios/uni05epsilon/ceph_inventory.yaml | 20 ++++++++++++++++ .../uni05epsilon/config_download_cell1.yaml | 6 +++++ .../uni05epsilon/config_download_cell2.yaml | 6 +++++ scenarios/uni05epsilon/osd_spec.yaml | 3 +++ scenarios/uni05epsilon/roles.yaml | 8 +++++++ 6 files changed, 67 insertions(+) create mode 100644 scenarios/uni05epsilon/ceph_inventory.yaml create mode 100644 scenarios/uni05epsilon/osd_spec.yaml diff --git a/scenarios/uni05epsilon.yaml b/scenarios/uni05epsilon.yaml index 49a1d597b..7fa41e976 100644 --- a/scenarios/uni05epsilon.yaml +++ b/scenarios/uni05epsilon.yaml @@ -61,6 +61,8 @@ stacks: - "/usr/share/openstack-tripleo-heat-templates/environments/podman.yaml" - "/usr/share/openstack-tripleo-heat-templates/environments/low-memory-usage.yaml" - "/usr/share/openstack-tripleo-heat-templates/environments/debug.yaml" + - "/usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml" + - "/home/zuul/external_ceph_params.yaml" network_data_file: "uni05epsilon/network_data.yaml.j2" routes: *sroutes vips_data_file: "uni05epsilon/vips_data_overcloud.yaml" @@ -68,6 +70,24 @@ stacks: config_download_file: "uni05epsilon/config_download_overcloud.yaml" stack_nodes: - osp-controllers + pre_oc_run: + - name: 01 Prepare Ceph nodes + type: playbook + source: "setup_cephnodes.yaml" + inventory: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/data-plane-adoption']. + src_dir }}/scenarios/uni05epsilon/ceph_inventory.yaml" + - name: 02 Deploy external ceph + type: playbook + source: "ceph.yml" + gathering: implicit + inventory: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/data-plane-adoption']. + src_dir }}/scenarios/uni05epsilon/ceph_inventory.yaml" + - name: 03 Create external Ceph parameters file + type: playbook + source: "create_external_ceph_params.yml" + extra_vars: + ceph_node: "cell1-osp-compute-uni05epsilon-0" + ceph_mon_host: "172.18.0.94,172.18.0.95" post_oc_run: - name: Multi-cell post overcloud deploy type: playbook @@ -93,6 +113,8 @@ stacks: - "/usr/share/openstack-tripleo-heat-templates/environments/low-memory-usage.yaml" - "/usr/share/openstack-tripleo-heat-templates/environments/debug.yaml" - "/usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml" + - "/usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml" + - "/home/zuul/external_ceph_params.yaml" - "/home/zuul/cell1-input.yaml" network_data_file: "uni05epsilon/network_data.yaml.j2" routes: *sroutes @@ -132,6 +154,8 @@ stacks: - "/usr/share/openstack-tripleo-heat-templates/environments/podman.yaml" - "/usr/share/openstack-tripleo-heat-templates/environments/low-memory-usage.yaml" - "/usr/share/openstack-tripleo-heat-templates/environments/debug.yaml" + - "/usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml" + - "/home/zuul/external_ceph_params.yaml" - "/home/zuul/cell2-input.yaml" network_data_file: "uni05epsilon/network_data.yaml.j2" routes: *sroutes diff --git a/scenarios/uni05epsilon/ceph_inventory.yaml b/scenarios/uni05epsilon/ceph_inventory.yaml new file mode 100644 index 000000000..5f29a8883 --- /dev/null +++ b/scenarios/uni05epsilon/ceph_inventory.yaml @@ -0,0 +1,20 @@ +computes: + hosts: + cell1-osp-compute-uni05epsilon-0: + ansible_user: zuul + ansible_ssh_private_key_file: /home/zuul/.ssh/cifmw_reproducer_key + bridge_ip: 192.168.122.94/24 + external_ip: 172.21.0.94/24 + internalapi_ip: 172.17.0.94/24 + storage_ip: 172.18.0.94/24 + storagemgmt_ip: 172.20.0.94/24 + tenant_ip: 172.19.0.94/24 + cell2-osp-compute-uni05epsilon-0: + ansible_user: zuul + ansible_ssh_private_key_file: /home/zuul/.ssh/cifmw_reproducer_key + bridge_ip: 192.168.122.95/24 + external_ip: 172.21.0.95/24 + internalapi_ip: 172.17.0.95/24 + storage_ip: 172.18.0.95/24 + storagemgmt_ip: 172.20.0.95/24 + tenant_ip: 172.19.0.95/24 diff --git a/scenarios/uni05epsilon/config_download_cell1.yaml b/scenarios/uni05epsilon/config_download_cell1.yaml index a3acfd22e..52a953ef7 100644 --- a/scenarios/uni05epsilon/config_download_cell1.yaml +++ b/scenarios/uni05epsilon/config_download_cell1.yaml @@ -43,6 +43,12 @@ resource_registry: parameter_defaults: SshFirewallAllowAll: true + ExtraFirewallRules: + '110 ceph_mon': + dport: + - 3300 + - 6789 + proto: tcp # Specify that this is an additional cell NovaAdditionalCell: true diff --git a/scenarios/uni05epsilon/config_download_cell2.yaml b/scenarios/uni05epsilon/config_download_cell2.yaml index 3b75009e6..6731b7894 100644 --- a/scenarios/uni05epsilon/config_download_cell2.yaml +++ b/scenarios/uni05epsilon/config_download_cell2.yaml @@ -43,6 +43,12 @@ resource_registry: parameter_defaults: SshFirewallAllowAll: true + ExtraFirewallRules: + '110 ceph_mon': + dport: + - 3300 + - 6789 + proto: tcp # Specify that this is an additional cell NovaAdditionalCell: true diff --git a/scenarios/uni05epsilon/osd_spec.yaml b/scenarios/uni05epsilon/osd_spec.yaml new file mode 100644 index 000000000..0433ffab1 --- /dev/null +++ b/scenarios/uni05epsilon/osd_spec.yaml @@ -0,0 +1,3 @@ +--- +data_devices: + all: true diff --git a/scenarios/uni05epsilon/roles.yaml b/scenarios/uni05epsilon/roles.yaml index 9b07238fe..e7caccea2 100644 --- a/scenarios/uni05epsilon/roles.yaml +++ b/scenarios/uni05epsilon/roles.yaml @@ -46,6 +46,8 @@ - OS::TripleO::Services::AuditD - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal - OS::TripleO::Services::CinderApi - OS::TripleO::Services::CinderBackendDellSc - OS::TripleO::Services::CinderBackendDellEMCPowerFlex @@ -165,6 +167,8 @@ - OS::TripleO::Services::AuditD - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal - OS::TripleO::Services::Clustercheck - OS::TripleO::Services::Collectd - OS::TripleO::Services::ContainerImagePrepare @@ -217,6 +221,8 @@ subnet: tenant_subnet Storage: subnet: storage_subnet + StorageMgmt: + subnet: storage_mgmt_subnet default_route_networks: ['ControlPlane'] HostnameFormatDefault: '%stackname%-novacompute-%index%' RoleParametersDefault: @@ -240,6 +246,8 @@ - OS::TripleO::Services::AuditD - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal - OS::TripleO::Services::ComputeNeutronCorePlugin - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent