Unify templating style between templates

To easily identify differences between heat templates the templates
should be using the same style and layouts.

Implements: blueprint generate-heat-templates
Change-Id: I96101c0ce6991d145182ecafbcf70fae223f6851
This commit is contained in:
Tom Cammann 2015-08-06 10:22:11 -07:00
parent 2738aca7f8
commit 5502b1e839
6 changed files with 162 additions and 208 deletions

View File

@ -3,30 +3,30 @@ heat_template_version: 2013-05-23
description: >
This template will boot a coreos cluster with one or more
minions (as specified by the number_of_minions parameter, which
defaults to "2").
defaults to 1).
parameters:
#
# REQUIRED PARAMETERS
#
ssh_key_name:
type: string
description: name of ssh key to be provisioned on our server
external_network:
type: string
description: uuid of a network to use for floating ip addresses
description: uuid/name of a network to use for floating ip addresses
default: public
#
# OPTIONAL PARAMETERS
#
server_image:
type: string
default: CoreOS
description: glance image used to boot the server
server_flavor:
master_flavor:
type: string
default: m1.small
description: flavor to use when booting the server
minion_flavor:
type: string
default: m1.small
description: flavor to use when booting the server
@ -52,18 +52,18 @@ parameters:
fixed_network_cidr:
type: string
description: network range for fixed ip network
default: "10.0.0.0/24"
default: 10.0.0.0/24
portal_network_cidr:
type: string
description: >
address range used by kubernetes for service portals
default: "10.254.0.0/16"
default: 10.254.0.0/16
flannel_network_cidr:
type: string
description: network range for flannel overlay network
default: "10.100.0.0/16"
default: 10.100.0.0/16
flannel_network_subnetlen:
type: string
@ -106,10 +106,10 @@ parameters:
resources:
master_wait_handle:
type: "AWS::CloudFormation::WaitConditionHandle"
type: AWS::CloudFormation::WaitConditionHandle
master_wait_condition:
type: "AWS::CloudFormation::WaitCondition"
type: AWS::CloudFormation::WaitCondition
depends_on:
- kube_master
properties:
@ -126,36 +126,27 @@ resources:
# configuration necessary to make this go.
fixed_network:
type: "OS::Neutron::Net"
type: OS::Neutron::Net
# This is the subnet on which we will deploy our server.
fixed_subnet:
type: "OS::Neutron::Subnet"
type: OS::Neutron::Subnet
properties:
cidr: {get_param: fixed_network_cidr}
network_id:
get_resource: fixed_network
network: {get_resource: fixed_network}
dns_nameservers:
- get_param: dns_nameserver
- {get_param: dns_nameserver}
# create a router attached to the external network provided as a
# parameter to this stack.
extrouter:
type: "OS::Neutron::Router"
type: OS::Neutron::Router
properties:
external_gateway_info:
network:
get_param: external_network_id
network: {get_param: external_network}
# attached fixed_subnet to our extrouter router.
extrouter_inside:
type: "OS::Neutron::RouterInterface"
type: OS::Neutron::RouterInterface
properties:
router_id:
get_resource: extrouter
subnet_id:
get_resource:
fixed_subnet
router_id: {get_resource: extrouter}
subnet: {get_resource: fixed_subnet}
######################################################################
#
@ -163,9 +154,8 @@ resources:
# sorts.
#
# permit ssh access
secgroup_base:
type: "OS::Neutron::SecurityGroup"
type: OS::Neutron::SecurityGroup
properties:
rules:
- protocol: icmp
@ -173,9 +163,8 @@ resources:
port_range_min: 22
port_range_max: 22
# open ports for kubernetes and etcd
secgroup_kubernetes:
type: "OS::Neutron::SecurityGroup"
type: OS::Neutron::SecurityGroup
properties:
rules:
- protocol: tcp
@ -198,14 +187,14 @@ resources:
#
write_heat_params:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
str_replace:
template: {get_file: fragments/write-heat-params-master.yaml}
params:
"$MINION_ADDRESSES": {"Fn::Join": [",", {get_attr: [kube_minions, kube_node_ip]}]}
"$MINION_ADDRESSES": {"Fn::Join": [",", {get_attr: [kube_minions, kube_minion_ip]}]}
"$KUBE_ALLOW_PRIV": {get_param: kube_allow_priv}
"$WAIT_HANDLE": {get_resource: master_wait_handle}
"$FLANNEL_NETWORK_CIDR": {get_param: flannel_network_cidr}
@ -214,55 +203,55 @@ resources:
"$PORTAL_NETWORK_CIDR": {get_param: portal_network_cidr}
configure_kubernetes:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/configure-kubernetes-master.sh}
write_flannel_config:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/write-flannel-config.sh}
flannel_config_service:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/flannel-config.service.yaml}
enable_services:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/enable-services-master.sh}
kube_user:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-user.yaml}
kube_examples:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-examples.yaml}
cfn_signal:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/cfn-signal.sh}
disable_selinux:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/disable-selinux.sh}
coreos_params:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
@ -273,7 +262,7 @@ resources:
ssh_authorized_key: {get_param: ssh_authorized_key}
kube_master_init:
type: "OS::Heat::MultipartMime"
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: disable_selinux}
@ -287,67 +276,55 @@ resources:
- config: {get_resource: cfn_signal}
- config: {get_resource: coreos_params}
######################################################################
#
# databases server. this sets up a Kubernetes server
#
kube_master:
type: "OS::Nova::Server"
type: OS::Nova::Server
depends_on:
- extrouter_inside
properties:
image:
get_param: server_image
flavor:
get_param: server_flavor
key_name:
get_param: ssh_key_name
image: {get_param: server_image}
flavor: {get_param: master_flavor}
key_name: {get_param: ssh_key_name}
user_data_format: RAW
user_data: {get_resource: kube_master_init}
networks:
- port:
get_resource: kube_master_eth0
- port: {get_resource: kube_master_eth0}
kube_master_eth0:
type: "OS::Neutron::Port"
type: OS::Neutron::Port
properties:
network_id:
get_resource: fixed_network
network: {get_resource: fixed_network}
security_groups:
- get_resource: secgroup_base
- get_resource: secgroup_kubernetes
- {get_resource: secgroup_base}
- {get_resource: secgroup_kubernetes}
fixed_ips:
- subnet_id:
get_resource: fixed_subnet
- subnet: {get_resource: fixed_subnet}
replacement_policy: AUTO
kube_master_floating:
type: "OS::Neutron::FloatingIP"
type: OS::Neutron::FloatingIP
depends_on:
- extrouter_inside
properties:
floating_network_id:
get_param: external_network_id
port_id:
get_resource: kube_master_eth0
floating_network: {get_param: external_network}
port_id: {get_resource: kube_master_eth0}
kube_minions:
type: "OS::Heat::ResourceGroup"
type: OS::Heat::ResourceGroup
depends_on:
- extrouter_inside
properties:
count: {get_param: number_of_minions}
removal_policies: [{resource_list: {get_param: minions_to_remove}}]
resource_def:
type: kubenode-coreos.yaml
type: kubeminion-coreos.yaml
properties:
ssh_key_name: {get_param: ssh_key_name}
server_image: {get_param: server_image}
server_flavor: {get_param: server_flavor}
fixed_network_id: {get_resource: fixed_network}
fixed_subnet_id: {get_resource: fixed_subnet}
minion_flavor: {get_param: minion_flavor}
fixed_network: {get_resource: fixed_network}
fixed_subnet: {get_resource: fixed_subnet}
kube_master_ip: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]}
external_network_id: {get_param: external_network_id}
external_network: {get_param: external_network}
kube_allow_priv: {get_param: kube_allow_priv}
docker_volume_size: {get_param: docker_volume_size}
token: {get_param: token}
@ -359,7 +336,7 @@ outputs:
value: {get_attr: [kube_master_floating, floating_ip_address]}
kube_minions:
value: {get_attr: [kube_minions, kube_node_ip]}
value: {get_attr: [kube_minions, kube_minion_ip]}
kube_minions_external:
value: {get_attr: [kube_minions, kube_node_external_ip]}
value: {get_attr: [kube_minions, kube_minion_external_ip]}

