Move RHEL (un)registration to NodeExtraConfig
authorSteven Hardy <shardy@redhat.com>
Thu, 1 Oct 2015 09:26:16 +0000 (10:26 +0100)
committerSteven Hardy <shardy@redhat.com>
Thu, 1 Oct 2015 09:26:16 +0000 (10:26 +0100)
Currently, we have a problem because the unregistration happens in the
"post deploy" phase, which works fine when the top-level stack is being
deleted, but not when the ResourceGroup of servers is being scaled down,
because then the normal "post deploy" update ordering is respected and
we try to unregister after the corresponding server has been deleted.

So, instead, register/unregister each node inside the unit of scale,
e.g the role template being scaled down, which is possible via the new
NodesExtraConfig interface, which means unregistration will take
place at the right time both on stack delete and on scale-down.

Change-Id: I8f117a49fd128f268659525dd03ad46ba3daa1bc

extraconfig/post_deploy/rhel-registration/rhel-registration-resource-registry.yaml [deleted file]
extraconfig/pre_deploy/rhel-registration/environment-rhel-registration.yaml [moved from extraconfig/post_deploy/rhel-registration/environment-rhel-registration.yaml with 100% similarity]
extraconfig/pre_deploy/rhel-registration/rhel-registration-resource-registry.yaml [new file with mode: 0644]
extraconfig/pre_deploy/rhel-registration/rhel-registration.yaml [moved from extraconfig/post_deploy/rhel-registration/rhel-registration.yaml with 89% similarity]
extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration [moved from extraconfig/post_deploy/rhel-registration/scripts/rhel-registration with 100% similarity]
extraconfig/pre_deploy/rhel-registration/scripts/rhel-unregistration [moved from extraconfig/post_deploy/rhel-registration/scripts/rhel-unregistration with 100% similarity]

diff --git a/extraconfig/post_deploy/rhel-registration/rhel-registration-resource-registry.yaml b/extraconfig/post_deploy/rhel-registration/rhel-registration-resource-registry.yaml
deleted file mode 100644 (file)
index 7b48392..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-resource_registry:
-  OS::TripleO::NodeExtraConfigPost: rhel-registration.yaml
diff --git a/extraconfig/pre_deploy/rhel-registration/rhel-registration-resource-registry.yaml b/extraconfig/pre_deploy/rhel-registration/rhel-registration-resource-registry.yaml
new file mode 100644 (file)
index 0000000..7545330
--- /dev/null
@@ -0,0 +1,2 @@
+resource_registry:
+  OS::TripleO::NodeExtraConfig: rhel-registration.yaml
@@ -6,8 +6,8 @@ description: >
 # Note extra parameters can be defined, then passed data via the
 # environment parameter_defaults, without modifying the parent template
 parameters:
-  servers:
-    type: json
+  server:
+    type: string
   # To be defined via a local or global environment in parameter_defaults
   rhel_reg_activation_key:
     type: string
@@ -71,9 +71,9 @@ resources:
       config: {get_file: scripts/rhel-registration}
 
   RHELRegistrationDeployment:
-    type: OS::Heat::SoftwareDeployments
+    type: OS::Heat::SoftwareDeployment
     properties:
-      servers:  {get_param: servers}
+      server:  {get_param: server}
       config: {get_resource: RHELRegistration}
       actions: ['CREATE'] # Only do this on CREATE
       input_values:
@@ -104,10 +104,16 @@ resources:
         - name: REG_METHOD
 
   RHELUnregistrationDeployment:
-    type: OS::Heat::SoftwareDeployments
+    type: OS::Heat::SoftwareDeployment
     properties:
-      servers:  {get_param: servers}
+      server:  {get_param: server}
       config: {get_resource: RHELUnregistration}
       actions: ['DELETE'] # Only do this on DELETE
       input_values:
         REG_METHOD: {get_param: rhel_reg_method}
+
+outputs:
+  deploy_stdout:
+    description: Deployment reference, used to trigger puppet apply on changes
+    value: {get_attr: [RHELRegistrationDeployment, deploy_stdout]}
+