Wire in NodeExtraConfig interface

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
This commit is contained in:
Steven Hardy 2015-09-24 11:52:06 +01:00
parent 9e918a4a51
commit 1b70744623
6 changed files with 42 additions and 0 deletions

View 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

View 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

View 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

View 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

View 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

View 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