View File

@ -3,13 +3,10 @@ heat_template_version: 2013-05-23
description: >
This template will boot a Kubernetes cluster with one or more
minions (as specified by the number_of_minions parameter, which
defaults to "1").
defaults to 1).
parameters:
#
# REQUIRED PARAMETERS
#
ssh_key_name:
type: string
description: name of ssh key to be provisioned on our server
@ -22,9 +19,6 @@ parameters:
type: string
description: name of private network into which servers get deployed
#
# OPTIONAL PARAMETERS
#
server_image:
type: string
default: fedora-k8s
@ -44,12 +38,12 @@ parameters:
type: string
description: >
address range used by kubernetes for service portals
default: "10.254.0.0/16"
default: 10.254.0.0/16
flannel_network_cidr:
type: string
description: network range for flannel overlay network
default: "10.100.0.0/16"
default: 10.100.0.0/16
flannel_network_subnetlen:
type: string
@ -117,7 +111,7 @@ resources:
# software configs
#
disable_selinux:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/disable-selinux.sh}
@ -135,7 +129,7 @@ resources:
- config: {get_resource: master_wc_notify}
write_heat_params:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
@ -149,25 +143,25 @@ resources:
"$PORTAL_NETWORK_CIDR": {get_param: portal_network_cidr}
configure_kubernetes:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/configure-kubernetes-master.sh}
enable_etcd:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/enable-etcd.sh}
configure_flannel:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/configure-flannel.sh}
enable_services:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/enable-services-master.sh}
@ -177,7 +171,7 @@ resources:
# databases server. this sets up a Kubernetes server
#
kube_master_floating:
type: "OS::Neutron::FloatingIP"
type: OS::Neutron::FloatingIP
properties:
floating_network:
get_param: external_network
@ -185,21 +179,18 @@ resources:
get_attr: [kube_master, addresses, {get_param: fixed_network}, 0, port]
kube_master:
type: "OS::Nova::Server"
type: OS::Nova::Server
properties:
image:
get_param: server_image
flavor:
get_param: server_flavor
key_name:
get_param: ssh_key_name
image: {get_param: server_image}
flavor: {get_param: server_flavor}
key_name: {get_param: ssh_key_name}
networks:
- network: {get_param: fixed_network}
user_data_format: RAW
user_data: {get_resource: kube_master_init}
kube_minions:
type: "OS::Heat::ResourceGroup"
type: OS::Heat::ResourceGroup
depends_on:
- kube_master
- master_wait_condition

