1787fbc7ca
Add two new parameters: EnableFencing and FencingConfig. FencingConfig is a json with an expected structure documented in the templates. It gets passed further to puppet-tripleo, which configures the fencing devices. Fencing is configured and enabled in the last step after all pacemaker resources and constraints have been created, which should be a more stable approach than the other way round. Change-Id: Ifd432bfd2443b6d13e7efa006d4120bb0eaa2554 Depends-On: I819fc8c126ec47cd207c59b3dcf92ff699649c5a Depends-On: I8b7adff6f05f864115071c51810b41efad887584
103 lines
3.3 KiB
YAML
103 lines
3.3 KiB
YAML
heat_template_version: 2015-04-30
|
|
|
|
description: >
|
|
OpenStack controller node post deployment for Puppet.
|
|
|
|
parameters:
|
|
servers:
|
|
type: json
|
|
NodeConfigIdentifiers:
|
|
type: json
|
|
description: Value which changes if the node configuration may need to be re-applied
|
|
|
|
|
|
resources:
|
|
|
|
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
|
|
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_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}
|
|
|
|
# Note, this should come last, so use depends_on to ensure
|
|
# this is created after any other resources.
|
|
ExtraConfig:
|
|
depends_on: ControllerOvercloudServicesDeployment_Step5
|
|
type: OS::TripleO::NodeExtraConfigPost
|
|
properties:
|
|
servers: {get_param: servers}
|