Blacklist support for ExtraConfig

Commit I46941e54a476c7cc8645cd1aff391c9c6c5434de added support for
blacklisting servers from triggered Heat deployments.

This commit adds that functionality to the remaining Deployments in
tripleo-heat-templates for the ExtraConfig interfaces.

Since we can not (should not) change the interface to ExtraConfig, Heat
conditions are used on the actual <role>ExtraConfigPre and
NodeExtraConfig resources instead of using the actions approach on
Deployments.

Change-Id: I38fdb50d1d966a6c3651980c52298317fa3bece4
This commit is contained in:
James Slagle 2017-06-16 11:13:25 -04:00
parent 0354927a11
commit d6c0979eb3
11 changed files with 192 additions and 7 deletions

View File

@ -59,6 +59,19 @@ parameters:
description: | description: |
When enabled, the system will perform a yum update after performing the When enabled, the system will perform a yum update after performing the
RHEL Registration process. RHEL Registration process.
deployment_actions:
default: ['CREATE', 'UPDATE']
type: comma_delimited_list
description: >
List of stack actions that will trigger any deployments in this
templates. The actions will be an empty list of the server is in the
toplevel DeploymentServerBlacklist parameter's value.
conditions:
deployment_actions_empty:
equals:
- {get_param: deployment_actions}
- []
resources: resources:
@ -136,7 +149,11 @@ resources:
name: RHELUnregistrationDeployment name: RHELUnregistrationDeployment
server: {get_param: server} server: {get_param: server}
config: {get_resource: RHELUnregistration} config: {get_resource: RHELUnregistration}
actions: ['DELETE'] # Only do this on DELETE actions:
if:
- deployment_actions_empty
- []
- ['DELETE'] # Only do this on DELETE
input_values: input_values:
REG_METHOD: {get_param: rhel_reg_method} REG_METHOD: {get_param: rhel_reg_method}
@ -169,7 +186,11 @@ resources:
name: UpdateDeploymentAfterRHELRegistration name: UpdateDeploymentAfterRHELRegistration
config: {get_resource: YumUpdateConfigurationAfterRHELRegistration} config: {get_resource: YumUpdateConfigurationAfterRHELRegistration}
server: {get_param: server} server: {get_param: server}
actions: ['CREATE'] # Only do this on CREATE actions:
if:
- deployment_actions_empty
- []
- ['CREATE'] # Only do this on CREATE
outputs: outputs:
deploy_stdout: deploy_stdout:

View File

@ -7,6 +7,19 @@ description: >
parameters: parameters:
server: server:
type: string type: string
deployment_actions:
default: ['CREATE', 'UPDATE']
type: comma_delimited_list
description: >
List of stack actions that will trigger any deployments in this
templates. The actions will be an empty list of the server is in the
toplevel DeploymentServerBlacklist parameter's value.
conditions:
deployment_actions_empty:
equals:
- {get_param: deployment_actions}
- []
resources: resources:
@ -24,6 +37,11 @@ resources:
name: SomeDeployment name: SomeDeployment
server: {get_param: server} server: {get_param: server}
config: {get_resource: SomeConfig} config: {get_resource: SomeConfig}
actions:
if:
- deployment_actions_empty
- []
- ['CREATE'] # Only do this on CREATE
actions: ['CREATE'] # Only do this on CREATE actions: ['CREATE'] # Only do this on CREATE
RebootConfig: RebootConfig:
@ -44,5 +62,9 @@ resources:
name: RebootDeployment name: RebootDeployment
server: {get_param: server} server: {get_param: server}
config: {get_resource: RebootConfig} config: {get_resource: RebootConfig}
actions: ['CREATE'] # Only do this on CREATE actions:
if:
- deployment_actions_empty
- []
- ['CREATE'] # Only do this on CREATE
signal_transport: NO_SIGNAL signal_transport: NO_SIGNAL

View File