View File

@ -194,7 +194,7 @@ resources:
#
kube_masters:
type: "OS::Heat::ResourceGroup"
type: OS::Heat::ResourceGroup
depends_on:
- extrouter_inside
properties:
@ -225,7 +225,7 @@ resources:
#
kube_minions:
type: "OS::Heat::ResourceGroup"
type: OS::Heat::ResourceGroup
depends_on:
- extrouter_inside
- kube_masters

View File

@ -12,7 +12,7 @@ parameters:
default: CoreOS
description: glance image used to boot the server
server_flavor:
minion_flavor:
type: string
default: m1.small
description: flavor to use when booting the server
@ -24,7 +24,7 @@ parameters:
external_network:
type: string
description: uuid of a network to use for floating ip addresses
description: uuid/name of a network to use for floating ip addresses
token:
type: string
@ -53,25 +53,24 @@ parameters:
kube_master_ip:
type: string
description: IP address of the Kubernetes master server.
fixed_network_id:
fixed_network:
type: string
description: Network from which to allocate fixed addresses.
fixed_subnet_id:
fixed_subnet:
type: string
description: Subnet from which to allocate fixed addresses.
resources:
node_wait_handle:
type: "AWS::CloudFormation::WaitConditionHandle"
minion_wait_handle:
type: AWS::CloudFormation::WaitConditionHandle
node_wait_condition:
type: "AWS::CloudFormation::WaitCondition"
depends_on:
- kube_node
minion_wait_condition:
type: AWS::CloudFormation::WaitCondition
depends_on: kube_minion
properties:
Handle:
get_resource: node_wait_handle
get_resource: minion_wait_handle
Timeout: 6000
######################################################################
@ -81,7 +80,7 @@ resources:
#
secgroup_all_open:
type: "OS::Neutron::SecurityGroup"
type: OS::Neutron::SecurityGroup
properties:
rules:
- protocol: icmp
@ -95,20 +94,20 @@ resources:
#
write_heat_params:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
str_replace:
template: {get_file: fragments/write-heat-params.yaml}
params:
"$KUBE_ALLOW_PRIV": {get_param: kube_allow_priv}
"$KUBE_MASTER_IP": {get_param: kube_master_ip}
"$WAIT_HANDLE": {get_resource: node_wait_handle}
"$DOCKER_VOLUME": {get_resource: docker_volume}
$KUBE_ALLOW_PRIV: {get_param: kube_allow_priv}
$KUBE_MASTER_IP: {get_param: kube_master_ip}
$WAIT_HANDLE: {get_resource: node_wait_handle}
$DOCKER_VOLUME: {get_resource: docker_volume}
coreos_params:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
@ -119,67 +118,67 @@ resources:
ssh_authorized_key: {get_param: ssh_authorized_key}
add_to_docker_group:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/add-to-docker-group.sh}
configure_docker_storage:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/configure-docker-storage.sh}
kube_register:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-register.yaml}
configure_kubernetes_minion:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/configure-kubernetes-minion.sh}
kube_user:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-user.yaml}
kube_examples:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-examples.yaml}
docker_service:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/docker.service.yaml}
enable_services:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/enable-services-minion.sh}
cfn_signal:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/cfn-signal.sh}
disable_selinux:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/disable-selinux.sh}
kube_node_init:
type: "OS::Heat::MultipartMime"
kube_minion_init:
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: disable_selinux}
@ -195,59 +194,51 @@ resources:
- config: {get_resource: cfn_signal}
- config: {get_resource: coreos_params}
kube_node:
type: "OS::Nova::Server"
kube_minion:
type: OS::Nova::Server
properties:
image:
get_param: server_image
flavor:
get_param: server_flavor
key_name:
get_param: ssh_key_name
image: {get_param: server_image}
flavor: {get_param: minion_flavor}
key_name: {get_param: ssh_key_name}
user_data_format: RAW
user_data: {get_resource: kube_node_init}
user_data: {get_resource: kube_minion_init}
networks:
- port:
get_resource: kube_node_eth0
- port: {get_resource: kube_minion_eth0}
kube_node_eth0:
type: "OS::Neutron::Port"
kube_minion_eth0:
type: OS::Neutron::Port
properties:
network_id:
get_param: fixed_network_id
network: {get_param: fixed_network}
security_groups:
- get_resource: secgroup_all_open
fixed_ips:
- subnet_id:
get_param: fixed_subnet_id
- subnet: {get_param: fixed_subnet}
replacement_policy: AUTO
kube_node_floating:
type: "OS::Neutron::FloatingIP"
kube_minion_floating:
type: OS::Neutron::FloatingIP
properties:
floating_network_id:
get_param: external_network_id
port_id:
get_resource: kube_node_eth0
floating_network: {get_param: external_network}
port_id: {get_resource: kube_minion_eth0}
docker_volume:
type: "OS::Cinder::Volume"
type: OS::Cinder::Volume
properties:
size: {get_param: docker_volume_size}
docker_volume_attach:
type: "OS::Cinder::VolumeAttachment"
type: OS::Cinder::VolumeAttachment
properties:
instance_uuid: {get_resource: kube_node}
instance_uuid: {get_resource: kube_minion}
volume_id: {get_resource: docker_volume}
outputs:
kube_node_ip:
value: {get_attr: [kube_node_eth0, fixed_ips, 0, ip_address]}
kube_minion_ip:
value: {get_attr: [kube_minion_eth0, fixed_ips, 0, ip_address]}
kube_node_external_ip:
value: {get_attr: [kube_node_floating, floating_ip_address]}
kube_minion_external_ip:
value: {get_attr: [kube_minion_floating, floating_ip_address]}
OS::stack_id:
value: {get_attr: [kube_node_eth0, fixed_ips, 0, ip_address]}
value: {get_attr: [kube_minion_eth0, fixed_ips, 0, ip_address]}

