blob: 86324a6703823c7e5b6ba62706aabdf5da66ea57 [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
host_interface:
type: string
description: Interface which connects server with public network (world accessible network).
masters_size:
type: number
description: Number of masters instances to deploy
default: 2
worker_size:
type: number
description: Number of workers to deploy
default: 5
cmp_size:
type: number
description: Number of cmp workers to deploy
default: 0
gtw_size:
type: number
description: Number of gtw workers to deploy
default: 0
lma_size:
type: number
description: Number of gtw workers to deploy
default: 0
osd_size:
type: number
description: Number of gtw workers to deploy
default: 0
ntw_size:
type: number
description: Number of contrail nodes to deploy
default: 0
ucp_boot_timeout:
type: number
description: Boot timeout for UCP instance
default: 1200
cluster_public_key:
type: string
private_floating_network_cidr:
type: string
default: '10.11.12.0/24'
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_interface:
description: Interface which carries floating network for child OpenStack.
type: string
worker_metadata:
type: json
default: {}
cmp_metadata:
type: json
default: {}
gtw_metadata:
type: json
default: {}
lma_metadata:
type: json
default: {}
osd_metadata:
type: json
default: {}
ntw_metadata:
type: json
default: {}
ucp_flavor:
type: string
default: 'system.compact.openstack.control'
masters_flavor:
type: string
default: 'system.compact.openstack.control'
workers_flavor:
type: string
default: 'system.compact.openstack.control'
cmps_flavor:
type: string
default: 'system.compact.openstack.control'
gtws_flavor:
type: string
default: 'system.compact.openstack.control'
lmas_flavor:
type: string
default: 'system.compact.openstack.control'
osds_flavor:
type: string
default: 'system.compact.openstack.control'
ntws_flavor:
type: string
default: 'system.compact.openstack.control'
functions_override:
type: string
default: ''
docker_ee_url:
type: string
default: 'https://s3-us-west-2.amazonaws.com/internal-docker-ee-builds/docker-ee-linux'
docker_ee_release:
type: string
default: 'stable-19.03'
tunnel_interface:
type: string
default: ''
live_migration_interface:
type: string
default: ''
metallb_address_pools:
type: comma_delimited_list
default: ''
resources:
key_pair:
type: OS::Nova::KeyPair
properties:
name: { get_param: "OS::stack_name" }
public_key: { get_param: cluster_public_key}
save_private_key: false
accessible_network:
type: MCP2::NetworkAcc
properties:
public_net_id: { get_param: public_net_id }
private_floating_network:
type: MCP2::NetworkPrvFl
properties:
private_floating_network_cidr: { get_param: private_floating_network_cidr }
ucp:
depends_on: accessible_network
type: MCP2::SrvInstances
properties:
metadata: {"role":"ucp"}
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
node_type: "ucp"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: ucp_flavor }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
functions_override: { get_param: functions_override }
masters:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
properties:
count: { get_param: masters_size }
resource_def:
type: MCP2::SrvInstances
properties:
metadata: {"role":"master"}
node_type: "master"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: masters_flavor }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
functions_override: { get_param: functions_override }
workers:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
properties:
count: { get_param: worker_size }
resource_def:
type: MCP2::SrvInstances
properties:
metadata: { get_param: worker_metadata}
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: workers_flavor }
key_name: { get_param: "OS::stack_name" }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
functions_override: { get_param: functions_override }
cmps:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
properties:
count: { get_param: cmp_size }
resource_def:
type: MCP2::SrvInstances
properties:
metadata: { get_param: cmp_metadata }
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: cmps_flavor }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
functions_override: { get_param: functions_override }
gtws:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
properties:
count: { get_param: gtw_size }
resource_def:
type: MCP2::SrvInstances
properties:
metadata: { get_param: gtw_metadata }
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: gtws_flavor }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
functions_override: { get_param: functions_override }
lmas:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
properties:
count: { get_param: lma_size }
resource_def:
type: MCP2::SrvInstances
properties:
metadata: { get_param: lma_metadata }
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: lmas_flavor }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
functions_override: { get_param: functions_override }
osds:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
properties:
count: { get_param: osd_size }
resource_def:
type: MCP2::SrvInstances
properties:
metadata: { get_param: osd_metadata }
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: osds_flavor }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
functions_override: { get_param: functions_override }
ntws:
type: OS::Heat::ResourceGroup
depends_on:
- ucp
properties:
count: { get_param: ntw_size }
resource_def:
type: MCP2::SrvInstances
properties:
metadata: { get_param: ntw_metadata }
node_type: "worker"
key_name: { get_param: "OS::stack_name" }
image: { get_param: image }
flavor: { get_param: ntws_flavor }
docker_ee_url: { get_param: docker_ee_url }
docker_ee_release: { get_param: docker_ee_release }
accessible_network: { get_attr: [accessible_network, public_network] }
private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
private_floating_interface: { get_param: private_floating_interface }
private_floating_network_cidr: { get_param: private_floating_network_cidr }
accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
public_net_id: { get_param: public_net_id }
host_interface: { get_param: host_interface }
ucp_master_host: { get_attr: [ucp, server_private_ip] }
functions_override: { get_param: functions_override }
outputs:
ucp_ips:
description: Private IP addresses of the deployed ucp instances
value: { get_attr: [ucp, server_public_ip] }
masters_ips:
description: Private IP addresses of the deployed masters instances
value: { get_attr: [masters, server_public_ip] }
workers_ips:
description: Private IP addresses of the deployed worker instances
value: { get_attr: [workers, server_public_ip] }
cmps_ips:
description: Private IP addresses of the deployed cmp instances
value: { get_attr: [cmps, server_public_ip] }
gtws_ips:
description: Private IP addresses of the deployed gtw instances
value: { get_attr: [gtws, server_public_ip] }
lmas_ips:
description: Private IP addresses of the deployed lma instances
value: { get_attr: [lmas, server_public_ip] }
osds_ips:
description: Private IP addresses of the deployed osd instances
value: { get_attr: [osds, server_public_ip] }
ntws_ips:
description: Private IP addresses of the deployed contrail instances
value: { get_attr: [ntws, server_public_ip] }
worker_private_floating_ips:
description: IPs might be used as gateway
value: { get_attr: [workers, 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 }
tunnel_interface:
value: { get_param: tunnel_interface }
live_migration_interface:
value: { get_param: live_migration_interface }
metallb_address_pools:
value: { get_param: metallb_address_pools }