blob: 72520d2d78d0465e6782dd6b630b2eae39462d63 [file] [log] [blame]
heat_template_version: queens
parameters:
image:
type: string
description: Name of image to use for servers
public_net_id:
type: string
default: ''
description: >
ID of public network for which floating IP addresses will be allocated/
for baremetal case flat provision network for nodes
dns_nameservers:
type: json
default: ['172.18.224.6', '172.18.176.6']
lab_network_cidr:
type: string
default: '10.0.0.0/8'
main_network_cidr:
type: string
default: '10.0.0.0/16'
main_control_network_cidr:
type: string
description: The CIDR of control network, used to detect control interface.
default: '10.0.1.0/24'
main_tunnel_network_cidr:
type: string
default: '10.0.2.0/24'
main_storage_frontend_network_cidr:
type: string
default: '10.12.0.0/24'
main_storage_frontend_interface:
type: string
default: 'ens5'
main_storage_backend_network_cidr:
type: string
default: '10.11.0.0/24'
main_storage_backend_interface:
type: string
default: 'ens6'
private_floating_network_cidr:
type: string
default: '10.11.12.0/24'
private_floating_network_ipam_pool_start:
type: string
description: pool start which is used as pool for IPAM and assigned to instances port
default: '10.11.12.2'
private_floating_network_ipam_pool_end:
type: string
description: pool end which is used as pool for IPAM and assigned to instances port
default: '10.11.12.70'
private_floating_network_pool_start:
type: string
default: '10.11.12.100'
private_floating_network_pool_end:
type: string
default: '10.11.12.200'
private_floating_network_gateway:
type: string
default: ''
private_floating_network_interface:
type: string
default: 'veth-phy'
private_floating_interface:
description: Interface which carries floating network for child OpenStack.
type: string
rack01_network_cidr:
type: string
default: '10.1.0.0/16'
rack01_control_network_cidr:
type: string
description: The CIDR of control network, used to detect control interface.
default: '10.1.1.0/24'
rack01_central_router_uplink_network_cidr:
type: string
default: '192.168.0.0/28'
rack02_network_cidr:
type: string
default: '10.2.0.0/16'
rack02_control_network_cidr:
type: string
description: The CIDR of control network, used to detect control interface.
default: '10.2.1.0/24'
rack02_central_router_uplink_network_cidr:
type: string
default: '192.168.0.16/28'
main_worker_size:
type: number
description: Number of workers to deploy
default: 3
rack01_cmp_size:
type: number
description: Number of cmp workers to deploy
default: 0
rack02_cmp_size:
type: number
description: Number of cmp workers to deploy
default: 0
cluster_public_key:
type: string
ucp_metadata:
type: json
default: {"role":"ucp"}
main_worker_metadata:
type: json
default: {}
rack01_cmp_metadata:
type: json
default: {}
rack02_cmp_metadata:
type: json
default: {}
ucp_flavor:
type: string
default: 'kaas-bm.worker'
main_worker_flavor:
type: string
default: 'system.compact.openstack.control'
rack01_cmp_flavor:
type: string
default: 'system.compact.openstack.control'
rack02_cmp_flavor:
type: string
default: 'system.compact.openstack.control'
docker_ee_url:
type: string
default: 'https://storebits.docker.com/ubuntu'
docker_ee_release:
type: string
default: 'stable-19.03'
docker_ucp_image:
type: string
default: 'docker/ucp:3.2.4'
docker_default_address_pool:
type: string
description: Default address pool for Docker ucp specific local networks
default: '10.10.1.0/16'
binary_base_url:
type: string
default: 'http://binary.mirantis.com'
tunnel_interface:
type: string
default: ''
tungstenfabric_enabled:
type: boolean
default: false
live_migration_interface:
type: string
default: ''
metallb_address_pools:
type: comma_delimited_list
default: ''
main_worker_hardware_metadata:
type: string
default: ''
central_boot_timeout:
type: number
description: Boot timeout for central site instances
default: 5400
rack_boot_timeout:
type: number
description: Boot timeout for rack instances
default: 3600
rack_private_floating_interface:
type: string
rack_functions_override:
type: string
default: ''
lmas_size:
type: number
lmas_metadata:
type: json
lmas_flavor:
type: string
default_interface:
type: string
default: ''
qos_max_burst_kbps_ingress:
type: number
default: 0
qos_max_kbps_ingress:
type: number
default: 0
qos_max_burst_kbps_egress:
type: number
default: 0
qos_max_kbps_egress:
type: number
default: 0
resources:
keypair_name:
type: OS::Heat::RandomString
properties:
character_classes: [{"class": "hexdigits", "min": 1}]
length: 128
salt: constant
key_pair:
type: OS::Nova::KeyPair
properties:
name: { get_attr: [keypair_name, value] }
public_key: { get_param: cluster_public_key }
save_private_key: false
qos_policy_gen_name:
type: OS::Heat::RandomString
properties:
character_classes: [{"class": "hexdigits", "min": 1}]
length: 8
salt: constant
rack_qos_policy:
type: OS::Neutron::QoSPolicy
properties:
description: String
name:
list_join:
- '-'
- [ { get_param: "OS::stack_name" }, { get_attr: [qos_policy_gen_name, value] } ]
shared: True
rack_bandwith_rule_egress:
type: OS::Neutron::QoSBandwidthLimitRule
properties:
max_burst_kbps: { get_param: qos_max_burst_kbps_egress }
max_kbps: { get_param: qos_max_kbps_egress }
policy: { get_resource: rack_qos_policy }
# NOTE (ohryhorov): section below with "direction" should be uncommented once cloud is
# upgraded to OpenStack Train version.
#
# direction: 'egress'
#
# rack_bandwith_rule_ingress:
# type: OS::Neutron::QoSBandwidthLimitRule
# properties:
# max_burst_kbps: { get_param: qos_max_burst_kbps_ingress }
# max_kbps: { get_param: qos_max_kbps_ingress }
# policy: { get_resource: rack_qos_policy }
# direction: 'ingress'
central_site:
type: MCP2::CentralSite
properties:
ucp_metadata: { get_param: ucp_metadata}
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
docker_ucp_image: { get_param: docker_ucp_image}
docker_default_address_pool: { get_param: docker_default_address_pool }
key_name: { get_attr: [keypair_name, value] }
image: { get_param: image }
ucp_flavor: { get_param: ucp_flavor }
public_net_id: { get_param: public_net_id }
control_network_cidr: { get_param: main_control_network_cidr }
tunnel_network_cidr: { get_param: main_tunnel_network_cidr }
storage_frontend_interface: { get_param: main_storage_frontend_interface }
storage_frontend_network_cidr: { get_param: main_storage_frontend_network_cidr }
storage_backend_interface: { get_param: main_storage_backend_interface }
storage_backend_network_cidr: { get_param: main_storage_backend_network_cidr }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_ipam_pool_start: { get_param: private_floating_network_ipam_pool_start }
private_floating_network_ipam_pool_end: { get_param: private_floating_network_ipam_pool_end }
worker_size: { get_param: main_worker_size }
worker_flavor: { get_param: main_worker_flavor }
worker_metadata: { get_param: main_worker_metadata }
worker_hardware_metadata: { get_param: main_worker_hardware_metadata }
dns_nameservers: { get_param: dns_nameservers }
boot_timeout: { get_param: central_boot_timeout }
lmas_size: { get_param: lmas_size }
lmas_metadata: { get_param: lmas_metadata }
lmas_flavor: { get_param: lmas_flavor }
lmas_hardware_metadata: { get_param: main_worker_hardware_metadata }
default_interface: { get_param: default_interface }
rack01_router_routes:
type: MCP2::RackRouterRoutes
properties:
central_router: { get_attr: [central_site, router_id] }
central_router_uplink_network_cidr: { get_param: rack01_central_router_uplink_network_cidr }
site_cidr: { get_param: rack01_network_cidr }
lab_network_cidr: { get_param: lab_network_cidr }
public_net_id: { get_param: public_net_id }
rack01:
depends_on:
- central_site
type: MCP2::Rack
properties:
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
docker_ucp_image: { get_param: docker_ucp_image}
docker_default_address_pool: { get_param: docker_default_address_pool }
key_name: { get_attr: [keypair_name, value] }
image: { get_param: image }
public_net_id: { get_param: public_net_id }
control_network_cidr: { get_param: rack01_control_network_cidr }
cmp_size: { get_param: rack01_cmp_size }
cmp_flavor: { get_param: rack01_cmp_flavor }
cmp_metadata: { get_param: rack01_cmp_metadata }
ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
rack_router: {get_attr: [rack01_router_routes, router_id] }
boot_timeout: { get_param: rack_boot_timeout }
private_floating_interface: { get_param: rack_private_floating_interface }
functions_override: { get_param: rack_functions_override }
qos_policy_name: { get_resource: rack_qos_policy }
rack02_router_routes:
depends_on:
- rack01_router_routes
type: MCP2::RackRouterRoutes
properties:
central_router: { get_attr: [central_site, router_id] }
central_router_uplink_network_cidr: { get_param: rack02_central_router_uplink_network_cidr }
site_cidr: { get_param: rack02_network_cidr }
lab_network_cidr: { get_param: lab_network_cidr }
public_net_id: { get_param: public_net_id }
rack02:
depends_on:
- central_site
type: MCP2::Rack
properties:
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
docker_ucp_image: { get_param: docker_ucp_image}
docker_default_address_pool: { get_param: docker_default_address_pool }
key_name: { get_attr: [keypair_name, value] }
image: { get_param: image }
public_net_id: { get_param: public_net_id }
control_network_cidr: { get_param: rack02_control_network_cidr }
cmp_size: { get_param: rack02_cmp_size }
cmp_flavor: { get_param: rack02_cmp_flavor }
cmp_metadata: { get_param: rack02_cmp_metadata }
ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
rack_router: {get_attr: [rack02_router_routes, router_id] }
boot_timeout: { get_param: rack_boot_timeout }
private_floating_interface: { get_param: rack_private_floating_interface }
functions_override: { get_param: rack_functions_override }
qos_policy_name: { get_resource: rack_qos_policy }
outputs:
central_site_worker_public_ip:
description: IP address of server in private network
value: { get_attr: [central_site, worker_public_ip] }
ucp_ips:
description: IP address of server in private network
value: { get_attr: [central_site, ucp_public_ip] }
workers_wc_data:
description: Metadata from instance
value: { get_attr: [central_site, worker_wc_data]}
cmps_wc_data:
description: Metadata from cmps
value: {list_concat: [ {get_attr: [rack01, cmp_wc_data]}, {get_attr: [rack02, cmp_wc_data]} ]}
rack01_cmp_public_ip:
value: { get_attr: [rack01, cmp_public_ip] }
rack02_cmp_public_ip:
value: { get_attr: [rack02, cmp_public_ip] }
worker_private_floating_ips:
description: IPs might be used as gateway
value: { get_attr: [central_site, server_private_floating_ip] }
private_floating_cidr:
value: { get_param: private_floating_network_cidr }
private_floating_network_pool_start:
value: { get_param: private_floating_network_pool_start }
private_floating_network_pool_end:
value: { get_param: private_floating_network_pool_end }
private_floating_network_gateway:
value: { get_param: private_floating_network_gateway }
live_migration_interface:
value: { get_param: live_migration_interface }
tunnel_interface:
value: { get_param: tunnel_interface }
metallb_address_pools:
value: { get_param: metallb_address_pools }
storage_frontend_network_cidr:
description: Storage network which is used as clientNet in Ceph CR
value: { get_param: main_storage_frontend_network_cidr }
storage_backend_network_cidr:
description: Storage network which is used as clusterNet in Ceph CR
value: { get_param: main_storage_backend_network_cidr }
private_floating_network_interface:
value: { get_param: private_floating_network_interface }
tungstenfabric_enabled:
value: { get_param: tungstenfabric_enabled }
workers_ips:
description: Private IP addresses of the deployed worker instances
value: { get_attr: [central_site, worker_public_ip] }
cmps_ips:
description: Private IP addresses of the deployed cmp instances
value: {list_concat: [ {get_attr: [rack01, cmp_public_ip]}, {get_attr: [rack02, cmp_public_ip]} ]}