
This enables pacemaker maintenantce mode when running Puppet on stack update. Puppet can try to restart some overcloud services, which pacemaker tries to prevent, and this can result in a failed Puppet run. At the end of the puppet run, certain pacemaker resources are restarted in an additional SoftwareDeployment to make sure that any config changes have been fully applied. This is only done on stack updates (when UpdateIdentifier is set to something), because the assumption is that on stack create services already come up with the correct config. (Change I9556085424fa3008d7f596578b58e7c33a336f75 has been squashed into this one.) Change-Id: I4d40358c511fc1f95b78a859e943082aaea17899 Co-Authored-By: Jiri Stransky <jistr@redhat.com> Co-Authored-By: James Slagle <jslagle@redhat.com>
124 lines
3.9 KiB
YAML
124 lines
3.9 KiB
YAML
heat_template_version: 2015-04-30
|
|
|
|
description: >
|
|
OpenStack controller node post deployment for Puppet.
|
|
|
|
parameters:
|
|
ConfigDebug:
|
|
default: false
|
|
description: Whether to run config management (e.g. Puppet) in debug mode.
|
|
type: boolean
|
|
servers:
|
|
type: json
|
|
NodeConfigIdentifiers:
|
|
type: json
|
|
description: Value which changes if the node configuration may need to be re-applied
|
|
|
|
|
|
resources:
|
|
|
|
ControllerPrePuppet:
|
|
type: OS::TripleO::Tasks::ControllerPrePuppet
|
|
properties:
|
|
servers: {get_param: servers}
|
|
input_values:
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
|
|
ControllerPuppetConfig:
|
|
type: OS::TripleO::ControllerConfig
|
|
|
|
# Step through a series of Puppet runs using the same manifest.
|
|
# NOTE: To enable stepping through the deployments via heat hooks,
|
|
# you must observe the glob naming defined in overcloud-steps.yaml
|
|
# e.g all Deployment resources should have a *Deployment_StepN suffix
|
|
ControllerLoadBalancerDeployment_Step1:
|
|
type: OS::Heat::StructuredDeployments
|
|
depends_on: ControllerPrePuppet
|
|
properties:
|
|
servers: {get_param: servers}
|
|
config: {get_resource: ControllerPuppetConfig}
|
|
input_values:
|
|
step: 1
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
actions: ['CREATE'] # no need for two passes on an UPDATE
|
|
|
|
ControllerServicesBaseDeployment_Step2:
|
|
type: OS::Heat::StructuredDeployments
|
|
depends_on: ControllerLoadBalancerDeployment_Step1
|
|
properties:
|
|
servers: {get_param: servers}
|
|
config: {get_resource: ControllerPuppetConfig}
|
|
input_values:
|
|
step: 2
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
actions: ['CREATE'] # no need for two passes on an UPDATE
|
|
|
|
ControllerRingbuilderPuppetConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: puppet
|
|
options:
|
|
enable_debug: {get_param: ConfigDebug}
|
|
enable_hiera: True
|
|
enable_facter: False
|
|
inputs:
|
|
outputs:
|
|
- name: result
|
|
config:
|
|
get_file: manifests/ringbuilder.pp
|
|
|
|
ControllerRingbuilderDeployment_Step3:
|
|
type: OS::Heat::StructuredDeployments
|
|
depends_on: ControllerServicesBaseDeployment_Step2
|
|
properties:
|
|
servers: {get_param: servers}
|
|
config: {get_resource: ControllerRingbuilderPuppetConfig}
|
|
input_values:
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
|
|
ControllerOvercloudServicesDeployment_Step4:
|
|
type: OS::Heat::StructuredDeployments
|
|
depends_on: ControllerRingbuilderDeployment_Step3
|
|
properties:
|
|
servers: {get_param: servers}
|
|
config: {get_resource: ControllerPuppetConfig}
|
|
input_values:
|
|
step: 3
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
|
|
ControllerOvercloudServicesDeployment_Step5:
|
|
type: OS::Heat::StructuredDeployments
|
|
depends_on: ControllerOvercloudServicesDeployment_Step4
|
|
properties:
|
|
servers: {get_param: servers}
|
|
config: {get_resource: ControllerPuppetConfig}
|
|
input_values:
|
|
step: 4
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
|
|
ControllerOvercloudServicesDeployment_Step6:
|
|
type: OS::Heat::StructuredDeployments
|
|
depends_on: ControllerOvercloudServicesDeployment_Step5
|
|
properties:
|
|
servers: {get_param: servers}
|
|
config: {get_resource: ControllerPuppetConfig}
|
|
input_values:
|
|
step: 5
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
|
|
ControllerPostPuppet:
|
|
type: OS::TripleO::Tasks::ControllerPostPuppet
|
|
depends_on: ControllerOvercloudServicesDeployment_Step6
|
|
properties:
|
|
servers: {get_param: servers}
|
|
input_values:
|
|
update_identifier: {get_param: NodeConfigIdentifiers}
|
|
|
|
# Note, this should come last, so use depends_on to ensure
|
|
# this is created after any other resources.
|
|
ExtraConfig:
|
|
depends_on: ControllerPostPuppet
|
|
type: OS::TripleO::NodeExtraConfigPost
|
|
properties:
|
|
servers: {get_param: servers}
|