Skip to content

Commit d256a64

Browse files
committed
Add uni04delta adoption scenario (IPv4 variant)
This commit introduces the uni04delta scenario for OSP 17.1 to RHOSO data plane adoption testing. This is the IPv4 variant of the delta topology, focused on Ceph integration and DNS services. Key Features: - Topology: 3 controllers + 2 computes + 3 external Ceph nodes - Network: IPv4 with tenant=vlan, DVR enabled - Storage: External Ceph 8.1 (RBD backend for Cinder/Glance, CephFS with NFS Ganesha for Manila, RGW as Swift) - Services: Barbican (simple crypto), Designate (DNS as a Service) - Networks: 7 networks configured (InternalApi, Storage, Tenant, StorageMgmt, External, Designate, Designateext) Architecture Reference: https://github.com/openstack-k8s-operators/architecture/tree/main/examples/dt/uni04delta Files Created: - scenarios/uni04delta.yaml: Main scenario definition with external Ceph deployment hooks and ceph_mon_host configuration - scenarios/uni04delta/network_data.yaml.j2: Network topology with Designate networks for DNS service testing - scenarios/uni04delta/roles.yaml: Controller and Compute roles with full service suite including Designate services - scenarios/uni04delta/config_download.yaml: Heat templates and parameter overrides with DVR and Designate port configurations - scenarios/uni04delta/vips_data.yaml: Virtual IPs for HA services - scenarios/uni04delta/ceph_inventory.yaml: External Ceph nodes inventory with all network IPs including external network - scenarios/uni04delta/hieradata_overrides_undercloud.yaml: Undercloud hieradata configuration - scenarios/uni04delta/undercloud_parameter_defaults.yaml: Undercloud parameter defaults Assisted-By: Cursor (claude-4.5-sonnet) Signed-off-by: Roberto Alfieri <[email protected]>
1 parent 7152771 commit d256a64

File tree

8 files changed

+578
-0
lines changed

8 files changed

+578
-0
lines changed