@ -19,6 +19,13 @@ parameters:
{{role}}HostCpusList: {{role}}HostCpusList:
type: string type: string
default: "" default: ""
deployment_actions:
default: ['CREATE', 'UPDATE']
type: comma_delimited_list
description: >
List of stack actions that will trigger any deployments in this
templates. The actions will be an empty list of the server is in the
toplevel DeploymentServerBlacklist parameter's value.
parameter_group: parameter_group:
- label: deprecated - label: deprecated
@ -38,6 +45,10 @@ conditions:
equals: equals:
- get_param: {{role}}TunedProfileName - get_param: {{role}}TunedProfileName
- "" - ""
deployment_actions_empty:
equals:
- {get_param: deployment_actions}
- []
resources: resources:
@ -62,7 +73,11 @@ resources:
name: HostParametersDeployment name: HostParametersDeployment
server: {get_param: server} server: {get_param: server}
config: {get_resource: HostParametersConfig} config: {get_resource: HostParametersConfig}
actions: ['CREATE'] # Only do this on CREATE actions:
if:
- deployment_actions_empty
- []
- ['CREATE'] # Only do this on CREATE
input_values: input_values:
_KERNEL_ARGS_: {get_param: {{role}}KernelArgs} _KERNEL_ARGS_: {get_param: {{role}}KernelArgs}
_TUNED_PROFILE_NAME_: {get_param: {{role}}TunedProfileName} _TUNED_PROFILE_NAME_: {get_param: {{role}}TunedProfileName}
@ -88,7 +103,11 @@ resources:
name: RebootDeployment name: RebootDeployment
server: {get_param: server} server: {get_param: server}
config: {get_resource: RebootConfig} config: {get_resource: RebootConfig}
actions: ['CREATE'] # Only do this on CREATE actions:
if:
- deployment_actions_empty
- []
- ['CREATE'] # Only do this on CREATE
signal_transport: NO_SIGNAL signal_transport: NO_SIGNAL
outputs: outputs:

View File

@ -11,9 +11,20 @@ parameters:
type: json type: json
description: Role Specific parameters description: Role Specific parameters
default: {} default: {}
deployment_actions:
default: ['CREATE', 'UPDATE']
type: comma_delimited_list
description: >
List of stack actions that will trigger any deployments in this
templates. The actions will be an empty list of the server is in the
toplevel DeploymentServerBlacklist parameter's value.
conditions: conditions:
is_host_config_required: {not: {equals: [{get_param: [RoleParameters, KernelArgs]}, ""]}} is_host_config_required: {not: {equals: [{get_param: [RoleParameters, KernelArgs]}, ""]}}
deployment_actions_empty:
equals:
- {get_param: deployment_actions}
- []
resources: resources:
HostParametersConfig: HostParametersConfig:
@ -37,7 +48,11 @@ resources:
name: HostParametersDeployment name: HostParametersDeployment
server: {get_param: server} server: {get_param: server}
config: {get_resource: HostParametersConfig} config: {get_resource: HostParametersConfig}
actions: ['CREATE'] # Only do this on CREATE actions:
if:
- deployment_actions_empty
- []
- ['CREATE'] # Only do this on CREATE
input_values: input_values:
_KERNEL_ARGS_: {get_param: [RoleParameters, KernelArgs]} _KERNEL_ARGS_: {get_param: [RoleParameters, KernelArgs]}
_TUNED_PROFILE_NAME_: {get_param: [RoleParameters, TunedProfileName]} _TUNED_PROFILE_NAME_: {get_param: [RoleParameters, TunedProfileName]}
@ -63,7 +78,11 @@ resources:
name: RebootDeployment name: RebootDeployment
server: {get_param: server} server: {get_param: server}
config: {get_resource: RebootConfig} config: {get_resource: RebootConfig}
actions: ['CREATE'] # Only do this on CREATE actions:
if:
- deployment_actions_empty
- []
- ['CREATE'] # Only do this on CREATE
signal_transport: NO_SIGNAL signal_transport: NO_SIGNAL
outputs: outputs:

View File

@ -7,6 +7,13 @@ parameters:
server: server:
description: ID of the node to apply this config to description: ID of the node to apply this config to
type: string type: string
deployment_actions:
default: ['CREATE', 'UPDATE']
type: comma_delimited_list
description: >
List of stack actions that will trigger any deployments in this
templates. The actions will be an empty list of the server is in the
toplevel DeploymentServerBlacklist parameter's value.
resources: resources:
SshHostPubKeyConfig: SshHostPubKeyConfig:
@ -28,6 +35,7 @@ resources:
properties: properties:
config: {get_resource: SshHostPubKeyConfig} config: {get_resource: SshHostPubKeyConfig}
server: {get_param: server} server: {get_param: server}
actions: {get_param: deployment_actions}
outputs: outputs:

View File

@ -377,6 +377,7 @@ resources:
properties: properties:
server: {get_resource: BlockStorage} server: {get_resource: BlockStorage}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
deployment_actions: {get_attr: [DeploymentActions, value]}
NetworkDeployment: NetworkDeployment:
type: OS::TripleO::SoftwareDeployment type: OS::TripleO::SoftwareDeployment
@ -485,6 +486,9 @@ resources:
NodeExtraConfig: NodeExtraConfig:
depends_on: NodeTLSCAData depends_on: NodeTLSCAData
type: OS::TripleO::NodeExtraConfig type: OS::TripleO::NodeExtraConfig
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: BlockStorage} server: {get_resource: BlockStorage}
@ -507,11 +511,21 @@ resources:
- ['CREATE', 'UPDATE'] - ['CREATE', 'UPDATE']
- [] - []
DeploymentActions:
type: OS::Heat::Value
properties:
value:
if:
- server_not_blacklisted
- ['CREATE', 'UPDATE']
- []
SshHostPubKey: SshHostPubKey:
type: OS::TripleO::Ssh::HostPubKey type: OS::TripleO::Ssh::HostPubKey
depends_on: BlockStorageDeployment depends_on: BlockStorageDeployment
properties: properties:
server: {get_resource: BlockStorage} server: {get_resource: BlockStorage}
deployment_actions: {get_attr: [DeploymentActions, value]}
outputs: outputs:
ip_address: ip_address:

View File

@ -383,6 +383,7 @@ resources:
properties: properties:
server: {get_resource: CephStorage} server: {get_resource: CephStorage}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
deployment_actions: {get_attr: [DeploymentActions, value]}
NetworkDeployment: NetworkDeployment:
type: OS::TripleO::SoftwareDeployment type: OS::TripleO::SoftwareDeployment
@ -489,6 +490,9 @@ resources:
CephStorageExtraConfigPre: CephStorageExtraConfigPre:
depends_on: CephStorageDeployment depends_on: CephStorageDeployment
type: OS::TripleO::CephStorageExtraConfigPre type: OS::TripleO::CephStorageExtraConfigPre
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: CephStorage} server: {get_resource: CephStorage}
@ -497,6 +501,9 @@ resources:
NodeExtraConfig: NodeExtraConfig:
depends_on: [CephStorageExtraConfigPre, NodeTLSCAData] depends_on: [CephStorageExtraConfigPre, NodeTLSCAData]
type: OS::TripleO::NodeExtraConfig type: OS::TripleO::NodeExtraConfig
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: CephStorage} server: {get_resource: CephStorage}
@ -518,11 +525,21 @@ resources:
- ['CREATE', 'UPDATE'] - ['CREATE', 'UPDATE']
- [] - []
DeploymentActions:
type: OS::Heat::Value
properties:
value:
if:
- server_not_blacklisted
- ['CREATE', 'UPDATE']
- []
SshHostPubKey: SshHostPubKey:
type: OS::TripleO::Ssh::HostPubKey type: OS::TripleO::Ssh::HostPubKey
depends_on: CephStorageDeployment depends_on: CephStorageDeployment
properties: properties:
server: {get_resource: CephStorage} server: {get_resource: CephStorage}
deployment_actions: {get_attr: [DeploymentActions, value]}
outputs: outputs:
ip_address: ip_address:

