Skip to content

Commit b30c323

Browse files
Merge pull request #994 from bogdando/uni05epsilon
Add uni05epsilon for multi-cell adoption
2 parents 1b64876 + 09501e7 commit b30c323

12 files changed

+1054
-0
lines changed

scenarios/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,47 @@ like:
8989
hostname_groups_map:
9090
osp-computes: "overcloud-novacompute"
9191
osp-controllers: "overcloud-controller"
92+
stacks:
93+
- stackname: "overcloud"
94+
stack_nodes:
95+
- osp-computes
96+
- osp-controllers
97+
```
98+
99+
An example additional stack containing special mappings for cell controllers roles and HCI compute roles as cell computes hosts may look like:
100+
```
101+
roles_groups_map:
102+
osp-computes: Compute
103+
osp-controllers: Controller
104+
cell1-osp-computes: ComputeHCI
105+
cell1-osp-controllers: CellController
106+
hostname_groups_map:
107+
osp-computes: overcloud-novacompute
108+
osp-controllers: overcloud-controller
109+
cell1-osp-computes: cell1-novacompute
110+
cell1-osp-controllers: cell1-controller
111+
stacks:
112+
- stackname: overcloud
113+
stack_nodes:
114+
- osp-computes
115+
- osp-controllers
116+
- stackname: cell1
117+
stack_nodes:
118+
- cell1-osp-computes
119+
- cell1-osp-controllers
120+
```
121+
Additionally, the names of nodes defined in the `cifmw_networking_definition.instances`
122+
must be prefixed with the stack names (omitting it for the 'overcloud' stack name), and
123+
consequtively numbered end-to-end, for example:
124+
```
125+
cifmw_networking_definition:
126+
instances:
127+
controller-0:
128+
cell1-controller-1:
129+
cell2-controller-2:
130+
cell1-compute-0:
131+
cell2-compute-1:
132+
cell1-compute-2:
92133
```
93134

94135
### Roles groups map

scenarios/uni05epsilon.yaml

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
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: "uni05epsilon/hieradata_overrides_undercloud.yaml"
23+
undercloud_parameters_defaults: "uni05epsilon/undercloud_parameter_defaults.yaml"
24+
ctlplane_vip: 192.168.122.101
25+
routes: &sroutes
26+
- ip_netmask: 0.0.0.0/0
27+
next_hop: 192.168.122.1
28+
default: true
29+
cloud_domain: example.com
30+
hostname_groups_map:
31+
# map ansible groups in the inventory to role hostname format for
32+
# 17.1 deployment
33+
osp-controllers: overcloud-controller
34+
cell1-osp-computes: cell1-novacompute
35+
cell1-osp-controllers: cell1-controller
36+
cell2-osp-computes: cell2-novacompute
37+
cell2-osp-controllers: cell2-controller
38+
roles_groups_map:
39+
# map ansible groups to tripleo Role names
40+
osp-controllers: Controller
41+
cell1-osp-controllers: CellController
42+
cell2-osp-controllers: CellController
43+
# A new name for 'default' cell of OSP after adopting it into RHOSO
44+
default_cell_name: cell1
45+
stacks:
46+
- stackname: overcloud
47+
args:
48+
- "--override-ansible-cfg /home/zuul/ansible_config.cfg"
49+
- "--templates /usr/share/openstack-tripleo-heat-templates"
50+
- "--libvirt-type qemu"
51+
- "--timeout 90"
52+
- "--overcloud-ssh-user zuul"
53+
- "--deployed-server"
54+
- "--validation-warnings-fatal"
55+
- "--disable-validations"
56+
- "--heat-type pod"
57+
- "--disable-protected-resource-types"
58+
vars:
59+
- "/usr/share/openstack-tripleo-heat-templates/environments/docker-ha.yaml"
60+
- "/usr/share/openstack-tripleo-heat-templates/environments/podman.yaml"
61+
- "/usr/share/openstack-tripleo-heat-templates/environments/low-memory-usage.yaml"
62+
- "/usr/share/openstack-tripleo-heat-templates/environments/debug.yaml"
63+
network_data_file: "uni05epsilon/network_data.yaml.j2"
64+
routes: *sroutes
65+
vips_data_file: "uni05epsilon/vips_data_overcloud.yaml"
66+
roles_file: "uni05epsilon/roles.yaml"
67+
config_download_file: "uni05epsilon/config_download_overcloud.yaml"
68+
stack_nodes:
69+
- osp-controllers
70+
post_oc_run:
71+
- name: Multi-cell post overcloud deploy
72+
type: playbook
73+
source: adoption_multicell_post_stack.yml
74+
extra_vars:
75+
stack: overcloud
76+
77+
- stackname: cell1
78+
args:
79+
- "--override-ansible-cfg /home/zuul/ansible_config.cfg"
80+
- "--templates /usr/share/openstack-tripleo-heat-templates"
81+
- "--libvirt-type qemu"
82+
- "--timeout 90"
83+
- "--overcloud-ssh-user zuul"
84+
- "--deployed-server"
85+
- "--validation-warnings-fatal"
86+
- "--disable-validations"
87+
- "--heat-type pod"
88+
- "--disable-protected-resource-types"
89+
vars:
90+
- "/usr/share/openstack-tripleo-heat-templates/environments/docker-ha.yaml"
91+
- "/usr/share/openstack-tripleo-heat-templates/environments/podman.yaml"
92+
- "/usr/share/openstack-tripleo-heat-templates/environments/low-memory-usage.yaml"
93+
- "/usr/share/openstack-tripleo-heat-templates/environments/debug.yaml"
94+
- "/usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml"
95+
- "/home/zuul/cell1-input.yaml"
96+
network_data_file: "uni05epsilon/network_data.yaml.j2"
97+
routes: *sroutes
98+
vips_data_file: "uni05epsilon/vips_data_cell1.yaml"
99+
roles_file: "uni05epsilon/roles.yaml"
100+
config_download_file: "uni05epsilon/config_download_cell1.yaml"
101+
stack_nodes:
102+
- cell1-osp-computes
103+
- cell1-osp-controllers
104+
pre_oc_run:
105+
- name: Multi-cell pre overcloud deploy
106+
type: playbook
107+
source: adoption_multicell_pre_stack.yml
108+
extra_vars:
109+
stack: cell1
110+
post_oc_run:
111+
- name: Multi-cell post overcloud deploy
112+
type: playbook
113+
source: adoption_multicell_post_stack.yml
114+
extra_vars:
115+
stack: cell1
116+
117+
- stackname: cell2
118+
args:
119+
- "--override-ansible-cfg /home/zuul/ansible_config.cfg"
120+
- "--templates /usr/share/openstack-tripleo-heat-templates"
121+
- "--libvirt-type qemu"
122+
- "--timeout 90"
123+
- "--overcloud-ssh-user zuul"
124+
- "--deployed-server"
125+
- "--validation-warnings-fatal"
126+
- "--disable-validations"
127+
- "--heat-type pod"
128+
- "--disable-protected-resource-types"
129+
vars:
130+
- "/usr/share/openstack-tripleo-heat-templates/environments/docker-ha.yaml"
131+
- "/usr/share/openstack-tripleo-heat-templates/environments/podman.yaml"
132+
- "/usr/share/openstack-tripleo-heat-templates/environments/low-memory-usage.yaml"
133+
- "/usr/share/openstack-tripleo-heat-templates/environments/debug.yaml"
134+
- "/home/zuul/cell2-input.yaml"
135+
network_data_file: "uni05epsilon/network_data.yaml.j2"
136+
routes: *sroutes
137+
vips_data_file: "uni05epsilon/vips_data_cell2.yaml"
138+
roles_file: "uni05epsilon/roles.yaml"
139+
config_download_file: "uni05epsilon/config_download_cell2.yaml"
140+
stack_nodes:
141+
- cell2-osp-computes
142+
- cell2-osp-controllers
143+
pre_oc_run:
144+
- name: Multi-stack pre stack deploy
145+
type: playbook
146+
source: adoption_multicell_pre_stack.yml
147+
extra_vars:
148+
stack: cell2
149+
post_oc_run:
150+
- name: Multi-cell post stack deploy manage cells
151+
type: playbook
152+
source: adoption_multicell_post_stack.yml
153+
extra_vars:
154+
stack: cell2
155+
- name: Multi-stack post all stacks deploy manage /etc/hosts
156+
type: playbook
157+
source: adoption_multicell_post_stack_all.yml
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage_mgmt.yaml
9+
OS::TripleO::Compute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage.yaml
10+
OS::TripleO::Compute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_tenant.yaml
11+
OS::TripleO::CellController::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_internal_api.yaml
12+
OS::TripleO::CellController::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage_mgmt.yaml
13+
OS::TripleO::CellController::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_storage.yaml
14+
OS::TripleO::CellController::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_tenant.yaml
15+
OS::TripleO::Compute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_external.yaml
16+
OS::TripleO::CellController::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/deployed_external.yaml
17+
18+
OS::TripleO::Services::CeilometerAgentCentral: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-central-container-puppet.yaml
19+
OS::TripleO::Services::CeilometerAgentNotification: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-notification-container-puppet.yaml
20+
OS::TripleO::Services::CeilometerAgentIpmi: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-ipmi-container-puppet.yaml
21+
OS::TripleO::Services::ComputeCeilometerAgent: /usr/share/openstack-tripleo-heat-templates/deployment/ceilometer/ceilometer-agent-compute-container-puppet.yaml
22+
OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/collectd-container-puppet.yaml
23+
OS::TripleO::Services::MetricsQdr: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/qdr-container-puppet.yaml
24+
OS::TripleO::Services::OsloMessagingRpc: /usr/share/openstack-tripleo-heat-templates/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml
25+
OS::TripleO::Services::OsloMessagingNotify: /usr/share/openstack-tripleo-heat-templates/deployment/rabbitmq/rabbitmq-messaging-notify-shared-puppet.yaml
26+
OS::TripleO::Services::HAproxy: /usr/share/openstack-tripleo-heat-templates/deployment/haproxy/haproxy-pacemaker-puppet.yaml
27+
OS::TripleO::Services::Pacemaker: /usr/share/openstack-tripleo-heat-templates/deployment/pacemaker/pacemaker-baremetal-puppet.yaml
28+
OS::TripleO::Services::PacemakerRemote: /usr/share/openstack-tripleo-heat-templates/deployment/pacemaker/pacemaker-remote-baremetal-puppet.yaml
29+
OS::TripleO::Services::Clustercheck: /usr/share/openstack-tripleo-heat-templates/deployment/pacemaker/clustercheck-container-puppet.yaml
30+
OS::TripleO::Services::Redis: /usr/share/openstack-tripleo-heat-templates/deployment/database/redis-pacemaker-puppet.yaml
31+
OS::TripleO::Services::Rsyslog: /usr/share/openstack-tripleo-heat-templates/deployment/logging/rsyslog-container-puppet.yaml
32+
OS::TripleO::Services::MySQL: /usr/share/openstack-tripleo-heat-templates/deployment/database/mysql-pacemaker-puppet.yaml
33+
OS::TripleO::Services::CinderBackup: /usr/share/openstack-tripleo-heat-templates/deployment/cinder/cinder-backup-pacemaker-puppet.yaml
34+
OS::TripleO::Services::CinderVolume: /usr/share/openstack-tripleo-heat-templates/deployment/cinder/cinder-volume-pacemaker-puppet.yaml
35+
36+
# Complements the 'ManageNetworks: false', not needed otherwise
37+
OS::TripleO::Network::External: OS::Heat::None
38+
OS::TripleO::Network::InternalApi: OS::Heat::None
39+
OS::TripleO::Network::Storage: OS::Heat::None
40+
OS::TripleO::Network::StorageMgmt: OS::Heat::None
41+
OS::TripleO::Network::Tenant: OS::Heat::None
42+
OS::TripleO::Network::Management: OS::Heat::None
43+
44+
parameter_defaults:
45+
SshFirewallAllowAll: true
46+
47+
# Specify that this is an additional cell
48+
NovaAdditionalCell: true
49+
# Disable network creation in order to use the `network_data.yaml` file from the overcloud stack,
50+
# and create ports for the nodes in the separate stacks on the existing networks.
51+
# NOTE(bogdando): might need to enable it, to deploy cells-specific subdomains from different network_data_cellX.yaml files.
52+
# Also, test RHOSO adoption for a metadata agent deployed per each cell, to see if it handles each one properly,
53+
# when transitioning all to a superconductor layoyt from a flat OSP17.1 layout
54+
ManageNetworks: false
55+
NovaLocalMetadataPerCell: true
56+
57+
RedisVirtualFixedIPs:
58+
- ip_address: 192.168.122.111
59+
use_neutron: false
60+
OVNDBsVirtualFixedIPs:
61+
- ip_address: 192.168.122.121
62+
use_neutron: false
63+
ComputeExtraConfig:
64+
nova::compute::libvirt::services::libvirt_virt_type: qemu
65+
nova::compute::libvirt::virt_type: qemu
66+
Debug: true
67+
DockerPuppetDebug: true
68+
ContainerCli: podman
69+
70+
CellControllerCount: 1
71+
ControllerCount: 0
72+
ComputeCount: 1
73+
NeutronGlobalPhysnetMtu: 1350
74+
CinderLVMLoopDeviceSize: 20480
75+
76+
CloudName: overcloud.example.com
77+
CloudNameInternal: overcloud.internalapi.example.com
78+
CloudNameStorage: overcloud.storage.example.com
79+
CloudNameStorageManagement: overcloud.storagemgmt.example.com
80+
CloudNameExternal: overcloud.external.example.com
81+
CloudNameCtlplane: overcloud.ctlplane.example.com
82+
CloudDomain: example.com
83+
84+
OVNCMSOptions: enable-chassis-as-gw
85+
NeutronPhysicalBridge: br-ex
86+
NeutronNetworkType: geneve
87+
NeutronTunnelTypes: geneve
88+
NeutronBridgeMappings: datacentre:br-ex
89+
90+
CellControllerHostnameFormat: '%stackname%-controller-%index%'
91+
ComputeHostnameFormat: '%stackname%-novacompute-%index%'
92+
93+
# If tripleo_networking, update the existing os-net-config on deployed servers for tripleo isolnet
94+
# This should also work for CI, where we initially configure zuul subnodes with os-net-config,
95+
# but is mostly targeting local libvirt or cloud deployments (without zuul and ci-framework)
96+
NetworkConfigWithAnsible: false
97+
ComputeNetworkConfigUpdate: false
98+
BlockStorageNetworkConfigUpdate: false
99+
ObjectStorageNetworkConfigUpdate: false
100+
CellControllerNetworkConfigUpdate: false
101+
102+
ComputeNetworkConfigTemplate: templates/single_nic_vlans/single_nic_vlans.j2
103+
BlockStorageNetworkConfigTemplate: templates/single_nic_vlans/single_nic_vlans.j2
104+
ObjectStorageNetworkConfigTemplate: templates/single_nic_vlans/single_nic_vlans.j2
105+
CellControllerNetworkConfigTemplate: templates/single_nic_vlans/single_nic_vlans.j2
106+
107+
CtlplaneNetworkAttributes:
108+
network:
109+
dns_domain: example.com
110+
mtu: 1500
111+
name: ctlplane
112+
tags:
113+
- 192.168.122.0/24
114+
subnets:
115+
ctlplane-subnet:
116+
cidr: 192.168.122.0/24
117+
dns_nameservers: 192.168.122.1
118+
gateway_ip: 192.168.122.1
119+
host_routes: []
120+
name: ctlplane-subnet
121+
ip_version: 4

0 commit comments

Comments
 (0)