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
This commit is contained in:
Steven Hardy 2015-10-01 10:26:16 +01:00
parent 1b70744623
commit 2793ab34d2
6 changed files with 14 additions and 8 deletions

View File

@ -1,2 +0,0 @@
resource_registry:
OS::TripleO::NodeExtraConfigPost: rhel-registration.yaml

View File

@ -0,0 +1,2 @@
resource_registry:
OS::TripleO::NodeExtraConfig: rhel-registration.yaml

View File

@ -6,8 +6,8 @@ description: >
# Note extra parameters can be defined, then passed data via the # Note extra parameters can be defined, then passed data via the
# environment parameter_defaults, without modifying the parent template # environment parameter_defaults, without modifying the parent template
parameters: parameters:
servers: server:
type: json type: string
# To be defined via a local or global environment in parameter_defaults # To be defined via a local or global environment in parameter_defaults
rhel_reg_activation_key: rhel_reg_activation_key:
type: string type: string
@ -71,9 +71,9 @@ resources:
config: {get_file: scripts/rhel-registration} config: {get_file: scripts/rhel-registration}
RHELRegistrationDeployment: RHELRegistrationDeployment:
type: OS::Heat::SoftwareDeployments type: OS::Heat::SoftwareDeployment
properties: properties:
servers: {get_param: servers} server: {get_param: server}
config: {get_resource: RHELRegistration} config: {get_resource: RHELRegistration}
actions: ['CREATE'] # Only do this on CREATE actions: ['CREATE'] # Only do this on CREATE
input_values: input_values:
@ -104,10 +104,16 @@ resources:
- name: REG_METHOD - name: REG_METHOD
RHELUnregistrationDeployment: RHELUnregistrationDeployment:
type: OS::Heat::SoftwareDeployments type: OS::Heat::SoftwareDeployment
properties: properties:
servers: {get_param: servers} server: {get_param: server}
config: {get_resource: RHELUnregistration} config: {get_resource: RHELUnregistration}
actions: ['DELETE'] # Only do this on DELETE actions: ['DELETE'] # Only do this on DELETE
input_values: input_values:
REG_METHOD: {get_param: rhel_reg_method} 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]}