From 2793ab34d244443963b9ad23e7fcefad6cb1ddaa Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Thu, 1 Oct 2015 10:26:16 +0100 Subject: [PATCH] Move RHEL (un)registration to NodeExtraConfig 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 --- .../rhel-registration-resource-registry.yaml | 2 -- .../environment-rhel-registration.yaml | 0 .../rhel-registration-resource-registry.yaml | 2 ++ .../rhel-registration/rhel-registration.yaml | 18 ++++++++++++------ .../rhel-registration/scripts/rhel-registration | 0 .../rhel-registration/scripts/rhel-unregistration | 0 6 files changed, 14 insertions(+), 8 deletions(-) delete mode 100644 extraconfig/post_deploy/rhel-registration/rhel-registration-resource-registry.yaml rename extraconfig/{post_deploy => pre_deploy}/rhel-registration/environment-rhel-registration.yaml (100%) create mode 100644 extraconfig/pre_deploy/rhel-registration/rhel-registration-resource-registry.yaml rename extraconfig/{post_deploy => pre_deploy}/rhel-registration/rhel-registration.yaml (89%) rename extraconfig/{post_deploy => pre_deploy}/rhel-registration/scripts/rhel-registration (100%) rename extraconfig/{post_deploy => pre_deploy}/rhel-registration/scripts/rhel-unregistration (100%) 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 index 7b48392d..00000000 --- a/extraconfig/post_deploy/rhel-registration/rhel-registration-resource-registry.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resource_registry: - OS::TripleO::NodeExtraConfigPost: rhel-registration.yaml diff --git a/extraconfig/post_deploy/rhel-registration/environment-rhel-registration.yaml b/extraconfig/pre_deploy/rhel-registration/environment-rhel-registration.yaml similarity index 100% rename from extraconfig/post_deploy/rhel-registration/environment-rhel-registration.yaml rename to extraconfig/pre_deploy/rhel-registration/environment-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 index 00000000..75453302 --- /dev/null +++ b/extraconfig/pre_deploy/rhel-registration/rhel-registration-resource-registry.yaml @@ -0,0 +1,2 @@ +resource_registry: + OS::TripleO::NodeExtraConfig: rhel-registration.yaml diff --git a/extraconfig/post_deploy/rhel-registration/rhel-registration.yaml b/extraconfig/pre_deploy/rhel-registration/rhel-registration.yaml similarity index 89% rename from extraconfig/post_deploy/rhel-registration/rhel-registration.yaml rename to extraconfig/pre_deploy/rhel-registration/rhel-registration.yaml index bf6c88cd..d5160915 100644 --- a/extraconfig/post_deploy/rhel-registration/rhel-registration.yaml +++ b/extraconfig/pre_deploy/rhel-registration/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]} + diff --git a/extraconfig/post_deploy/rhel-registration/scripts/rhel-registration b/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration similarity index 100% rename from extraconfig/post_deploy/rhel-registration/scripts/rhel-registration rename to extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration diff --git a/extraconfig/post_deploy/rhel-registration/scripts/rhel-unregistration b/extraconfig/pre_deploy/rhel-registration/scripts/rhel-unregistration similarity index 100% rename from extraconfig/post_deploy/rhel-registration/scripts/rhel-unregistration rename to extraconfig/pre_deploy/rhel-registration/scripts/rhel-unregistration -- 2.16.6