View File

@ -11,7 +11,7 @@ parameters:
type: string
description: glance image used to boot the server
server_flavor:
minion_flavor:
type: string
default: m1.small
description: flavor to use when booting the server
@ -48,15 +48,14 @@ parameters:
resources:
node_wait_handle:
minion_wait_handle:
type: OS::Heat::WaitConditionHandle
node_wait_condition:
minion_wait_condition:
type: OS::Heat::WaitCondition
depends_on:
- kube_node
depends_on: kube_minion
properties:
handle: {get_resource: node_wait_handle}
handle: {get_resource: minion_wait_handle}
timeout: {get_param: wait_condition_timeout}
######################################################################
@ -66,49 +65,49 @@ resources:
#
write_heat_params:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
str_replace:
template: {get_file: fragments/write-heat-params.yaml}
params:
"$KUBE_ALLOW_PRIV": {get_param: kube_allow_priv}
"$KUBE_MASTER_IP": {get_param: kube_master_ip}
"$WAIT_HANDLE": {get_resource: node_wait_handle}
$KUBE_ALLOW_PRIV: {get_param: kube_allow_priv}
$KUBE_MASTER_IP: {get_param: kube_master_ip}
$WAIT_HANDLE: {get_resource: minion_wait_handle}
kube_register:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-register.yaml}
configure_kubernetes_minion:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/configure-kubernetes-minion.sh}
kube_user:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-user.yaml}
kube_examples:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-examples.yaml}
docker_service:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/docker.service.yaml}
enable_services:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/enable-services-minion.sh}
@ -123,16 +122,16 @@ resources:
#!/bin/bash -v
wc_notify --data-binary '{"status": "SUCCESS"}'
params:
wc_notify: {get_attr: [node_wait_handle, curl_cli]}
wc_notify: {get_attr: [minion_wait_handle, curl_cli]}
disable_selinux:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/disable-selinux.sh}
kube_node_init:
type: "OS::Heat::MultipartMime"
kube_minion_init:
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: disable_selinux}
@ -145,35 +144,31 @@ resources:
- config: {get_resource: enable_services}
- config: {get_resource: minion_wc_notify}
kube_node:
type: "OS::Nova::Server"
kube_minion:
type: OS::Nova::Server
properties:
image:
get_param: server_image
flavor:
get_param: server_flavor
key_name:
get_param: ssh_key_name
image: {get_param: server_image}
flavor: {get_param: minion_flavor}
key_name: {get_param: ssh_key_name}
user_data_format: RAW
user_data: {get_resource: kube_node_init}
user_data: {get_resource: kube_minion_init}
networks:
- network: {get_param: fixed_network}
kube_node_floating:
type: "OS::Neutron::FloatingIP"
kube_minion_floating:
type: OS::Neutron::FloatingIP
properties:
floating_network:
get_param: external_network
floating_network: {get_param: external_network}
port_id:
get_attr: [kube_node, addresses, {get_param: fixed_network}, 0, port]
get_attr: [kube_minion, addresses, {get_param: fixed_network}, 0, port]
outputs:
kube_node_ip:
value: {get_attr: [kube_node, networks, private, 0]}
kube_minion_ip:
value: {get_attr: [kube_minion, networks, private, 0]}
kube_node_external_ip:
value: {get_attr: [kube_node_floating, floating_ip_address]}
kube_minion_external_ip:
value: {get_attr: [kube_minion_floating, floating_ip_address]}
OS::stack_id:
value: {get_attr: [kube_node, networks, private, 0]}
value: {get_attr: [kube_minion, networks, private, 0]}

View File

@ -104,7 +104,7 @@ resources:
config: {get_file: fragments/configure-docker-storage.sh}
kube_register:
type: "OS::Heat::SoftwareConfig"
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: fragments/kube-register.yaml}