summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xextraconfig/tasks/major_upgrade_ceph_mon.sh21
-rw-r--r--extraconfig/tasks/major_upgrade_pacemaker.yaml15
-rw-r--r--overcloud-resource-registry-puppet.yaml22
-rw-r--r--overcloud.yaml139
-rw-r--r--puppet/all-nodes-config.yaml27
-rw-r--r--puppet/blockstorage-config.yaml38
-rw-r--r--puppet/ceph-storage-post.yaml81
-rw-r--r--puppet/cephstorage-config.yaml38
-rw-r--r--puppet/cinder-storage-post.yaml91
-rw-r--r--puppet/compute-config.yaml38
-rw-r--r--puppet/compute-post.yaml93
-rw-r--r--puppet/controller-post.yaml117
-rw-r--r--puppet/objectstorage-config.yaml38
-rw-r--r--puppet/post.yaml644
-rw-r--r--puppet/services/README.rst2
-rw-r--r--puppet/services/services.yaml5
-rw-r--r--puppet/swift-storage-post.yaml91
17 files changed, 933 insertions, 567 deletions
diff --git a/extraconfig/tasks/major_upgrade_ceph_mon.sh b/extraconfig/tasks/major_upgrade_ceph_mon.sh
index 38befbbf..b76dd7c3 100755
--- a/extraconfig/tasks/major_upgrade_ceph_mon.sh
+++ b/extraconfig/tasks/major_upgrade_ceph_mon.sh
@@ -17,6 +17,21 @@ if ! [[ "$INSTALLED_VERSION" =~ ^0\.94.* ]]; then
exit 0
fi
+CEPH_STATUS=$(ceph health | awk '{print $1}')
+if [ ${CEPH_STATUS} = HEALTH_ERR ]; do
+ echo ERROR: Ceph cluster status is HEALTH_ERR, cannot be upgraded
+ exit 1
+fi
+
+# Useful when upgrading with OSDs num < replica size
+if [ $ignore_ceph_upgrade_warnings != "true" ]; then
+ timeout 300 bash -c "while [ ${CEPH_STATUS} != HEALTH_OK ]; do
+ echo WARNING: Waiting for Ceph cluster status to go HEALTH_OK;
+ sleep 30;
+ CEPH_STATUS=$(ceph health | awk '{print $1}')
+ done"
+fi
+
MON_PID=$(pidof ceph-mon)
MON_ID=$(hostname -s)
@@ -37,8 +52,6 @@ if [[ "$UPDATED_VERSION" =~ ^0\.94.* ]]; then
echo WARNING: Ceph was not upgraded, restarting daemons
service ceph start mon.${MON_ID}
elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then
- echo INFO: Ceph was upgraded to Jewel
-
# RPM could own some of these but we can't take risks on the pre-existing files
for d in /var/lib/ceph/mon /var/log/ceph /var/run/ceph /etc/ceph; do
chown -R ceph:ceph $d
@@ -54,9 +67,11 @@ elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then
# Wait for daemon to be back in the quorum
timeout 300 bash -c "until (ceph quorum_status | jq .quorum_names | grep -sq ${MON_ID}); do
- echo Waiting for mon.${MON_ID} to re-join quorum;
+ echo WARNING: Waiting for mon.${MON_ID} to re-join quorum;
sleep 10;
done"
+
+ echo INFO: Ceph was upgraded to Jewel
else
echo ERROR: Ceph was upgraded to an unknown release, daemon is stopped, need manual intervention
exit 1
diff --git a/extraconfig/tasks/major_upgrade_pacemaker.yaml b/extraconfig/tasks/major_upgrade_pacemaker.yaml
index c2e14880..598d22d0 100644
--- a/extraconfig/tasks/major_upgrade_pacemaker.yaml
+++ b/extraconfig/tasks/major_upgrade_pacemaker.yaml
@@ -26,6 +26,10 @@ parameters:
constraints:
- allowed_values: ['auto', 'yes', 'no']
default: 'auto'
+ IgnoreCephUpgradeWarnings:
+ type: boolean
+ default: false
+ description: If enabled, Ceph upgrade will be forced even though cluster or PGs status is not clean
resources:
# TODO(jistr): for Mitaka->Newton upgrades and further we can use
@@ -36,7 +40,16 @@ resources:
type: OS::Heat::SoftwareConfig
properties:
group: script
- config: {get_file: major_upgrade_ceph_mon.sh}
+ config:
+ list_join:
+ - ''
+ - - str_replace:
+ template: |
+ #!/bin/bash
+ ignore_ceph_upgrade_warnings='IGNORE_CEPH_UPGRADE_WARNINGS'
+ params:
+ IGNORE_CEPH_UPGRADE_WARNINGS: {get_param: IgnoreCephUpgradeWarnings}
+ - get_file: major_upgrade_ceph_mon.sh
CephMonUpgradeDeployment:
type: OS::Heat::SoftwareDeploymentGroup
diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml
index b0723dd7..f7581615 100644
--- a/overcloud-resource-registry-puppet.yaml
+++ b/overcloud-resource-registry-puppet.yaml
@@ -10,21 +10,29 @@ resource_registry:
OS::TripleO::ObjectStorage::Net::SoftwareConfig: net-config-noop.yaml
OS::TripleO::CephStorage: puppet/ceph-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: net-config-noop.yaml
- OS::TripleO::ControllerPostDeployment: puppet/controller-post.yaml
# set to controller-config-pacemaker.yaml to enable pacemaker
OS::TripleO::ControllerConfig: puppet/controller-config.yaml
- OS::TripleO::ComputePostDeployment: puppet/compute-post.yaml
- OS::TripleO::ObjectStoragePostDeployment: puppet/swift-storage-post.yaml
- OS::TripleO::BlockStoragePostDeployment: puppet/cinder-storage-post.yaml
- OS::TripleO::CephStoragePostDeployment: puppet/ceph-storage-post.yaml
+ OS::TripleO::PostDeploySteps: puppet/post.yaml
+ OS::TripleO::ComputeConfig: puppet/compute-config.yaml
+ OS::TripleO::BlockStorageConfig: puppet/blockstorage-config.yaml
+ OS::TripleO::ObjectStorageConfig: puppet/objectstorage-config.yaml
+ OS::TripleO::CephStorageConfig: puppet/cephstorage-config.yaml
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
OS::TripleO::DefaultPasswords: default_passwords.yaml
# Tasks (for internal TripleO usage)
OS::TripleO::Tasks::UpdateWorkflow: OS::Heat::None
OS::TripleO::Tasks::PackageUpdate: extraconfig/tasks/yum_update.yaml
- OS::TripleO::Tasks::ControllerPrePuppet: OS::Heat::None
- OS::TripleO::Tasks::ControllerPostPuppet: OS::Heat::None
+ OS::TripleO::Tasks::ControllerPreConfig: OS::Heat::None
+ OS::TripleO::Tasks::ControllerPostConfig: OS::Heat::None
+ OS::TripleO::Tasks::ComputePreConfig: OS::Heat::None
+ OS::TripleO::Tasks::ComputePostConfig: OS::Heat::None
+ OS::TripleO::Tasks::BlockStoragePreConfig: OS::Heat::None
+ OS::TripleO::Tasks::BlockStoragePostConfig: OS::Heat::None
+ OS::TripleO::Tasks::ObjectStoragePreConfig: OS::Heat::None
+ OS::TripleO::Tasks::ObjectStoragePostConfig: OS::Heat::None
+ OS::TripleO::Tasks::CephStoragePreConfig: OS::Heat::None
+ OS::TripleO::Tasks::CephStoragePostConfig: OS::Heat::None
OS::TripleO::Server: OS::Nova::Server
diff --git a/overcloud.yaml b/overcloud.yaml
index d5764926..4092e11b 100644
--- a/overcloud.yaml
+++ b/overcloud.yaml
@@ -103,18 +103,6 @@ parameters:
ControllerCount:
type: number
default: 1
- controllerExtraConfig:
- default: {}
- description: |
- Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
- type: json
- ExtraConfig:
- default: {}
- description: |
- Additional configuration to inject into the cluster. The format required
- may be implementation specific, e.g puppet hieradata. Any role specific
- ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
- type: json
# Compute-specific params
ComputeCount:
@@ -237,12 +225,6 @@ parameters:
BlockStorageCount:
type: number
default: 0
- BlockStorageExtraConfig:
- default: {}
- description: |
- BlockStorage specific configuration to inject into the cluster. Same
- structure as ExtraConfig.
- type: json
BlockStorageServices:
default:
- OS::TripleO::Services::CACerts
@@ -264,12 +246,6 @@ parameters:
ObjectStorageCount:
type: number
default: 0
- ObjectStorageExtraConfig:
- default: {}
- description: |
- ObjectStorage specific configuration to inject into the cluster. Same
- structure as ExtraConfig.
- type: json
ObjectStorageServices:
default:
- OS::TripleO::Services::CACerts
@@ -294,12 +270,6 @@ parameters:
CephStorageCount:
type: number
default: 0
- CephStorageExtraConfig:
- default: {}
- description: |
- CephStorage specific configuration to inject into the cluster. Same
- structure as ExtraConfig.
- type: json
CephStorageServices:
default:
- OS::TripleO::Services::CACerts
@@ -389,12 +359,6 @@ parameters:
List of resources to be removed from CephStorageResourceGroup when
doing an update which requires removal of specific resources.
-parameter_groups:
-- label: deprecated
- description: Do not use deprecated params, they will be removed.
- parameters:
- - controllerExtraConfig
-
resources:
@@ -444,7 +408,6 @@ resources:
type: OS::TripleO::Controller
properties:
CloudDomain: {get_param: CloudDomain}
- controllerExtraConfig: {get_param: controllerExtraConfig}
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
Hostname:
@@ -453,7 +416,15 @@ resources:
params:
'%stackname%': {get_param: 'OS::stack_name'}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [ControllerServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
MonitoringSubscriptions: {get_attr: [ControllerServiceChain, role_data, monitoring_subscriptions]}
@@ -485,7 +456,14 @@ resources:
params:
'%stackname%': {get_param: 'OS::stack_name'}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [ComputeServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
MonitoringSubscriptions: {get_attr: [ComputeServiceChain, role_data, monitoring_subscriptions]}
@@ -513,12 +491,17 @@ resources:
params:
'%stackname%': {get_param: 'OS::stack_name'}
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
- ExtraConfig: {get_param: ExtraConfig}
- BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
CloudDomain: {get_param: CloudDomain}
ServerMetadata: {get_param: ServerMetadata}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [BlockStorageServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
MonitoringSubscriptions: {get_attr: [BlockStorageServiceChain, role_data, monitoring_subscriptions]}
@@ -546,12 +529,17 @@ resources:
template: {get_param: ObjectStorageHostnameFormat}
params:
'%stackname%': {get_param: 'OS::stack_name'}
- ExtraConfig: {get_param: ExtraConfig}
- ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
CloudDomain: {get_param: CloudDomain}
ServerMetadata: {get_param: ServerMetadata}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [ObjectStorageServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
MonitoringSubscriptions: {get_attr: [ObjectStorageServiceChain, role_data, monitoring_subscriptions]}
@@ -579,12 +567,17 @@ resources:
template: {get_param: CephStorageHostnameFormat}
params:
'%stackname%': {get_param: 'OS::stack_name'}
- ExtraConfig: {get_param: ExtraConfig}
- CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
CloudDomain: {get_param: CloudDomain}
ServerMetadata: {get_param: ServerMetadata}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [CephStorageServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
MonitoringSubscriptions: {get_attr: [CephStorageServiceChain, role_data, monitoring_subscriptions]}
@@ -952,42 +945,22 @@ resources:
objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
- # Nested stack deployment runs after all other controller deployments
- ControllerNodesPostDeployment:
- type: OS::TripleO::ControllerPostDeployment
- depends_on: [ControllerAllNodesDeployment]
- properties:
- servers: {get_attr: [Controller, attributes, nova_server_resource]}
- RoleData: {get_attr: [ControllerServiceChain, role_data]}
-
- ComputeNodesPostDeployment:
- type: OS::TripleO::ComputePostDeployment
- depends_on: [ComputeAllNodesDeployment]
+ # Post deployment steps for all roles
+ AllNodesDeploySteps:
+ type: OS::TripleO::PostDeploySteps
properties:
- servers: {get_attr: [Compute, attributes, nova_server_resource]}
- RoleData: {get_attr: [ComputeServiceChain, role_data]}
-
- ObjectStorageNodesPostDeployment:
- type: OS::TripleO::ObjectStoragePostDeployment
- depends_on: [ObjectStorageAllNodesDeployment]
- properties:
- servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
- RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
-
- BlockStorageNodesPostDeployment:
- type: OS::TripleO::BlockStoragePostDeployment
- depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
- properties:
- servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
- RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
-
- CephStorageNodesPostDeployment:
- type: OS::TripleO::CephStoragePostDeployment
- depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
- properties:
- servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
- RoleData: {get_attr: [CephStorageServiceChain, role_data]}
-
+ servers:
+ Controller: {get_attr: [Controller, attributes, nova_server_resource]}
+ Compute: {get_attr: [Compute, attributes, nova_server_resource]}
+ BlockStorage: {get_attr: [BlockStorage, attributes, nova_server_resource]}
+ ObjectStorage: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+ CephStorage: {get_attr: [CephStorage, attributes, nova_server_resource]}
+ role_data:
+ Controller: {get_attr: [ControllerServiceChain, role_data]}
+ Compute: {get_attr: [ComputeServiceChain, role_data]}
+ BlockStorage: {get_attr: [BlockStorageServiceChain, role_data]}
+ ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data]}
+ CephStorage: {get_attr: [CephStorageServiceChain, role_data]}
outputs:
ManagedEndpoints:
diff --git a/puppet/all-nodes-config.yaml b/puppet/all-nodes-config.yaml
index 05c58055..c764d4ef 100644
--- a/puppet/all-nodes-config.yaml
+++ b/puppet/all-nodes-config.yaml
@@ -90,6 +90,33 @@ resources:
for_each:
SERVICE:
str_split: [',', {get_param: enabled_services}]
+ # Dynamically generate per-service network data
+ # This works as follows (outer->inner functions)
+ # yaql - filters services where no mapping exists in ServiceNetMap
+ # map_replace: substitute e.g heat_api_network with network name from ServiceNetMap
+ # map_merge/repeat: generate a per-service mapping
+ - yaql:
+ # This filters any entries where the value hasn't been substituted for
+ # a list, e.g it's still $service_network. This happens when there is
+ # no network defined for the service in the ServiceNetMap, which is OK
+ # as not all services have to be bound to a network, so we filter them
+ expression: dict($.data.map.items().where(isString($[1]) and not $[1].endsWith("_network")))
+ data:
+ map:
+ map_replace:
+ - map_merge:
+ repeat:
+ template:
+ SERVICE_network: SERVICE_network
+ for_each:
+ SERVICE:
+ str_split: [',', {get_param: enabled_services}]
+ - values: {get_param: ServiceNetMap}
+ # Keystone doesn't provide separate entries for the public
+ # and admin endpoints, so we need to add them here manually
+ # like we do in the vip-config below
+ - keystone_admin_api_network: {get_param: [ServiceNetMap, keystone_admin_api_network]}
+ keystone_public_api_network: {get_param: [ServiceNetMap, keystone_public_api_network]}
# provides a mapping of service_name_ips to a list of IPs
- {get_param: service_ips}
- {get_param: service_node_names}
diff --git a/puppet/blockstorage-config.yaml b/puppet/blockstorage-config.yaml
new file mode 100644
index 00000000..9b31b448
--- /dev/null
+++ b/puppet/blockstorage-config.yaml
@@ -0,0 +1,38 @@
+heat_template_version: 2015-04-30
+
+description: >
+ A software config which runs manifests/overcloud_volume.pp
+
+parameters:
+ ConfigDebug:
+ default: false
+ description: Whether to run config management (e.g. Puppet) in debug mode.
+ type: boolean
+ StepConfig:
+ type: string
+ description: Config manifests that will be used to step through the deployment.
+ default: ''
+
+resources:
+
+ BlockStoragePuppetConfigImpl:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ options:
+ enable_debug: {get_param: ConfigDebug}
+ enable_hiera: True
+ enable_facter: False
+ modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
+ outputs:
+ - name: result
+ config:
+ list_join:
+ - ''
+ - - get_file: manifests/overcloud_volume.pp
+ - {get_param: StepConfig}
+
+outputs:
+ OS::stack_id:
+ description: The software config which runs overcloud_controller.pp
+ value: {get_resource: BlockStoragePuppetConfigImpl}
diff --git a/puppet/ceph-storage-post.yaml b/puppet/ceph-storage-post.yaml
deleted file mode 100644
index df6b7249..00000000
--- a/puppet/ceph-storage-post.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-heat_template_version: 2015-04-30
-
-description: >
- OpenStack ceph storage 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
- RoleData:
- type: json
- default: {}
- DeployIdentifier:
- type: string
- default: ''
- description: Value which changes if the node configuration may need to be re-applied
-
-resources:
-
- CephStorageArtifactsConfig:
- type: deploy-artifacts.yaml
-
- CephStorageArtifactsDeploy:
- type: OS::Heat::StructuredDeployments
- properties:
- servers: {get_param: servers}
- config: {get_resource: CephStorageArtifactsConfig}
- input_values:
- update_identifier: {get_param: DeployIdentifier}
-
- CephStoragePuppetConfig:
- type: OS::Heat::SoftwareConfig
- properties:
- group: puppet
- options:
- enable_debug: {get_param: ConfigDebug}
- enable_hiera: True
- enable_facter: False
- modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
- inputs:
- - name: step
- outputs:
- - name: result
- config:
- list_join:
- - ''
- - - get_file: manifests/overcloud_cephstorage.pp
- - {get_param: [RoleData, step_config]}
-
- CephStorageDeployment_Step2:
- type: OS::Heat::StructuredDeployments
- depends_on: CephStorageArtifactsDeploy
- properties:
- name: CephStorageDeployment_Step2
- servers: {get_param: servers}
- config: {get_resource: CephStoragePuppetConfig}
- input_values:
- step: 2
- update_identifier: {get_param: DeployIdentifier}
-
- CephStorageDeployment_Step3:
- type: OS::Heat::StructuredDeployments
- depends_on: CephStorageDeployment_Step2
- properties:
- name: CephStorageDeployment_Step3
- servers: {get_param: servers}
- config: {get_resource: CephStoragePuppetConfig}
- input_values:
- step: 3
- update_identifier: {get_param: DeployIdentifier}
-
- # Note, this should come last, so use depends_on to ensure
- # this is created after any other resources.
- ExtraConfig:
- depends_on: CephStorageDeployment_Step3
- type: OS::TripleO::NodeExtraConfigPost
- properties:
- servers: {get_param: servers}
diff --git a/puppet/cephstorage-config.yaml b/puppet/cephstorage-config.yaml
new file mode 100644
index 00000000..4bad4a16
--- /dev/null
+++ b/puppet/cephstorage-config.yaml
@@ -0,0 +1,38 @@
+heat_template_version: 2015-04-30
+
+description: >
+ A software config which runs manifests/overcloud_cephstorage.pp
+
+parameters:
+ ConfigDebug:
+ default: false
+ description: Whether to run config management (e.g. Puppet) in debug mode.
+ type: boolean
+ StepConfig:
+ type: string
+ description: Config manifests that will be used to step through the deployment.
+ default: ''
+
+resources:
+
+ CephStoragePuppetConfigImpl:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ options:
+ enable_debug: {get_param: ConfigDebug}
+ enable_hiera: True
+ enable_facter: False
+ modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
+ outputs:
+ - name: result
+ config:
+ list_join:
+ - ''
+ - - get_file: manifests/overcloud_cephstorage.pp
+ - {get_param: StepConfig}
+
+outputs:
+ OS::stack_id:
+ description: The software config which runs overcloud_controller.pp
+ value: {get_resource: CephStoragePuppetConfigImpl}
diff --git a/puppet/cinder-storage-post.yaml b/puppet/cinder-storage-post.yaml
deleted file mode 100644
index 0620bc6c..00000000
--- a/puppet/cinder-storage-post.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-heat_template_version: 2015-04-30
-description: 'OpenStack cinder storage 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
- DeployIdentifier:
- type: string
- default: ''
- description: Value which changes if the node configuration may need to be re-applied
- RoleData:
- type: json
- default: {}
-
-resources:
-
- VolumeArtifactsConfig:
- type: deploy-artifacts.yaml
-
- VolumeArtifactsDeploy:
- type: OS::Heat::StructuredDeployments
- properties:
- servers: {get_param: servers}
- config: {get_resource: VolumeArtifactsConfig}
- input_values:
- update_identifier: {get_param: DeployIdentifier}
-
- VolumePuppetConfig:
- type: OS::Heat::SoftwareConfig
- depends_on: VolumeArtifactsDeploy
- properties:
- group: puppet
- options:
- enable_debug: {get_param: ConfigDebug}
- enable_hiera: True
- enable_facter: False
- modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
- inputs:
- - name: step
- outputs:
- - name: result
- config:
- list_join:
- - ''
- - - get_file: manifests/overcloud_volume.pp
- - {get_param: [RoleData, step_config]}
-
- VolumeDeployment_Step2:
- type: OS::Heat::StructuredDeployments
- depends_on: VolumeArtifactsDeploy
- properties:
- name: VolumeDeployment_Step2
- servers: {get_param: servers}
- config: {get_resource: VolumePuppetConfig}
- input_values:
- step: 2
- update_identifier: {get_param: DeployIdentifier}
-
- VolumeDeployment_Step3:
- type: OS::Heat::StructuredDeployments
- depends_on: VolumeDeployment_Step2
- properties:
- name: VolumeDeployment_Step3
- servers: {get_param: servers}
- config: {get_resource: VolumePuppetConfig}
- input_values:
- step: 3
- update_identifier: {get_param: DeployIdentifier}
-
- VolumeDeployment_Step4:
- type: OS::Heat::StructuredDeployments
- depends_on: VolumeDeployment_Step3
- properties:
- name: VolumeDeployment_Step4
- servers: {get_param: servers}
- config: {get_resource: VolumePuppetConfig}
- input_values:
- step: 4
- update_identifier: {get_param: DeployIdentifier}
-
- # Note, this should come last, so use depends_on to ensure
- # this is created after any other resources.
- ExtraConfig:
- depends_on: VolumeDeployment_Step4
- type: OS::TripleO::NodeExtraConfigPost
- properties:
- servers: {get_param: servers}
diff --git a/puppet/compute-config.yaml b/puppet/compute-config.yaml
new file mode 100644
index 00000000..9e128d3a
--- /dev/null
+++ b/puppet/compute-config.yaml
@@ -0,0 +1,38 @@
+heat_template_version: 2015-04-30
+
+description: >
+ A software config which runs manifests/overcloud_compute.pp
+
+parameters:
+ ConfigDebug:
+ default: false
+ description: Whether to run config management (e.g. Puppet) in debug mode.
+ type: boolean
+ StepConfig:
+ type: string
+ description: Config manifests that will be used to step through the deployment.
+ default: ''
+
+resources:
+
+ ComputePuppetConfigImpl:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ options:
+ enable_debug: {get_param: ConfigDebug}
+ enable_hiera: True
+ enable_facter: False
+ modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
+ outputs:
+ - name: result
+ config:
+ list_join:
+ - ''
+ - - get_file: manifests/overcloud_compute.pp
+ - {get_param: StepConfig}
+
+outputs:
+ OS::stack_id:
+ description: The software config which runs overcloud_controller.pp
+ value: {get_resource: ComputePuppetConfigImpl}
diff --git a/puppet/compute-post.yaml b/puppet/compute-post.yaml
deleted file mode 100644
index 358ec5a8..00000000
--- a/puppet/compute-post.yaml
+++ /dev/null
@@ -1,93 +0,0 @@
-heat_template_version: 2015-04-30
-
-description: >
- OpenStack compute 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
- RoleData:
- type: json
- default: {}
- DeployIdentifier:
- type: string
- default: ''
- description: Value which changes if the node configuration may need to be re-applied
-
-resources:
-
- ComputeArtifactsConfig:
- type: deploy-artifacts.yaml
-
- ComputeArtifactsDeploy:
- type: OS::Heat::StructuredDeployments
- properties:
- servers: {get_param: servers}
- config: {get_resource: ComputeArtifactsConfig}
- input_values:
- update_identifier: {get_param: DeployIdentifier}
-
- ComputePuppetConfig:
- type: OS::Heat::SoftwareConfig
- properties:
- group: puppet
- options:
- enable_debug: {get_param: ConfigDebug}
- enable_hiera: True
- enable_facter: False
- modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
- inputs:
- - name: step
- outputs:
- - name: result
- config:
- list_join:
- - ''
- - - get_file: manifests/overcloud_compute.pp
- - {get_param: [RoleData, step_config]}
-
- ComputeServicesBaseDeployment_Step2:
- type: OS::Heat::StructuredDeployments
- depends_on: [ComputeArtifactsDeploy]
- properties:
- name: ComputeServicesBaseDeployment_Step2
- servers: {get_param: servers}
- config: {get_resource: ComputePuppetConfig}
- input_values:
- step: 2
- update_identifier: {get_param: DeployIdentifier}
-
- ComputeOvercloudServicesDeployment_Step3:
- type: OS::Heat::StructuredDeployments
- depends_on: ComputeServicesBaseDeployment_Step2
- properties:
- name: ComputeOvercloudServicesDeployment_Step3
- servers: {get_param: servers}
- config: {get_resource: ComputePuppetConfig}
- input_values:
- step: 3
- update_identifier: {get_param: DeployIdentifier}
-
- ComputeOvercloudServicesDeployment_Step4:
- type: OS::Heat::StructuredDeployments
- depends_on: ComputeOvercloudServicesDeployment_Step3
- properties:
- name: ComputeOvercloudServicesDeployment_Step4
- servers: {get_param: servers}
- config: {get_resource: ComputePuppetConfig}
- input_values:
- step: 4
- update_identifier: {get_param: DeployIdentifier}
-
- # Note, this should come last, so use depends_on to ensure
- # this is created after any other resources.
- ExtraConfig:
- depends_on: ComputeOvercloudServicesDeployment_Step4
- type: OS::TripleO::NodeExtraConfigPost
- properties:
- servers: {get_param: servers}
-
diff --git a/puppet/controller-post.yaml b/puppet/controller-post.yaml
deleted file mode 100644
index c97c3bc8..00000000
--- a/puppet/controller-post.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-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
- RoleData:
- type: json
- default: {}
- DeployIdentifier:
- type: string
- default: ''
- description: Value which changes if the node configuration may need to be re-applied
-
-resources:
-
- ControllerArtifactsConfig:
- type: deploy-artifacts.yaml
-
- ControllerArtifactsDeploy:
- type: OS::Heat::StructuredDeployments
- properties:
- servers: {get_param: servers}
- config: {get_resource: ControllerArtifactsConfig}
-
- ControllerPrePuppet:
- type: OS::TripleO::Tasks::ControllerPrePuppet
- properties:
- servers: {get_param: servers}
- input_values:
- update_identifier: {get_param: DeployIdentifier}
-
- ControllerPuppetConfig:
- type: OS::TripleO::ControllerConfig
- properties:
- StepConfig: {get_param: [RoleData, step_config]}
-
- # 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, ControllerArtifactsDeploy]
- properties:
- name: ControllerLoadBalancerDeployment_Step1
- servers: {get_param: servers}
- config: {get_resource: ControllerPuppetConfig}
- input_values:
- step: 1
- update_identifier: {get_param: DeployIdentifier}
-
- ControllerServicesBaseDeployment_Step2:
- type: OS::Heat::StructuredDeployments
- depends_on: ControllerLoadBalancerDeployment_Step1
- properties:
- name: ControllerServicesBaseDeployment_Step2
- servers: {get_param: servers}
- config: {get_resource: ControllerPuppetConfig}
- input_values:
- step: 2
- update_identifier: {get_param: DeployIdentifier}
-
- ControllerOvercloudServicesDeployment_Step3:
- type: OS::Heat::StructuredDeployments
- depends_on: ControllerServicesBaseDeployment_Step2
- properties:
- name: ControllerOvercloudServicesDeployment_Step3
- servers: {get_param: servers}
- config: {get_resource: ControllerPuppetConfig}
- input_values:
- step: 3
- update_identifier: {get_param: DeployIdentifier}
-
- ControllerOvercloudServicesDeployment_Step4:
- type: OS::Heat::StructuredDeployments
- depends_on: ControllerOvercloudServicesDeployment_Step3
- properties:
- name: ControllerOvercloudServicesDeployment_Step4
- servers: {get_param: servers}
- config: {get_resource: ControllerPuppetConfig}
- input_values:
- step: 4
- update_identifier: {get_param: DeployIdentifier}
-
- ControllerOvercloudServicesDeployment_Step5:
- type: OS::Heat::StructuredDeployments
- depends_on: ControllerOvercloudServicesDeployment_Step4
- properties:
- name: ControllerOvercloudServicesDeployment_Step5
- servers: {get_param: servers}
- config: {get_resource: ControllerPuppetConfig}
- input_values:
- step: 5
- update_identifier: {get_param: DeployIdentifier}
-
- ControllerPostPuppet:
- type: OS::TripleO::Tasks::ControllerPostPuppet
- depends_on: ControllerOvercloudServicesDeployment_Step5
- properties:
- servers: {get_param: servers}
- input_values:
- update_identifier: {get_param: DeployIdentifier}
-
- # 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}
diff --git a/puppet/objectstorage-config.yaml b/puppet/objectstorage-config.yaml
new file mode 100644
index 00000000..1dee8e60
--- /dev/null
+++ b/puppet/objectstorage-config.yaml
@@ -0,0 +1,38 @@
+heat_template_version: 2015-04-30
+
+description: >
+ A software config which runs manifests/overcloud_object.pp
+
+parameters:
+ ConfigDebug:
+ default: false
+ description: Whether to run config management (e.g. Puppet) in debug mode.
+ type: boolean
+ StepConfig:
+ type: string
+ description: Config manifests that will be used to step through the deployment.
+ default: ''
+
+resources:
+
+ ObjectStoragePuppetConfigImpl:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ options:
+ enable_debug: {get_param: ConfigDebug}
+ enable_hiera: True
+ enable_facter: False
+ modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
+ outputs:
+ - name: result
+ config:
+ list_join:
+ - ''
+ - - get_file: manifests/overcloud_object.pp
+ - {get_param: StepConfig}
+
+outputs:
+ OS::stack_id:
+ description: The software config which runs overcloud_controller.pp
+ value: {get_resource: ObjectStoragePuppetConfigImpl}
diff --git a/puppet/post.yaml b/puppet/post.yaml
new file mode 100644
index 00000000..8f57b34e
--- /dev/null
+++ b/puppet/post.yaml
@@ -0,0 +1,644 @@
+heat_template_version: 2016-10-14
+
+description: >
+ Post-deploy configuration steps via puppet for all roles,
+ Controller, Compute, BlockStorage, SwiftStorage and CephStorage.
+
+parameters:
+ servers:
+ type: json
+ description: Mapping of Role name e.g Controller to a list of servers
+
+ role_data:
+ type: json
+ description: Mapping of Role name e.g Controller to the per-role data
+
+ DeployIdentifier:
+ default: ''
+ type: string
+ description: >
+ Setting this to a unique value will re-run any deployment tasks which
+ perform configuration on a Heat stack-update.
+
+resources:
+ # Post deployment steps for all roles
+ # A single config is re-applied with an incrementing step number
+ # Controller Role steps
+ ControllerArtifactsConfig:
+ type: deploy-artifacts.yaml
+
+ ControllerArtifactsDeploy:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ servers: {get_param: [servers, Controller]}
+ config: {get_resource: ControllerArtifactsConfig}
+
+ ControllerPreConfig:
+ type: OS::TripleO::Tasks::ControllerPreConfig
+ properties:
+ servers: {get_param: [servers, Controller]}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ ControllerConfig:
+ type: OS::TripleO::ControllerConfig
+ properties:
+ StepConfig: {get_param: [role_data, Controller, step_config]}
+
+ # Step through a series of configuration steps
+ ControllerDeployment_Step1:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on: [ControllerPreConfig, ControllerArtifactsDeploy]
+ properties:
+ name: ControllerDeployment_Step1
+ servers: {get_param: [servers, Controller]}
+ config: {get_resource: ControllerConfig}
+ input_values:
+ step: 1
+ update_identifier: {get_param: DeployIdentifier}
+
+ ControllerDeployment_Step2:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step1
+ - ComputeDeployment_Step1
+ - BlockStorageDeployment_Step1
+ - ObjectStorageDeployment_Step1
+ - CephStorageDeployment_Step1
+ properties:
+ name: ControllerDeployment_Step2
+ servers: {get_param: [servers, Controller]}
+ config: {get_resource: ControllerConfig}
+ input_values:
+ step: 2
+ update_identifier: {get_param: DeployIdentifier}
+
+ ControllerDeployment_Step3:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step2
+ - ComputeDeployment_Step2
+ - BlockStorageDeployment_Step2
+ - ObjectStorageDeployment_Step2
+ - CephStorageDeployment_Step2
+ properties:
+ name: ControllerDeployment_Step3
+ servers: {get_param: [servers, Controller]}
+ config: {get_resource: ControllerConfig}
+ input_values:
+ step: 3
+ update_identifier: {get_param: DeployIdentifier}
+
+ ControllerDeployment_Step4:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step3
+ - ComputeDeployment_Step3
+ - BlockStorageDeployment_Step3
+ - ObjectStorageDeployment_Step3
+ - CephStorageDeployment_Step3
+ properties:
+ name: ControllerDeployment_Step4
+ servers: {get_param: [servers, Controller]}
+ config: {get_resource: ControllerConfig}
+ input_values:
+ step: 4
+ update_identifier: {get_param: DeployIdentifier}
+
+ ControllerDeployment_Step5:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step4
+ - ComputeDeployment_Step4
+ - BlockStorageDeployment_Step4
+ - ObjectStorageDeployment_Step4
+ - CephStorageDeployment_Step4
+ properties:
+ name: ControllerDeployment_Step5
+ servers: {get_param: [servers, Controller]}
+ config: {get_resource: ControllerConfig}
+ input_values:
+ step: 5
+ update_identifier: {get_param: DeployIdentifier}
+
+ ControllerPostConfig:
+ type: OS::TripleO::Tasks::ControllerPostConfig
+ depends_on:
+ - ControllerDeployment_Step5
+ - ComputeDeployment_Step5
+ - BlockStorageDeployment_Step5
+ - ObjectStorageDeployment_Step5
+ - CephStorageDeployment_Step5
+ properties:
+ servers: {get_param: servers}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ControllerExtraConfigPost:
+ depends_on:
+ - ControllerPostConfig
+ - ComputePostConfig
+ - BlockStoragePostConfig
+ - ObjectStoragePostConfig
+ - CephStoragePostConfig
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: [servers, Controller]}
+
+ # Compute Role steps
+ ComputeArtifactsConfig:
+ type: deploy-artifacts.yaml
+
+ ComputeArtifactsDeploy:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ servers: {get_param: [servers, Compute]}
+ config: {get_resource: ComputeArtifactsConfig}
+
+ ComputePreConfig:
+ type: OS::TripleO::Tasks::ComputePreConfig
+ properties:
+ servers: {get_param: [servers, Compute]}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ ComputeConfig:
+ type: OS::TripleO::ComputeConfig
+ properties:
+ StepConfig: {get_param: [role_data, Compute, step_config]}
+
+ # Step through a series of configuration steps
+ ComputeDeployment_Step1:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on: [ComputePreConfig, ComputeArtifactsDeploy]
+ properties:
+ name: ComputeDeployment_Step1
+ servers: {get_param: [servers, Compute]}
+ config: {get_resource: ComputeConfig}
+ input_values:
+ step: 1
+ update_identifier: {get_param: DeployIdentifier}
+
+ ComputeDeployment_Step2:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step1
+ - ComputeDeployment_Step1
+ - BlockStorageDeployment_Step1
+ - ObjectStorageDeployment_Step1
+ - CephStorageDeployment_Step1
+ properties:
+ name: ComputeDeployment_Step2
+ servers: {get_param: [servers, Compute]}
+ config: {get_resource: ComputeConfig}
+ input_values:
+ step: 2
+ update_identifier: {get_param: DeployIdentifier}
+
+ ComputeDeployment_Step3:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step2
+ - ComputeDeployment_Step2
+ - BlockStorageDeployment_Step2
+ - ObjectStorageDeployment_Step2
+ - CephStorageDeployment_Step2
+ properties:
+ name: ComputeDeployment_Step3
+ servers: {get_param: [servers, Compute]}
+ config: {get_resource: ComputeConfig}
+ input_values:
+ step: 3
+ update_identifier: {get_param: DeployIdentifier}
+
+ ComputeDeployment_Step4:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step3
+ - ComputeDeployment_Step3
+ - BlockStorageDeployment_Step3
+ - ObjectStorageDeployment_Step3
+ - CephStorageDeployment_Step3
+ properties:
+ name: ComputeDeployment_Step4
+ servers: {get_param: [servers, Compute]}
+ config: {get_resource: ComputeConfig}
+ input_values:
+ step: 4
+ update_identifier: {get_param: DeployIdentifier}
+
+ ComputeDeployment_Step5:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step4
+ - ComputeDeployment_Step4
+ - BlockStorageDeployment_Step4
+ - ObjectStorageDeployment_Step4
+ - CephStorageDeployment_Step4
+ properties:
+ name: ComputeDeployment_Step5
+ servers: {get_param: [servers, Compute]}
+ config: {get_resource: ComputeConfig}
+ input_values:
+ step: 5
+ update_identifier: {get_param: DeployIdentifier}
+
+ ComputePostConfig:
+ type: OS::TripleO::Tasks::ComputePostConfig
+ depends_on:
+ - ControllerDeployment_Step5
+ - ComputeDeployment_Step5
+ - BlockStorageDeployment_Step5
+ - ObjectStorageDeployment_Step5
+ - CephStorageDeployment_Step5
+ properties:
+ servers: {get_param: servers}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ComputeExtraConfigPost:
+ depends_on:
+ - ControllerPostConfig
+ - ComputePostConfig
+ - BlockStoragePostConfig
+ - ObjectStoragePostConfig
+ - CephStoragePostConfig
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: [servers, Compute]}
+
+ # BlockStorage Role steps
+ BlockStorageArtifactsConfig:
+ type: deploy-artifacts.yaml
+
+ BlockStorageArtifactsDeploy:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ servers: {get_param: [servers, BlockStorage]}
+ config: {get_resource: BlockStorageArtifactsConfig}
+
+ BlockStoragePreConfig:
+ type: OS::TripleO::Tasks::BlockStoragePreConfig
+ properties:
+ servers: {get_param: [servers, BlockStorage]}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ BlockStorageConfig:
+ type: OS::TripleO::BlockStorageConfig
+ properties:
+ StepConfig: {get_param: [role_data, BlockStorage, step_config]}
+
+ # Step through a series of configuration steps
+ BlockStorageDeployment_Step1:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on: [BlockStoragePreConfig, BlockStorageArtifactsDeploy]
+ properties:
+ name: BlockStorageDeployment_Step1
+ servers: {get_param: [servers, BlockStorage]}
+ config: {get_resource: BlockStorageConfig}
+ input_values:
+ step: 1
+ update_identifier: {get_param: DeployIdentifier}
+
+ BlockStorageDeployment_Step2:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step1
+ - ComputeDeployment_Step1
+ - BlockStorageDeployment_Step1
+ - ObjectStorageDeployment_Step1
+ - CephStorageDeployment_Step1
+ properties:
+ name: BlockStorageDeployment_Step2
+ servers: {get_param: [servers, BlockStorage]}
+ config: {get_resource: BlockStorageConfig}
+ input_values:
+ step: 2
+ update_identifier: {get_param: DeployIdentifier}
+
+ BlockStorageDeployment_Step3:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step2
+ - ComputeDeployment_Step2
+ - BlockStorageDeployment_Step2
+ - ObjectStorageDeployment_Step2
+ - CephStorageDeployment_Step2
+ properties:
+ name: BlockStorageDeployment_Step3
+ servers: {get_param: [servers, BlockStorage]}
+ config: {get_resource: BlockStorageConfig}
+ input_values:
+ step: 3
+ update_identifier: {get_param: DeployIdentifier}
+
+ BlockStorageDeployment_Step4:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step3
+ - ComputeDeployment_Step3
+ - BlockStorageDeployment_Step3
+ - ObjectStorageDeployment_Step3
+ - CephStorageDeployment_Step3
+ properties:
+ name: BlockStorageDeployment_Step4
+ servers: {get_param: [servers, BlockStorage]}
+ config: {get_resource: BlockStorageConfig}
+ input_values:
+ step: 4
+ update_identifier: {get_param: DeployIdentifier}
+
+ BlockStorageDeployment_Step5:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step4
+ - ComputeDeployment_Step4
+ - BlockStorageDeployment_Step4
+ - ObjectStorageDeployment_Step4
+ - CephStorageDeployment_Step4
+ properties:
+ name: BlockStorageDeployment_Step5
+ servers: {get_param: [servers, BlockStorage]}
+ config: {get_resource: BlockStorageConfig}
+ input_values:
+ step: 5
+ update_identifier: {get_param: DeployIdentifier}
+
+ BlockStoragePostConfig:
+ type: OS::TripleO::Tasks::BlockStoragePostConfig
+ depends_on:
+ - ControllerDeployment_Step5
+ - ComputeDeployment_Step5
+ - BlockStorageDeployment_Step5
+ - ObjectStorageDeployment_Step5
+ - CephStorageDeployment_Step5
+ properties:
+ servers: {get_param: servers}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ BlockStorageExtraConfigPost:
+ depends_on:
+ - ControllerPostConfig
+ - ComputePostConfig
+ - BlockStoragePostConfig
+ - ObjectStoragePostConfig
+ - CephStoragePostConfig
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: [servers, BlockStorage]}
+
+ # ObjectStorage Role steps
+ ObjectStorageArtifactsConfig:
+ type: deploy-artifacts.yaml
+
+ ObjectStorageArtifactsDeploy:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ servers: {get_param: [servers, ObjectStorage]}
+ config: {get_resource: ObjectStorageArtifactsConfig}
+
+ ObjectStoragePreConfig:
+ type: OS::TripleO::Tasks::ObjectStoragePreConfig
+ properties:
+ servers: {get_param: [servers, ObjectStorage]}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ ObjectStorageConfig:
+ type: OS::TripleO::ObjectStorageConfig
+ properties:
+ StepConfig: {get_param: [role_data, ObjectStorage, step_config]}
+
+ # Step through a series of configuration steps
+ ObjectStorageDeployment_Step1:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on: [ObjectStoragePreConfig, ObjectStorageArtifactsDeploy]
+ properties:
+ name: ObjectStorageDeployment_Step1
+ servers: {get_param: [servers, ObjectStorage]}
+ config: {get_resource: ObjectStorageConfig}
+ input_values:
+ step: 1
+ update_identifier: {get_param: DeployIdentifier}
+
+ ObjectStorageDeployment_Step2:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step1
+ - ComputeDeployment_Step1
+ - BlockStorageDeployment_Step1
+ - ObjectStorageDeployment_Step1
+ - CephStorageDeployment_Step1
+ properties:
+ name: ObjectStorageDeployment_Step2
+ servers: {get_param: [servers, ObjectStorage]}
+ config: {get_resource: ObjectStorageConfig}
+ input_values:
+ step: 2
+ update_identifier: {get_param: DeployIdentifier}
+
+ ObjectStorageDeployment_Step3:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step2
+ - ComputeDeployment_Step2
+ - BlockStorageDeployment_Step2
+ - ObjectStorageDeployment_Step2
+ - CephStorageDeployment_Step2
+ properties:
+ name: ObjectStorageDeployment_Step3
+ servers: {get_param: [servers, ObjectStorage]}
+ config: {get_resource: ObjectStorageConfig}
+ input_values:
+ step: 3
+ update_identifier: {get_param: DeployIdentifier}
+
+ ObjectStorageDeployment_Step4:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step3
+ - ComputeDeployment_Step3
+ - BlockStorageDeployment_Step3
+ - ObjectStorageDeployment_Step3
+ - CephStorageDeployment_Step3
+ properties:
+ name: ObjectStorageDeployment_Step4
+ servers: {get_param: [servers, ObjectStorage]}
+ config: {get_resource: ObjectStorageConfig}
+ input_values:
+ step: 4
+ update_identifier: {get_param: DeployIdentifier}
+
+ ObjectStorageDeployment_Step5:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step4
+ - ComputeDeployment_Step4
+ - BlockStorageDeployment_Step4
+ - ObjectStorageDeployment_Step4
+ - CephStorageDeployment_Step4
+ properties:
+ name: ObjectStorageDeployment_Step5
+ servers: {get_param: [servers, ObjectStorage]}
+ config: {get_resource: ObjectStorageConfig}
+ input_values:
+ step: 5
+ update_identifier: {get_param: DeployIdentifier}
+
+ ObjectStoragePostConfig:
+ type: OS::TripleO::Tasks::ObjectStoragePostConfig
+ depends_on:
+ - ControllerDeployment_Step5
+ - ComputeDeployment_Step5
+ - BlockStorageDeployment_Step5
+ - ObjectStorageDeployment_Step5
+ - CephStorageDeployment_Step5
+ properties:
+ servers: {get_param: servers}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ObjectStorageExtraConfigPost:
+ depends_on:
+ - ControllerPostConfig
+ - ComputePostConfig
+ - BlockStoragePostConfig
+ - ObjectStoragePostConfig
+ - CephStoragePostConfig
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: [servers, ObjectStorage]}
+
+ # CephStorage Role steps
+ CephStorageArtifactsConfig:
+ type: deploy-artifacts.yaml
+
+ CephStorageArtifactsDeploy:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ servers: {get_param: [servers, CephStorage]}
+ config: {get_resource: CephStorageArtifactsConfig}
+
+ CephStoragePreConfig:
+ type: OS::TripleO::Tasks::CephStoragePreConfig
+ properties:
+ servers: {get_param: [servers, CephStorage]}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ CephStorageConfig:
+ type: OS::TripleO::CephStorageConfig
+ properties:
+ StepConfig: {get_param: [role_data, CephStorage, step_config]}
+
+ # Step through a series of configuration steps
+ CephStorageDeployment_Step1:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on: [CephStoragePreConfig, CephStorageArtifactsDeploy]
+ properties:
+ name: CephStorageDeployment_Step1
+ servers: {get_param: [servers, CephStorage]}
+ config: {get_resource: CephStorageConfig}
+ input_values:
+ step: 1
+ update_identifier: {get_param: DeployIdentifier}
+
+ CephStorageDeployment_Step2:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step1
+ - ComputeDeployment_Step1
+ - BlockStorageDeployment_Step1
+ - ObjectStorageDeployment_Step1
+ - CephStorageDeployment_Step1
+ properties:
+ name: CephStorageDeployment_Step2
+ servers: {get_param: [servers, CephStorage]}
+ config: {get_resource: CephStorageConfig}
+ input_values:
+ step: 2
+ update_identifier: {get_param: DeployIdentifier}
+
+ CephStorageDeployment_Step3:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step2
+ - ComputeDeployment_Step2
+ - BlockStorageDeployment_Step2
+ - ObjectStorageDeployment_Step2
+ - CephStorageDeployment_Step2
+ properties:
+ name: CephStorageDeployment_Step3
+ servers: {get_param: [servers, CephStorage]}
+ config: {get_resource: CephStorageConfig}
+ input_values:
+ step: 3
+ update_identifier: {get_param: DeployIdentifier}
+
+ CephStorageDeployment_Step4:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step3
+ - ComputeDeployment_Step3
+ - BlockStorageDeployment_Step3
+ - ObjectStorageDeployment_Step3
+ - CephStorageDeployment_Step3
+ properties:
+ name: CephStorageDeployment_Step4
+ servers: {get_param: [servers, CephStorage]}
+ config: {get_resource: CephStorageConfig}
+ input_values:
+ step: 4
+ update_identifier: {get_param: DeployIdentifier}
+
+ CephStorageDeployment_Step5:
+ type: OS::Heat::StructuredDeploymentGroup
+ depends_on:
+ - ControllerDeployment_Step4
+ - ComputeDeployment_Step4
+ - BlockStorageDeployment_Step4
+ - ObjectStorageDeployment_Step4
+ - CephStorageDeployment_Step4
+ properties:
+ name: CephStorageDeployment_Step5
+ servers: {get_param: [servers, CephStorage]}
+ config: {get_resource: CephStorageConfig}
+ input_values:
+ step: 5
+ update_identifier: {get_param: DeployIdentifier}
+
+ CephStoragePostConfig:
+ type: OS::TripleO::Tasks::CephStoragePostConfig
+ depends_on:
+ - ControllerDeployment_Step5
+ - ComputeDeployment_Step5
+ - BlockStorageDeployment_Step5
+ - ObjectStorageDeployment_Step5
+ - CephStorageDeployment_Step5
+ properties:
+ servers: {get_param: servers}
+ input_values:
+ update_identifier: {get_param: DeployIdentifier}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ CephStorageExtraConfigPost:
+ depends_on:
+ - ControllerPostConfig
+ - ComputePostConfig
+ - BlockStoragePostConfig
+ - ObjectStoragePostConfig
+ - CephStoragePostConfig
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: [servers, CephStorage]}
diff --git a/puppet/services/README.rst b/puppet/services/README.rst
index 15c8c1f1..8fe51fa3 100644
--- a/puppet/services/README.rst
+++ b/puppet/services/README.rst
@@ -31,6 +31,8 @@ are re-asserted when applying latter ones.
* config_settings: Custom hiera settings for this service.
+ * global_config_settings: Additional hiera settings distributed to all roles.
+
* step_config: A puppet manifest that is used to step through the deployment
sequence. Each sequence is given a "step" (via hiera('step') that provides
information for when puppet classes should activate themselves.
diff --git a/puppet/services/services.yaml b/puppet/services/services.yaml
index 669e2872..b54a6d7a 100644
--- a/puppet/services/services.yaml
+++ b/puppet/services/services.yaml
@@ -54,4 +54,9 @@ outputs:
expression: list($.data.subscriptions.where($ != null))
data: {subscriptions: {get_attr: [ServiceChain, role_data, monitoring_subscription]}}
config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}}
+ global_config_settings:
+ map_merge:
+ yaql:
+ expression: list($.data.configs.where($ != null))
+ data: {configs: {get_attr: [ServiceChain, role_data, global_config_settings]}}
step_config: {list_join: ["\n", {get_attr: [ServiceChain, role_data, step_config]}]}
diff --git a/puppet/swift-storage-post.yaml b/puppet/swift-storage-post.yaml
deleted file mode 100644
index ebc54ab0..00000000
--- a/puppet/swift-storage-post.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-heat_template_version: 2015-04-30
-description: 'OpenStack swift storage 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
- RoleData:
- type: json
- default: {}
- DeployIdentifier:
- type: string
- default: ''
- description: Value which changes if the node configuration may need to be re-applied
-
-resources:
-
- StorageArtifactsConfig:
- type: deploy-artifacts.yaml
-
- StorageArtifactsDeploy:
- type: OS::Heat::StructuredDeployments
- properties:
- servers: {get_param: servers}
- config: {get_resource: StorageArtifactsConfig}
- input_values:
- update_identifier: {get_param: DeployIdentifier}
-
- StoragePuppetConfig:
- type: OS::Heat::SoftwareConfig
- properties:
- group: puppet
- options:
- enable_debug: {get_param: ConfigDebug}
- enable_hiera: True
- enable_facter: False
- modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
- inputs:
- - name: step
- outputs:
- - name: result
- config:
- list_join:
- - ''
- - - get_file: manifests/overcloud_object.pp
- - {get_param: [RoleData, step_config]}
-
- StorageRingbuilderDeployment_Step2:
- type: OS::Heat::StructuredDeployments
- depends_on: StorageArtifactsDeploy
- properties:
- name: StorageRingbuilderDeployment_Step2
- servers: {get_param: servers}
- config: {get_resource: StoragePuppetConfig}
- input_values:
- step: 2
- update_identifier: {get_param: DeployIdentifier}
-
- StorageRingbuilderDeployment_Step3:
- type: OS::Heat::StructuredDeployments
- depends_on: StorageRingbuilderDeployment_Step2
- properties:
- name: StorageRingbuilderDeployment_Step3
- servers: {get_param: servers}
- config: {get_resource: StoragePuppetConfig}
- input_values:
- step: 3
- update_identifier: {get_param: DeployIdentifier}
-
- StorageDeployment_Step4:
- type: OS::Heat::StructuredDeployments
- depends_on: StorageRingbuilderDeployment_Step3
- properties:
- name: StorageDeployment_Step4
- servers: {get_param: servers}
- config: {get_resource: StoragePuppetConfig}
- input_values:
- step: 4
- update_identifier: {get_param: DeployIdentifier}
-
- # Note, this should come last, so use depends_on to ensure
- # this is created after any other resources.
- ExtraConfig:
- depends_on: StorageDeployment_Step4
- type: OS::TripleO::NodeExtraConfigPost
- properties:
- servers: {get_param: servers}
-