From bf66477be53b9a0d19630ecd36ae918dee57dea8 Mon Sep 17 00:00:00 2001 From: Vladimir Kuklin Date: Tue, 1 Dec 2015 15:20:23 +0300 Subject: [PATCH] Allign tasks for Task-Based Deployment This commit introduces cross-nodes dependencies to new graph serializer for task-based deployment Implements blueprint: task-based-deployment-astute Change-Id: Idefeb7ba3d42f783f35bc818fef43cc1aa2b0188 --- .../osnailyfacter/modular/astute/tasks.yaml | 2 + .../modular/ceilometer/tasks.yaml | 4 + .../osnailyfacter/modular/ceph/tasks.yaml | 27 ++++++- .../modular/cluster-haproxy/tasks.yaml | 20 ++++- .../modular/cluster-vrouter/tasks.yaml | 2 +- .../osnailyfacter/modular/cluster/tasks.yaml | 21 +++++- .../osnailyfacter/modular/database/tasks.yaml | 18 ++++- .../osnailyfacter/modular/dns/tasks.yaml | 16 +++- .../osnailyfacter/modular/glance/tasks.yaml | 8 +- .../osnailyfacter/modular/heat/tasks.yaml | 4 +- .../osnailyfacter/modular/ironic/tasks.yaml | 4 +- .../osnailyfacter/modular/keystone/tasks.yaml | 10 ++- .../osnailyfacter/modular/murano/tasks.yaml | 11 ++- .../osnailyfacter/modular/ntp/tasks.yaml | 3 + .../modular/openstack-cinder/tasks.yaml | 8 +- .../modular/openstack-controller/tasks.yaml | 8 +- .../modular/openstack-haproxy/tasks.yaml | 75 +++++++++++++++---- .../modular/openstack-network/tasks.yaml | 10 ++- .../osnailyfacter/modular/rabbitmq/tasks.yaml | 15 +++- .../osnailyfacter/modular/roles/tasks.yaml | 15 +++- .../osnailyfacter/modular/sahara/tasks.yaml | 6 +- .../osnailyfacter/modular/swift/tasks.yaml | 25 ++++++- .../modular/virtual_ips/tasks.yaml | 10 ++- 23 files changed, 276 insertions(+), 46 deletions(-) diff --git a/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml b/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml index 4c7ae4b97c..94ea0ccf8f 100644 --- a/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml @@ -83,6 +83,8 @@ role: [primary-controller, controller] requires: [upload_cirros] required_for: [post_deployment_end] + cross-depends: + - name: upload_cirros parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/astute/service_token_off.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/ceilometer/tasks.yaml b/deployment/puppet/osnailyfacter/modular/ceilometer/tasks.yaml index 4ec08f0a9a..2d62e8e1c9 100644 --- a/deployment/puppet/osnailyfacter/modular/ceilometer/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/ceilometer/tasks.yaml @@ -1,5 +1,7 @@ - id: ceilometer-controller type: puppet + cross-depends: + - name: ceilometer-keystone groups: [primary-controller, controller] required_for: [openstack-controller, swift] requires: [mongo, primary-mongo, openstack-haproxy] @@ -18,6 +20,8 @@ groups: [compute] required_for: [deploy_end] requires: [ceilometer-controller, top-role-compute] + cross-depends: + - name: ceilometer-controller condition: "settings:additional_components.ceilometer.value == true" parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceilometer/compute.pp diff --git a/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml b/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml index 04fb5ffa5f..833760566f 100644 --- a/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml @@ -34,6 +34,9 @@ groups: [ceph-osd] required_for: [deploy_end] requires: [hosts, firewall] + cross-depends: + - name: ceph-mon + - name: ceph-radosgw parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceph/ceph-osd.pp puppet_modules: /etc/puppet/modules @@ -43,7 +46,7 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end, controller_remaining_tasks] - requires: [apache, ceph-mon] + requires: [apache, ceph-mon, primary-ceph-mon] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceph/radosgw.pp puppet_modules: /etc/puppet/modules @@ -53,9 +56,9 @@ test_post: cmd: ruby /etc/puppet/modules/osnailyfacter/modular/ceph/radosgw_post.rb -- id: ceph-mon +- id: primary-ceph-mon type: puppet - groups: [primary-controller, controller] + groups: [primary-controller] required_for: [deploy_end, controller_remaining_tasks] requires: [openstack-controller] parameters: @@ -63,6 +66,18 @@ puppet_modules: /etc/puppet/modules timeout: 3600 +- id: ceph-mon + type: puppet + groups: [controller] + required_for: [deploy_end, controller_remaining_tasks] + requires: [openstack-controller] + cross-depends: + - name: primary-ceph-mon + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceph/mon.pp + puppet_modules: /etc/puppet/modules + timeout: 3600 + # # POST_DEPLOYMENT Tasks # @@ -70,6 +85,8 @@ - id: ceph-compute type: puppet role: [compute] + cross-depends: + - name: ceph_create_pools requires: [ceph_create_pools] required_for: [post_deployment_end] condition: "settings:storage.objects_ceph.value == true or settings:storage.images_ceph.value == true or settings:storage.volumes_ceph.value == true or settings:storage.ephemeral_ceph.value == true" @@ -86,6 +103,8 @@ role: [primary-controller, controller] requires: [post_deployment_start] required_for: [ceph_ready_check] + cross-depended-by: + - name: ceph_ready_check condition: "settings:storage.objects_ceph.value == true or settings:storage.images_ceph.value == true or settings:storage.volumes_ceph.value == true or settings:storage.ephemeral_ceph.value == true" parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceph/ceph_pools.pp @@ -109,6 +128,8 @@ condition: "settings:storage.objects_ceph.value == true" requires: [post_deployment_start] required_for: [upload_cirros, post_deployment_end] + cross-depended-by: + - name: upload_cirros parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceph/enable_rados.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/cluster-haproxy/tasks.yaml b/deployment/puppet/osnailyfacter/modular/cluster-haproxy/tasks.yaml index d6dfc79cdb..d8682a33d3 100644 --- a/deployment/puppet/osnailyfacter/modular/cluster-haproxy/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/cluster-haproxy/tasks.yaml @@ -1,8 +1,22 @@ -- id: cluster-haproxy +- id: primary-cluster-haproxy type: puppet - groups: [primary-controller, controller] + groups: [primary-controller] required_for: [deploy_end] - requires: [deploy_start, virtual_ips, cluster] + requires: [deploy_start, virtual_ips, primary-cluster] + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/cluster-haproxy/cluster-haproxy.pp + puppet_modules: /etc/puppet/modules + timeout: 3600 + test_post: + cmd: ruby /etc/puppet/modules/osnailyfacter/modular/cluster-haproxy/cluster-haproxy_post.rb + +- id: cluster-haproxy + type: puppet + groups: [controller] + required_for: [deploy_end] + requires: [deploy_start, virtual_ips, cluster] + cross-depends: + - name: primary-cluster-haproxy parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/cluster-haproxy/cluster-haproxy.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/cluster-vrouter/tasks.yaml b/deployment/puppet/osnailyfacter/modular/cluster-vrouter/tasks.yaml index 9353ee7f0f..72e7db9a22 100644 --- a/deployment/puppet/osnailyfacter/modular/cluster-vrouter/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/cluster-vrouter/tasks.yaml @@ -2,7 +2,7 @@ type: puppet groups: [primary-controller, controller] required_for: [virtual_ips] - requires: [cluster] + requires: [primary-cluster, cluster] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/cluster-vrouter/cluster-vrouter.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/cluster/tasks.yaml b/deployment/puppet/osnailyfacter/modular/cluster/tasks.yaml index a7841d2ee7..33c04faa88 100644 --- a/deployment/puppet/osnailyfacter/modular/cluster/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/cluster/tasks.yaml @@ -1,6 +1,20 @@ - id: cluster type: puppet - groups: [primary-controller, controller] + groups: [controller] + cross-depends: + - name: primary-cluster + required_for: [deploy_end] + requires: [hosts, firewall, deploy_start] + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/cluster/cluster.pp + puppet_modules: /etc/puppet/modules + timeout: 3600 + test_post: + cmd: ruby /etc/puppet/modules/osnailyfacter/modular/cluster/cluster_post.rb + +- id: primary-cluster + type: puppet + groups: [primary-controller] required_for: [deploy_end] requires: [hosts, firewall, deploy_start] parameters: @@ -14,7 +28,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [cluster] + requires: [primary-cluster, cluster] + cross-depends: + - name: /(primary-)?cluster/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/cluster/health.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/database/tasks.yaml b/deployment/puppet/osnailyfacter/modular/database/tasks.yaml index a017e9d029..4e0417c762 100644 --- a/deployment/puppet/osnailyfacter/modular/database/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/database/tasks.yaml @@ -1,6 +1,22 @@ - id: database type: puppet - groups: [primary-controller, controller] + groups: [controller] + required_for: [openstack-controller] + requires: [deploy_start, openstack-haproxy] + cross-depends: + - name: primary-database + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/database/database.pp + puppet_modules: /etc/puppet/modules + timeout: 3600 + test_pre: + cmd: ruby /etc/puppet/modules/osnailyfacter/modular/database/database_pre.rb + test_post: + cmd: ruby /etc/puppet/modules/osnailyfacter/modular/database/database_post.rb + +- id: primary-database + type: puppet + groups: [primary-controller] required_for: [openstack-controller] requires: [deploy_start, openstack-haproxy] parameters: diff --git a/deployment/puppet/osnailyfacter/modular/dns/tasks.yaml b/deployment/puppet/osnailyfacter/modular/dns/tasks.yaml index c868869baf..0ffc278c70 100644 --- a/deployment/puppet/osnailyfacter/modular/dns/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/dns/tasks.yaml @@ -1,6 +1,6 @@ -- id: dns-server +- id: primary-dns-server type: puppet - groups: [primary-controller, controller] + groups: [primary-controller] required_for: [deploy_end] requires: [openstack-haproxy] parameters: @@ -8,6 +8,18 @@ puppet_modules: /etc/puppet/modules timeout: 3600 +- id: dns-server + type: puppet + groups: [controller] + required_for: [deploy_end] + requires: [openstack-haproxy] + cross-depends: + - name: primary-dns-server + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/dns/dns-server.pp + puppet_modules: /etc/puppet/modules + timeout: 3600 + - id: dns-client type: puppet role: [primary-mongo, mongo, primary-controller, controller, compute, ceph-osd, cinder, cinder-vmware] diff --git a/deployment/puppet/osnailyfacter/modular/glance/tasks.yaml b/deployment/puppet/osnailyfacter/modular/glance/tasks.yaml index a36e2e548b..6328e0f5ba 100644 --- a/deployment/puppet/osnailyfacter/modular/glance/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/glance/tasks.yaml @@ -2,7 +2,7 @@ type: puppet groups: [primary-controller, controller] required_for: [openstack-controller] - requires: [openstack-haproxy, database] + requires: [openstack-haproxy, primary-database, database] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/glance/glance.pp puppet_modules: /etc/puppet/modules @@ -16,7 +16,9 @@ type: puppet groups: [primary-controller] required_for: [glance] - requires: [database] + requires: [primary-database, database] + cross-depends: + - name: /(primary-)?database/ parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/glance/db.pp puppet_modules: /etc/puppet/modules @@ -27,6 +29,8 @@ groups: [primary-controller] required_for: [glance] requires: [keystone] + cross-depends: + - name: keystone parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/glance/keystone.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/heat/tasks.yaml b/deployment/puppet/osnailyfacter/modular/heat/tasks.yaml index 52b1e86d0a..3acf60df38 100644 --- a/deployment/puppet/osnailyfacter/modular/heat/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/heat/tasks.yaml @@ -16,7 +16,9 @@ type: puppet groups: [primary-controller] required_for: [heat] - requires: [database] + requires: [primary-database, database] + cross-depends: + - name: /(primary-)?database/ parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/heat/db.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/ironic/tasks.yaml b/deployment/puppet/osnailyfacter/modular/ironic/tasks.yaml index f23ed866f4..c5e460a0e6 100644 --- a/deployment/puppet/osnailyfacter/modular/ironic/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/ironic/tasks.yaml @@ -12,9 +12,11 @@ - id: ironic-db type: puppet groups: [primary-controller] + cross-depends: + - name: /(primary-)?database/ condition: "settings:additional_components.ironic.value == true" required_for: [ironic-api] - requires: [database] + requires: [primary-database, database] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ironic/db.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/keystone/tasks.yaml b/deployment/puppet/osnailyfacter/modular/keystone/tasks.yaml index d4ff3ed87d..6bc804be9d 100644 --- a/deployment/puppet/osnailyfacter/modular/keystone/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/keystone/tasks.yaml @@ -2,8 +2,11 @@ type: puppet groups: [primary-controller, controller] required_for: [openstack-controller] - requires: [openstack-haproxy, database, rabbitmq] + requires: [openstack-haproxy, database, primary-rabbitmq, rabbitmq, primary-database] refresh_on: [keystone_config] + cross-depends: + - name: /(primary-)?rabbitmq/ + - name: keystone-db parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/keystone/keystone.pp puppet_modules: /etc/puppet/modules @@ -17,7 +20,10 @@ type: puppet groups: [primary-controller] required_for: [keystone] - requires: [database] + requires: [primary-database, database] + cross-depends: + - name: /(primary-)?database/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/keystone/db.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/murano/tasks.yaml b/deployment/puppet/osnailyfacter/modular/murano/tasks.yaml index 73f8f2d464..476f8d6b8f 100644 --- a/deployment/puppet/osnailyfacter/modular/murano/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/murano/tasks.yaml @@ -3,7 +3,7 @@ groups: [primary-controller, controller] condition: "settings:additional_components.murano.value == true" required_for: [deploy_end, controller_remaining_tasks] - requires: [heat, horizon, rabbitmq] + requires: [heat, horizon, primary-rabbitmq, rabbitmq] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/murano/murano.pp puppet_modules: /etc/puppet/modules @@ -16,9 +16,11 @@ - id: murano-db type: puppet groups: [primary-controller] + cross-depends: + - name: /(primary-)?database/ condition: "settings:additional_components.murano.value == true" required_for: [murano] - requires: [database] + requires: [primary-database, database] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/murano/db.pp puppet_modules: /etc/puppet/modules @@ -40,7 +42,10 @@ groups: [primary-controller] condition: "settings:additional_components.murano.value == true" required_for: [murano] - requires: [rabbitmq] + cross-depends: + - name: /(primary-)?rabbitmq/ + role: self + requires: [rabbitmq, primary-rabbitmq] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/murano/rabbitmq.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/ntp/tasks.yaml b/deployment/puppet/osnailyfacter/modular/ntp/tasks.yaml index 5a7df862ee..1f4c50c514 100644 --- a/deployment/puppet/osnailyfacter/modular/ntp/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/ntp/tasks.yaml @@ -16,6 +16,9 @@ type: puppet role: [primary-mongo, mongo, compute, ceph-osd, cinder, cinder-vmware] requires: [dns-client] + cross-depends: + - name: ntp-server + policy: any required_for: [post_deployment_end] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ntp/ntp-client.pp diff --git a/deployment/puppet/osnailyfacter/modular/openstack-cinder/tasks.yaml b/deployment/puppet/osnailyfacter/modular/openstack-cinder/tasks.yaml index aaf1d48bc7..a89c2715dc 100644 --- a/deployment/puppet/osnailyfacter/modular/openstack-cinder/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/openstack-cinder/tasks.yaml @@ -2,7 +2,7 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end, openstack-controller] - requires: [rabbitmq, keystone, hosts, firewall] + requires: [primary-rabbitmq, rabbitmq, keystone, hosts, firewall] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-cinder/openstack-cinder.pp puppet_modules: /etc/puppet/modules @@ -12,7 +12,9 @@ type: puppet groups: [primary-controller] required_for: [openstack-cinder] - requires: [database] + requires: [primary-database, database] + cross-depends: + - name: /(primary-)?database/ parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-cinder/db.pp puppet_modules: /etc/puppet/modules @@ -22,6 +24,8 @@ type: puppet groups: [primary-controller] required_for: [openstack-cinder] + cross-depends: + - name: keystone requires: [keystone] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-cinder/keystone.pp diff --git a/deployment/puppet/osnailyfacter/modular/openstack-controller/tasks.yaml b/deployment/puppet/osnailyfacter/modular/openstack-controller/tasks.yaml index e6ecddbee4..896aad99cf 100644 --- a/deployment/puppet/osnailyfacter/modular/openstack-controller/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/openstack-controller/tasks.yaml @@ -3,6 +3,8 @@ groups: [primary-controller, controller] required_for: [deploy_end] requires: [openstack-haproxy] + cross-depends: + - name: /(primary-)?rabbitmq/ refresh_on: [nova_config, nova_paste_api_ini] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-controller/openstack-controller.pp @@ -13,7 +15,9 @@ type: puppet groups: [primary-controller] required_for: [openstack-controller] - requires: [database] + requires: [primary-database, database] + cross-depends: + - name: /(primary-)?database/ parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-controller/db.pp puppet_modules: /etc/puppet/modules @@ -24,6 +28,8 @@ groups: [primary-controller] required_for: [openstack-controller] requires: [keystone] + cross-depends: + - name: keystone parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-controller/keystone.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml b/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml index da8ff778bc..43c6a242eb 100644 --- a/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml @@ -14,7 +14,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-horizon.pp puppet_modules: /etc/puppet/modules @@ -28,7 +31,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [cluster-haproxy] + requires: [primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-keystone.pp puppet_modules: /etc/puppet/modules @@ -42,7 +48,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-nova.pp puppet_modules: /etc/puppet/modules @@ -56,7 +65,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-heat.pp puppet_modules: /etc/puppet/modules @@ -70,7 +82,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-glance.pp puppet_modules: /etc/puppet/modules @@ -84,7 +99,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-cinder.pp puppet_modules: /etc/puppet/modules @@ -98,7 +116,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-neutron.pp puppet_modules: /etc/puppet/modules @@ -112,7 +133,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-mysqld.pp puppet_modules: /etc/puppet/modules @@ -126,7 +150,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-swift.pp puppet_modules: /etc/puppet/modules @@ -140,7 +167,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-radosgw.pp puppet_modules: /etc/puppet/modules @@ -154,7 +184,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-ceilometer.pp puppet_modules: /etc/puppet/modules @@ -168,7 +201,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-sahara.pp puppet_modules: /etc/puppet/modules @@ -182,7 +218,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-murano.pp puppet_modules: /etc/puppet/modules @@ -196,7 +235,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-stats.pp puppet_modules: /etc/puppet/modules @@ -209,7 +251,10 @@ groups: [primary-controller, controller] condition: "settings:additional_components.ironic.value == true" required_for: [deploy_end] - requires: [deploy_start, cluster-haproxy] + requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] + cross-depends: + - name: /(primary-)?cluster-haproxy/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-haproxy/openstack-haproxy-ironic.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/openstack-network/tasks.yaml b/deployment/puppet/osnailyfacter/modular/openstack-network/tasks.yaml index df57207760..d2ffd46745 100644 --- a/deployment/puppet/osnailyfacter/modular/openstack-network/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/openstack-network/tasks.yaml @@ -2,7 +2,9 @@ type: puppet groups: [primary-controller] required_for: [openstack-network-end] - requires: [database] + requires: [primary-database, database] + cross-depends: + - name: /(primary-)?database/ parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/db.pp puppet_modules: /etc/puppet/modules @@ -13,6 +15,8 @@ groups: [primary-controller] required_for: [openstack-network-end] requires: [keystone] + cross-depends: + - name: keystone parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/keystone.pp puppet_modules: /etc/puppet/modules @@ -24,6 +28,10 @@ groups: [primary-controller,controller,compute,ironic] requires: [neutron-keystone, neutron-db, netconfig, openstack-controller, top-role-compute, ironic-compute] required_for: [openstack-network-common-config] + cross-depends: + - name: neutron-keystone + - name: openstack-haproxy + - name: neutron-db - id: openstack-network-common-config type: puppet diff --git a/deployment/puppet/osnailyfacter/modular/rabbitmq/tasks.yaml b/deployment/puppet/osnailyfacter/modular/rabbitmq/tasks.yaml index 987b3953f4..5532c7ae7f 100644 --- a/deployment/puppet/osnailyfacter/modular/rabbitmq/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/rabbitmq/tasks.yaml @@ -1,6 +1,19 @@ - id: rabbitmq type: puppet - groups: [primary-controller, controller] + groups: [controller] + cross-depends: + - name: primary-rabbitmq + required_for: [deploy_end, openstack-controller, glance] + requires: [openstack-haproxy] + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/rabbitmq/rabbitmq.pp + puppet_modules: /etc/puppet/modules + timeout: 3600 + test_post: + cmd: ruby /etc/puppet/modules/osnailyfacter/modular/rabbitmq/rabbitmq_post.rb +- id: primary-rabbitmq + type: puppet + groups: [primary-controller] required_for: [deploy_end, openstack-controller, glance] requires: [openstack-haproxy] parameters: diff --git a/deployment/puppet/osnailyfacter/modular/roles/tasks.yaml b/deployment/puppet/osnailyfacter/modular/roles/tasks.yaml index bc7432a013..ebefaff165 100644 --- a/deployment/puppet/osnailyfacter/modular/roles/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/roles/tasks.yaml @@ -12,6 +12,10 @@ groups: [compute] required_for: [deploy_end] requires: [hosts, firewall] + cross-depends: + - name: keystone + - name: openstack-controller + - name: /(primary-)?rabbitmq/ refresh_on: [nova_config, nova_paste_api_ini] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/roles/compute.pp @@ -23,6 +27,8 @@ groups: [cinder, cinder-block-device, cinder-vmware] required_for: [deploy_end] requires: [hosts, firewall] + cross-depends: + - name: openstack-cinder parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/roles/cinder.pp puppet_modules: /etc/puppet/modules @@ -53,6 +59,9 @@ groups: [ironic] required_for: [deploy_end] requires: [hosts, firewall] + cross-depends: + - name: ironic + - name: /(primary-)?database/ parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/roles/ironic-conductor.pp puppet_modules: /etc/puppet/modules @@ -62,7 +71,11 @@ type: puppet groups: [ironic] required_for: [deploy_end] - requires: [hosts, firewall] + requires: [hosts, firewall, ironic-conductor] + cross-depends: + - name: /(primary-)?rabbitmq/ + - name: ironic-conductor + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/roles/ironic-compute.pp puppet_modules: /etc/puppet/modules diff --git a/deployment/puppet/osnailyfacter/modular/sahara/tasks.yaml b/deployment/puppet/osnailyfacter/modular/sahara/tasks.yaml index cfb534a047..948e4cb7a4 100644 --- a/deployment/puppet/osnailyfacter/modular/sahara/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/sahara/tasks.yaml @@ -16,9 +16,11 @@ - id: sahara-db type: puppet groups: [primary-controller] + cross-depends: + - name: /(primary-)?database/ required_for: [sahara] condition: "settings:additional_components.sahara.value == true" - requires: [database] + requires: [primary-database, database] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/sahara/db.pp puppet_modules: /etc/puppet/modules @@ -29,6 +31,8 @@ groups: [primary-controller] required_for: [sahara] requires: [keystone] + cross-depends: + - name: keystone condition: "settings:additional_components.sahara.value == true" parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/sahara/keystone.pp diff --git a/deployment/puppet/osnailyfacter/modular/swift/tasks.yaml b/deployment/puppet/osnailyfacter/modular/swift/tasks.yaml index 61beecfd7e..3715c70d33 100644 --- a/deployment/puppet/osnailyfacter/modular/swift/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/swift/tasks.yaml @@ -1,8 +1,26 @@ - id: swift type: puppet - groups: [primary-controller, controller] + groups: [controller] required_for: [deploy_end, controller_remaining_tasks] requires: [openstack-controller] + cross-depends: + - name: primary-swift + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/swift/swift.pp + puppet_modules: /etc/puppet/modules + timeout: 3600 + test_pre: + cmd: ruby /etc/puppet/modules/osnailyfacter/modular/swift/swift_pre.rb + test_post: + cmd: ruby /etc/puppet/modules/osnailyfacter/modular/swift/swift_post.rb + +- id: primary-swift + type: puppet + groups: [primary-controller] + required_for: [deploy_end, controller_remaining_tasks] + requires: [openstack-controller] + cross-depends: + - name: /(primary-)?rabbitmq/ parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/swift/swift.pp puppet_modules: /etc/puppet/modules @@ -17,6 +35,9 @@ groups: [primary-controller, controller] required_for: [deploy_end] requires: [swift] + cross-depends: + - name: /(primary-)?swift/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/swift/rebalance_cronjob.pp puppet_modules: /etc/puppet/modules @@ -30,6 +51,8 @@ type: puppet groups: [primary-controller] required_for: [swift] + cross-depends: + - name: keystone requires: [keystone] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/swift/keystone.pp diff --git a/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml b/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml index 512b8a7acc..ca5787f445 100644 --- a/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/virtual_ips/tasks.yaml @@ -2,7 +2,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [cluster] + requires: [primary-cluster,cluster] + cross-depends: + - name: /(primary-)?cluster$/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/virtual_ips/virtual_ips.pp puppet_modules: /etc/puppet/modules @@ -14,7 +17,10 @@ type: puppet groups: [primary-controller, controller] required_for: [deploy_end] - requires: [virtual_ips] + requires: [virtual_ips,cluster,primary-cluster] + cross-depends: + - name: /(primary-)?cluster/ + role: self parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/virtual_ips/conntrackd.pp puppet_modules: /etc/puppet/modules