scenarios/uni04delta.yaml

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
undercloud:
3+
config:
4+
- section: DEFAULT
5+
option: undercloud_hostname
6+
value: undercloud.example.com
7+
- section: DEFAULT
8+
option: undercloud_timezone
9+
value: UTC
10+
- section: DEFAULT
11+
option: undercloud_debug
12+
value: true
13+
- section: DEFAULT
14+
option: container_cli
15+
value: podman
16+
- section: DEFAULT
17+
option: undercloud_enable_selinux
18+
value: false
19+
- section: DEFAULT
20+
option: generate_service_certificate
21+
value: false
22+
undercloud_parameters_override: "uni04delta/hieradata_overrides_undercloud.yaml"
23+
undercloud_parameters_defaults: "uni04delta/undercloud_parameter_defaults.yaml"
24+
ctlplane_vip: 192.168.122.98
25+
cloud_domain: "example.com"
26+
hostname_groups_map:
27+
# map ansible groups in the inventory to role hostname format for
28+
# 17.1 deployment
29+
osp-computes: "overcloud-compute"
30+
osp-controllers: "overcloud-controller"
31+
roles_groups_map:
32+
# map ansible groups to tripleo Role names
33+
osp-computes: "Compute"
34+
osp-controllers: "Controller"
35+
stacks:
36+
- stackname: "overcloud"
37+
args:
38+
- "--override-ansible-cfg /home/zuul/ansible_config.cfg"
39+
- "--templates /usr/share/openstack-tripleo-heat-templates"
40+
- "--libvirt-type qemu"
41+
- "--timeout 120"
42+
- "--overcloud-ssh-user zuul"
43+
- "--deployed-server"
44+
- "--validation-warnings-fatal"
45+
- "--disable-validations"
46+
- "--heat-type pod"
47+
- "--disable-protected-resource-types"
48+
vars:
49+
- "/usr/share/openstack-tripleo-heat-templates/environments/docker-ha.yaml"
50+
- "/usr/share/openstack-tripleo-heat-templates/environments/podman.yaml"
51+
- "/usr/share/openstack-tripleo-heat-templates/environments/low-memory-usage.yaml"
52+
- "/usr/share/openstack-tripleo-heat-templates/environments/debug.yaml"
53+
- "/usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml"
54+
- "/usr/share/openstack-tripleo-heat-templates/environments/services/barbican.yaml"
55+
- "/usr/share/openstack-tripleo-heat-templates/environments/barbican-backend-simple-crypto.yaml"
56+
- "/usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml"
57+
- "/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml"
58+
- "/home/zuul/external_ceph_params.yaml"
59+
network_data_file: "uni04delta/network_data.yaml.j2"
60+
vips_data_file: "uni04delta/vips_data.yaml"
61+
roles_file: "uni04delta/roles.yaml"
62+
config_download_file: "uni04delta/config_download.yaml"
63+
stack_nodes:
64+
- osp-computes
65+
- osp-controllers
66+
pre_oc_run:
67+
- name: 01 Prepare Ceph nodes
68+
type: playbook
69+
source: "setup_cephnodes.yaml"
70+
inventory: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/data-plane-adoption'].
71+
src_dir }}/scenarios/uni04delta/ceph_inventory.yaml"
72+
- name: 02 Deploy external ceph
73+
type: playbook
74+
source: "ceph.yml"
75+
gathering: implicit
76+
inventory: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/data-plane-adoption'].
77+
src_dir }}/scenarios/uni04delta/ceph_inventory.yaml"
78+
- name: 03 Create external Ceph parameters file
79+
type: playbook
80+
source: "create_external_ceph_params.yml"
81+
extra_vars:
82+
ceph_node: "osp-ext-ceph-uni04delta-0"
83+
ceph_mon_host: "172.18.0.210,172.18.0.211,172.18.0.212"
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
ceph:
2+
hosts:
3+
osp-ext-ceph-uni04delta-0:
4+
ansible_user: zuul
5+
ansible_ssh_private_key_file: /home/zuul/.ssh/cifmw_reproducer_key
6+
bridge_ip: 192.168.122.210/24
7+
external_ip: 10.0.0.210/24
8+
internalapi_ip: 172.17.0.210/24
9+
storage_ip: 172.18.0.210/24
10+
storagemgmt_ip: 172.20.0.210/24
11+
tenant_ip: 172.19.0.210/24
12+
osp-ext-ceph-uni04delta-1:
13+
ansible_user: zuul
14+
ansible_ssh_private_key_file: /home/zuul/.ssh/cifmw_reproducer_key
15+
bridge_ip: 192.168.122.211/24
16+
external_ip: 10.0.0.211/24
17+
internalapi_ip: 172.17.0.211/24
18+
storage_ip: 172.18.0.211/24
19+
storagemgmt_ip: 172.20.0.211/24
20+
tenant_ip: 172.19.0.211/24
21+
osp-ext-ceph-uni04delta-2:
22+
ansible_user: zuul
23+
ansible_ssh_private_key_file: /home/zuul/.ssh/cifmw_reproducer_key
24+
bridge_ip: 192.168.122.212/24
25+
external_ip: 10.0.0.212/24
26+
internalapi_ip: 172.17.0.212/24
27+
storage_ip: 172.18.0.212/24
28+
storagemgmt_ip: 172.20.0.212/24
29+
tenant_ip: 172.19.0.212/24
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
resource_registry:
3+
# yamllint disable rule:line-length
4+
OS::TripleO::DeployedServer::ControlPlanePort: /usr/share/openstack-tripleo-heat-templates/deployed-server/deployed-neutron-port.yaml
5+
OS::TripleO::OVNMacAddressNetwork: OS::Heat::None
6+
OS::TripleO::OVNMacAddressPort: OS::Heat::None
7+
OS::TripleO::Compute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_internal_api.yaml
8+
OS::TripleO::Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage.yaml
9+
OS::TripleO::Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_tenant.yaml
10+
OS::TripleO::Controller::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_internal_api.yaml
11+
OS::TripleO::Controller::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage.yaml
12+
OS::TripleO::Controller::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage_mgmt.yaml
13+
OS::TripleO::Controller::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_tenant.yaml
14+
OS::TripleO::Controller::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_external.yaml
15+
OS::TripleO::Controller::Ports::DesignatePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_designate.yaml
16+
OS::TripleO::Controller::Ports::DesignateExtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_designateext.yaml
17+
OS::TripleO::Services::CeilometerAgentCentral: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-central-container-puppet.yaml
18+
OS::TripleO::Services::CeilometerAgentNotification: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml
19+
OS::TripleO::Services::CeilometerAgentIpmi: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-ipmi-container-puppet.yaml
20+
OS::TripleO::Services::ComputeCeilometerAgent: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-compute-container-puppet.yaml
21+
OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/collectd-container-puppet.yaml
22+
OS::TripleO::Services::MetricsQdr: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/qdr-container-puppet.yaml
23+
OS::TripleO::Services::OsloMessagingRpc: /usr/share/openstack-tripleo-heat-templates/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml
24+
OS::TripleO::Services::OsloMessagingNotify: /usr/share/openstack-tripleo-heat-templates/deployment/rabbitmq/rabbitmq-messaging-notify-shared-puppet.yaml
25+
OS::TripleO::Services::HAproxy: /usr/share/openstack-tripleo-heat-templates/deployment/haproxy/haproxy-pacemaker-puppet.yaml
26+
OS::TripleO::Services::Pacemaker: /usr/share/openstack-tripleo-heat-templates/deployment/pacemaker/pacemaker-baremetal-puppet.yaml
27+
OS::TripleO::Services::PacemakerRemote: /usr/share/openstack-tripleo-heat-templates/deployment/pacemaker/pacemaker-remote-baremetal-puppet.yaml
28+
OS::TripleO::Services::Clustercheck: /usr/share/openstack-tripleo-heat-templates/deployment/pacemaker/clustercheck-container-puppet.yaml
29+
OS::TripleO::Services::Redis: /usr/share/openstack-tripleo-heat-templates/deployment/database/redis-pacemaker-puppet.yaml
30+
OS::TripleO::Services::Rsyslog: /usr/share/openstack-tripleo-heat-templates/deployment/logging/rsyslog-container-puppet.yaml
31+
OS::TripleO::Services::MySQL: /usr/share/openstack-tripleo-heat-templates/deployment/database/mysql-pacemaker-puppet.yaml
32+
OS::TripleO::Services::CinderBackup: /usr/share/openstack-tripleo-heat-templates/deployment/cinder/cinder-backup-pacemaker-puppet.yaml
33+
OS::TripleO::Services::CinderVolume: /usr/share/openstack-tripleo-heat-templates/deployment/cinder/cinder-volume-pacemaker-puppet.yaml
34+
OS::TripleO::Services::HeatApi: /usr/share/openstack-tripleo-heat-templates/deployment/heat/heat-api-container-puppet.yaml
35+
OS::TripleO::Services::HeatApiCfn: /usr/share/openstack-tripleo-heat-templates/deployment/heat/heat-api-cfn-container-puppet.yaml
36+
OS::TripleO::Services::HeatApiCloudwatch: /usr/share/openstack-tripleo-heat-templates/deployment/heat/heat-api-cloudwatch-disabled-puppet.yaml
37+
OS::TripleO::Services::HeatEngine: /usr/share/openstack-tripleo-heat-templates/deployment/heat/heat-engine-container-puppet.yaml
38+
parameter_defaults:
39+
RedisVirtualFixedIPs:
40+
- ip_address: 192.168.122.110
41+
use_neutron: false
42+
OVNDBsVirtualFixedIPs:
43+
- ip_address: 192.168.122.111
44+
use_neutron: false
45+
ControllerExtraConfig:
46+
nova::compute::libvirt::services::libvirt_virt_type: qemu
47+
nova::compute::libvirt::virt_type: qemu
48+
ComputeExtraConfig:
49+
nova::compute::libvirt::services::libvirt_virt_type: qemu
50+
nova::compute::libvirt::virt_type: qemu
51+
ExtraConfig:
52+
neutron::notification_driver: 'noop'
53+
BarbicanSimpleCryptoGlobalDefault: true
54+
Debug: true
55+
DockerPuppetDebug: true
56+
ContainerCli: podman
57+
ControllerCount: 3
58+
ComputeCount: 2
59+
NeutronGlobalPhysnetMtu: 1500
60+
CinderLVMLoopDeviceSize: 20480
61+
CloudName: overcloud.example.com
62+
CloudNameInternal: overcloud.internalapi.example.com
63+
CloudNameStorage: overcloud.storage.example.com
64+
CloudNameStorageManagement: overcloud.storagemgmt.example.com
65+
CloudNameCtlplane: overcloud.ctlplane.example.com
66+
CloudNameExternal: overcloud.external.example.com
67+
CloudDomain: example.com
68+
NetworkConfigWithAnsible: false
69+
ControllerHostnameFormat: '%stackname%-controller-%index%'
70+
ComputeHostnameFormat: '%stackname%-compute-%index%'
71+
EnableVLANTransparency: true
72+
NeutronServicePlugins: 'qos,ovn-router,trunk,segments,log'
73+
NeutronEnableIgmpSnooping: true
74+
OVNEmitNeedToFrag: false
75+
NeutronNetworkVLANRanges: 'datacentre:1000:2000'
76+
NeutronTypeDrivers: 'geneve,vlan,flat,local'
77+
NeutronNetworkType: 'vlan,flat'
78+
NeutronDnsDomain: 'example.com'
79+
NeutronRouterSchedulerDriver: 'neutron.scheduler.l3_agent_scheduler.ChanceScheduler'
80+
NeutronEnableDVR: true
81+
CtlplaneNetworkAttributes:
82+
network:
83+
dns_domain: example.com
84+
mtu: 1500
85+
name: ctlplane
86+
tags:
87+
- 192.168.122.0/24
88+
subnets:
89+
ctlplane-subnet:
90+
cidr: 192.168.122.0/24
91+
dns_nameservers: 192.168.122.1
92+
gateway_ip: 192.168.122.1
93+
host_routes: []
94+
name: ctlplane-subnet
95+
ip_version: 4
96+
NeutronFlatNetworks:
97+
- datacentre
98+
ControllerParameters:
99+
NeutronBridgeMappings:
100+
- datacentre:br-ex
101+
NeutronBridgeMappings:
102+
- datacentre:br-ex
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
parameter_defaults:
3+
UndercloudExtraConfig: {}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
- name: Storage
3+
mtu: 1500
4+
vip: true
5+
name_lower: storage
6+
dns_domain: storage.{{ cloud_domain }}.
7+
service_net_map_replace: storage
8+
subnets:
9+
storage_subnet:
10+
vlan: 21
11+
ip_subnet: '172.18.0.0/24'
12+
allocation_pools: [{'start': '172.18.0.120', 'end': '172.18.0.250'}]
13+
14+
- name: InternalApi
15+
mtu: 1500
16+
vip: true
17+
name_lower: internal_api
18+
dns_domain: internal-api.{{ cloud_domain }}.
19+
service_net_map_replace: internal_api
20+
subnets:
21+
internal_api_subnet:
22+
vlan: 20
23+
ip_subnet: '172.17.0.0/24'
24+
allocation_pools: [{'start': '172.17.0.120', 'end': '172.17.0.250'}]
25+
26+
- name: Tenant
27+
mtu: 1500
28+
vip: false # Tenant network does not use VIPs
29+
name_lower: tenant
30+
dns_domain: tenant.{{ cloud_domain }}.
31+
service_net_map_replace: tenant
32+
subnets:
33+
tenant_subnet:
34+
vlan: 22
35+
ip_subnet: '172.19.0.0/24'
36+
allocation_pools: [{'start': '172.19.0.120', 'end': '172.19.0.250'}]
37+
38+
- name: External
39+
mtu: 1500
40+
vip: true
41+
name_lower: external
42+
dns_domain: external.{{ cloud_domain }}.
43+
service_net_map_replace: external
44+
subnets:
45+
external_subnet:
46+
vlan: 44
47+
ip_subnet: '10.0.0.0/24'
48+
allocation_pools: [{'start': '10.0.0.150', 'end': '10.0.0.250'}]
49+
50+
- name: StorageMgmt
51+
mtu: 1500
52+
vip: true
53+
name_lower: storage_mgmt
54+
dns_domain: storagemgmt.{{ cloud_domain }}.
55+
subnets:
56+
storage_mgmt_subnet:
57+
vlan: 23
58+
ip_subnet: '172.20.0.0/24'
59+
allocation_pools: [{'start': '172.20.0.120', 'end': '172.20.0.250'}]
60+
61+
- name: Designate
62+
mtu: 1500
63+
vip: false
64+
name_lower: designate
65+
dns_domain: designate.{{ cloud_domain }}.
66+
subnets:
67+
designate_subnet:
68+
vlan: 24
69+
ip_subnet: '172.21.0.0/24'
70+
allocation_pools: [{'start': '172.21.0.120', 'end': '172.21.0.250'}]
71+
72+
- name: Designateext
73+
mtu: 1500
74+
vip: false
75+
name_lower: designateext
76+
dns_domain: designateext.{{ cloud_domain }}.
77+
subnets:
78+
designateext_subnet:
79+
vlan: 25
80+
ip_subnet: '172.23.0.0/24'
81+
allocation_pools: [{'start': '172.23.0.120', 'end': '172.23.0.250'}]

0 commit comments

Comments
 (0)