diff --git a/clearwater.yaml b/clearwater.yaml index a155c60..1de2e0f 100644 --- a/clearwater.yaml +++ b/clearwater.yaml @@ -185,6 +185,7 @@ resources: ellis: type: ./ellis.yaml + depends_on: dns properties: public_mgmt_net_id: { get_param: public_mgmt_net_id } private_mgmt_net_id: { get_attr: [ mgmt_network, private_net ] } @@ -202,6 +203,7 @@ resources: bono: type: OS::Heat::ResourceGroup + depends_on: ellis properties: count: { get_param: bono_cluster_size } index_var: "__index__" @@ -229,6 +231,7 @@ resources: sprout: type: OS::Heat::ResourceGroup + depends_on: ellis properties: count: { get_param: sprout_cluster_size } index_var: __index__ @@ -257,6 +260,7 @@ resources: homer: type: OS::Heat::ResourceGroup + depends_on: ellis properties: count: { get_param: homer_cluster_size } index_var: __index__ @@ -285,6 +289,7 @@ resources: dime: type: OS::Heat::ResourceGroup + depends_on: ellis properties: count: { get_param: dime_cluster_size } index_var: __index__ @@ -313,6 +318,7 @@ resources: vellum: type: OS::Heat::ResourceGroup + depends_on: ellis properties: count: { get_param: vellum_cluster_size } index_var: __index__ diff --git a/dns.yaml b/dns.yaml index 825ede1..3e6c938 100644 --- a/dns.yaml +++ b/dns.yaml @@ -91,6 +91,16 @@ resources: security_groups: - { get_param: dns_security_group } + wait_condition: + type: OS::Heat::WaitCondition + properties: + handle: {get_resource: wait_handle} + count: 1 + timeout: 600 + + wait_handle: + type: OS::Heat::WaitConditionHandle + server: type: OS::Nova::Server properties: @@ -110,6 +120,7 @@ resources: __public_ip__: { get_attr: [ mgmt_floating_ip, floating_ip_address ] } __private_sig_ip__: { get_attr: [ sig_port, fixed_ips, 0, ip_address ] } __private_sig_cidr__: { get_param: private_sig_net_cidr } + wc_notify: { get_attr: [wait_handle, curl_cli] } template: | #!/bin/bash @@ -162,6 +173,7 @@ resources: # Now that BIND configuration is correct, kick it to reload. service bind9 reload + wc_notify --data-binary '{"status": "SUCCESS"}' outputs: public_mgmt_ip: diff --git a/ellis.yaml b/ellis.yaml index 963352d..d39c235 100644 --- a/ellis.yaml +++ b/ellis.yaml @@ -103,6 +103,16 @@ resources: floating_network_id: { get_param: public_mgmt_net_id } port_id: { get_resource: mgmt_port } + wait_condition: + type: OS::Heat::WaitCondition + properties: + handle: {get_resource: wait_handle} + count: 1 + timeout: 600 + + wait_handle: + type: OS::Heat::WaitConditionHandle + server: type: OS::Nova::Server properties: @@ -126,6 +136,7 @@ resources: __dnssec_key__: { get_param: dnssec_key } __etcd_ip__ : { get_param: etcd_ip } __index__ : { get_param: index } + wc_notify: { get_attr: [wait_handle, curl_cli] } template: | #!/bin/bash @@ -227,6 +238,7 @@ resources: echo 'nameserver __dns_mgmt_ip__' > /etc/dnsmasq.resolv.conf echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq service dnsmasq force-reload + wc_notify --data-binary '{"status": "SUCCESS"}' outputs: public_mgmt_ip: