Wire in NodeExtraConfig interface
authorSteven Hardy <shardy@redhat.com>
Thu, 24 Sep 2015 10:52:06 +0000 (11:52 +0100)
committerSteven Hardy <shardy@redhat.com>
Thu, 1 Oct 2015 08:13:31 +0000 (09:13 +0100)
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
puppet/ceph-storage.yaml
puppet/cinder-storage.yaml
puppet/compute.yaml
puppet/controller.yaml
puppet/swift-storage.yaml

index b527c10..7e65d4b 100644 (file)
@@ -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
index 8795705..478cbf2 100644 (file)
@@ -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
 
index 1cc300c..bf024aa 100644 (file)
@@ -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
 
index a7c1c8c..cac37d7 100644 (file)
@@ -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
 
index a68ece2..bd9cfad 100644 (file)
@@ -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
 
index c09b4e4..5b7c28b 100644 (file)
@@ -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