View File

@ -386,6 +386,7 @@ resources:
properties: properties:
server: {get_resource: NovaCompute} server: {get_resource: NovaCompute}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
deployment_actions: {get_attr: [DeploymentActions, value]}
NetworkConfig: NetworkConfig:
type: OS::TripleO::Compute::Net::SoftwareConfig type: OS::TripleO::Compute::Net::SoftwareConfig
@ -512,6 +513,9 @@ resources:
ComputeExtraConfigPre: ComputeExtraConfigPre:
depends_on: NovaComputeDeployment depends_on: NovaComputeDeployment
type: OS::TripleO::ComputeExtraConfigPre type: OS::TripleO::ComputeExtraConfigPre
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: NovaCompute} server: {get_resource: NovaCompute}
@ -520,6 +524,9 @@ resources:
NodeExtraConfig: NodeExtraConfig:
depends_on: [ComputeExtraConfigPre, NodeTLSCAData] depends_on: [ComputeExtraConfigPre, NodeTLSCAData]
type: OS::TripleO::NodeExtraConfig type: OS::TripleO::NodeExtraConfig
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: NovaCompute} server: {get_resource: NovaCompute}
@ -542,11 +549,21 @@ resources:
update_identifier: update_identifier:
get_param: UpdateIdentifier get_param: UpdateIdentifier
DeploymentActions:
type: OS::Heat::Value
properties:
value:
if:
- server_not_blacklisted
- ['CREATE', 'UPDATE']
- []
SshHostPubKey: SshHostPubKey:
type: OS::TripleO::Ssh::HostPubKey type: OS::TripleO::Ssh::HostPubKey
depends_on: NovaComputeDeployment depends_on: NovaComputeDeployment
properties: properties:
server: {get_resource: NovaCompute} server: {get_resource: NovaCompute}
deployment_actions: {get_attr: [DeploymentActions, value]}
outputs: outputs:
ip_address: ip_address:

View File

@ -406,6 +406,7 @@ resources:
properties: properties:
server: {get_resource: Controller} server: {get_resource: Controller}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
deployment_actions: {get_attr: [DeploymentActions, value]}
NetworkConfig: NetworkConfig:
type: OS::TripleO::Controller::Net::SoftwareConfig type: OS::TripleO::Controller::Net::SoftwareConfig
@ -552,6 +553,9 @@ resources:
ControllerExtraConfigPre: ControllerExtraConfigPre:
depends_on: ControllerDeployment depends_on: ControllerDeployment
type: OS::TripleO::ControllerExtraConfigPre type: OS::TripleO::ControllerExtraConfigPre
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: Controller} server: {get_resource: Controller}
@ -560,6 +564,9 @@ resources:
NodeExtraConfig: NodeExtraConfig:
depends_on: [ControllerExtraConfigPre, NodeTLSData] depends_on: [ControllerExtraConfigPre, NodeTLSData]
type: OS::TripleO::NodeExtraConfig type: OS::TripleO::NodeExtraConfig
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: Controller} server: {get_resource: Controller}
@ -582,11 +589,21 @@ resources:
update_identifier: update_identifier:
get_param: UpdateIdentifier get_param: UpdateIdentifier
DeploymentActions:
type: OS::Heat::Value
properties:
value:
if:
- server_not_blacklisted
- ['CREATE', 'UPDATE']
- []
SshHostPubKey: SshHostPubKey:
type: OS::TripleO::Ssh::HostPubKey type: OS::TripleO::Ssh::HostPubKey
depends_on: ControllerDeployment depends_on: ControllerDeployment
properties: properties:
server: {get_resource: Controller} server: {get_resource: Controller}
deployment_actions: {get_attr: [DeploymentActions, value]}
outputs: outputs:
ip_address: ip_address:

View File

@ -377,6 +377,7 @@ resources:
properties: properties:
server: {get_resource: SwiftStorage} server: {get_resource: SwiftStorage}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
deployment_actions: {get_attr: [DeploymentActions, value]}
NetworkDeployment: NetworkDeployment:
type: OS::TripleO::SoftwareDeployment type: OS::TripleO::SoftwareDeployment
@ -485,6 +486,9 @@ resources:
NodeExtraConfig: NodeExtraConfig:
depends_on: NodeTLSCAData depends_on: NodeTLSCAData
type: OS::TripleO::NodeExtraConfig type: OS::TripleO::NodeExtraConfig
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: SwiftStorage} server: {get_resource: SwiftStorage}
@ -506,11 +510,21 @@ resources:
- ['CREATE', 'UPDATE'] - ['CREATE', 'UPDATE']
- [] - []
DeploymentActions:
type: OS::Heat::Value
properties:
value:
if:
- server_not_blacklisted
- ['CREATE', 'UPDATE']
- []
SshHostPubKey: SshHostPubKey:
type: OS::TripleO::Ssh::HostPubKey type: OS::TripleO::Ssh::HostPubKey
depends_on: SwiftStorageHieraDeploy depends_on: SwiftStorageHieraDeploy
properties: properties:
server: {get_resource: SwiftStorage} server: {get_resource: SwiftStorage}
deployment_actions: {get_attr: [DeploymentActions, value]}
outputs: outputs:
ip_address: ip_address:

View File

@ -399,6 +399,7 @@ resources:
properties: properties:
server: {get_resource: {{role}}} server: {get_resource: {{role}}}
RoleParameters: {get_param: RoleParameters} RoleParameters: {get_param: RoleParameters}
deployment_actions: {get_attr: [DeploymentActions, value]}
NetworkDeployment: NetworkDeployment:
type: OS::TripleO::SoftwareDeployment type: OS::TripleO::SoftwareDeployment
@ -511,6 +512,9 @@ resources:
{{role}}ExtraConfigPre: {{role}}ExtraConfigPre:
depends_on: {{role}}Deployment depends_on: {{role}}Deployment
type: OS::TripleO::{{role}}ExtraConfigPre type: OS::TripleO::{{role}}ExtraConfigPre
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: {{role}}} server: {get_resource: {{role}}}
@ -519,6 +523,9 @@ resources:
NodeExtraConfig: NodeExtraConfig:
depends_on: [{{role}}ExtraConfigPre, NodeTLSCAData] depends_on: [{{role}}ExtraConfigPre, NodeTLSCAData]
type: OS::TripleO::NodeExtraConfig type: OS::TripleO::NodeExtraConfig
# We have to use conditions here so that we don't break backwards
# compatibility with templates everywhere
condition: server_not_blacklisted
properties: properties:
server: {get_resource: {{role}}} server: {get_resource: {{role}}}
@ -541,11 +548,21 @@ resources:
- ['CREATE', 'UPDATE'] - ['CREATE', 'UPDATE']
- [] - []
DeploymentActions:
type: OS::Heat::Value
properties:
value:
if:
- server_not_blacklisted
- ['CREATE', 'UPDATE']
- []
SshHostPubKey: SshHostPubKey:
type: OS::TripleO::Ssh::HostPubKey type: OS::TripleO::Ssh::HostPubKey
depends_on: {{role}}Deployment depends_on: {{role}}Deployment
properties: properties:
server: {get_resource: {{role}}} server: {get_resource: {{role}}}
deployment_actions: {get_attr: [DeploymentActions, value]}
outputs: outputs:
ip_address: ip_address: