From 1b70744623eb9b65a762aed9ce67c74dcd054cd3 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Thu, 24 Sep 2015 11:52:06 +0100 Subject: Wire in NodeExtraConfig interface It's become apparent that some actions are required in the pre-deploy phase for all nodes, for example applying common hieradata overrides, or also as a place to hook in logic which must happen for all nodes prior to their removal on scale down (such as unregistration from a satellite server, which currently doesn't work via the *NodesPostDeployment for scale-down usage). So, add a new interface that enables ExtraConfig per-node (inside the scaled unit, vs AllNodes which is used for the cluster-wide config outside of the ResourceGroup) Change-Id: Ic865908e97483753e58bc18e360ebe50557ab93c --- overcloud-resource-registry-puppet.yaml | 2 ++ puppet/ceph-storage.yaml | 8 ++++++++ puppet/cinder-storage.yaml | 8 ++++++++ puppet/compute.yaml | 8 ++++++++ puppet/controller.yaml | 8 ++++++++ puppet/swift-storage.yaml | 8 ++++++++ 6 files changed, 42 insertions(+) diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index b527c10f..7e65d4b1 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -30,11 +30,13 @@ resource_registry: # Hooks for operator extra config # NodeUserData == Cloud-init additional user-data, e.g cloud-config # ControllerExtraConfigPre == Controller configuration pre service deployment + # NodeExtraConfig == All nodes configuration pre service deployment # NodeExtraConfigPost == All nodes configuration post service deployment OS::TripleO::NodeUserData: firstboot/userdata_default.yaml OS::TripleO::ControllerExtraConfigPre: puppet/extraconfig/pre_deploy/default.yaml OS::TripleO::ComputeExtraConfigPre: puppet/extraconfig/pre_deploy/default.yaml OS::TripleO::CephStorageExtraConfigPre: puppet/extraconfig/pre_deploy/default.yaml + OS::TripleO::NodeExtraConfig: puppet/extraconfig/pre_deploy/default.yaml OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml # "AllNodes" Extra cluster config, runs on all nodes prior to the post_deploy diff --git a/puppet/ceph-storage.yaml b/puppet/ceph-storage.yaml index 87957052..478cbf27 100644 --- a/puppet/ceph-storage.yaml +++ b/puppet/ceph-storage.yaml @@ -179,6 +179,14 @@ resources: properties: server: {get_resource: CephStorage} + # Hook for site-specific additional pre-deployment config, + # applying to all nodes, e.g node registration/unregistration + NodeExtraConfig: + depends_on: CephStorageExtraConfigPre + type: OS::TripleO::NodeExtraConfig + properties: + server: {get_resource: CephStorage} + UpdateConfig: type: OS::TripleO::Tasks::PackageUpdate diff --git a/puppet/cinder-storage.yaml b/puppet/cinder-storage.yaml index 1cc300cc..bf024aa8 100644 --- a/puppet/cinder-storage.yaml +++ b/puppet/cinder-storage.yaml @@ -261,6 +261,14 @@ resources: snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name} snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password} + # Hook for site-specific additional pre-deployment config, + # applying to all nodes, e.g node registration/unregistration + NodeExtraConfig: + depends_on: BlockStorageDeployment + type: OS::TripleO::NodeExtraConfig + properties: + server: {get_resource: BlockStorage} + UpdateConfig: type: OS::TripleO::Tasks::PackageUpdate diff --git a/puppet/compute.yaml b/puppet/compute.yaml index a7c1c8c9..cac37d71 100644 --- a/puppet/compute.yaml +++ b/puppet/compute.yaml @@ -552,6 +552,14 @@ resources: properties: server: {get_resource: NovaCompute} + # Hook for site-specific additional pre-deployment config, + # applying to all nodes, e.g node registration/unregistration + NodeExtraConfig: + depends_on: ComputeExtraConfigPre + type: OS::TripleO::NodeExtraConfig + properties: + server: {get_resource: NovaCompute} + UpdateConfig: type: OS::TripleO::Tasks::PackageUpdate diff --git a/puppet/controller.yaml b/puppet/controller.yaml index a68ece2b..bd9cfadf 100644 --- a/puppet/controller.yaml +++ b/puppet/controller.yaml @@ -1204,6 +1204,14 @@ resources: properties: server: {get_resource: Controller} + # Hook for site-specific additional pre-deployment config, + # applying to all nodes, e.g node registration/unregistration + NodeExtraConfig: + depends_on: ControllerExtraConfigPre + type: OS::TripleO::NodeExtraConfig + properties: + server: {get_resource: Controller} + UpdateConfig: type: OS::TripleO::Tasks::PackageUpdate diff --git a/puppet/swift-storage.yaml b/puppet/swift-storage.yaml index c09b4e45..5b7c28bf 100644 --- a/puppet/swift-storage.yaml +++ b/puppet/swift-storage.yaml @@ -214,6 +214,14 @@ resources: enable_package_install: {get_param: EnablePackageInstall} swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]} + # Hook for site-specific additional pre-deployment config, + # applying to all nodes, e.g node registration/unregistration + NodeExtraConfig: + depends_on: SwiftStorageHieraDeploy + type: OS::TripleO::NodeExtraConfig + properties: + server: {get_resource: SwiftStorage} + UpdateConfig: type: OS::TripleO::Tasks::PackageUpdate -- cgit 1.2.3-korg