aboutsummaryrefslogtreecommitdiffstats
path: root/extraconfig/all_nodes/mac_hostname.yaml
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2016-09-08 12:14:09 +0100
committerEmilien Macchi <emilien@redhat.com>2016-09-16 00:24:44 +0000
commitb738e9ca7839772065f3db3ea29b057a7152eed5 (patch)
tree5d7d23590963a77bb10cef9ae76e8f1f55574728 /extraconfig/all_nodes/mac_hostname.yaml
parent3a8d20a63dccc61c958e09a7fcbbaab6690551b4 (diff)
Convert AllNodesExtraConfig to support composable roles
This adjusts the interface to OS::TripleO::AllNodesExtraConfig so it supports custom/composable/optional roles. Note this does break backwards compatibility, and I can't see any way to avoid that. I've converted the in-tree templates, and we'll have to document carefully and or provide a script (or automated conversion via mistral perhaps?) to allow folks to easily adjust any out of tree templates to the new format. Basically you just have to: 1. Remove all the *_servers parameters, replace with one "servers" json parameter 2. Replace references to e.g "controller_servers" with "servers, Controller" which does a path-based lookup into the json map provided by overcloud.yaml Change-Id: I5eebf853646b2f6300d6b542fcd4f43e82d3b413 Partially-Implements: blueprint custom-roles
Diffstat (limited to 'extraconfig/all_nodes/mac_hostname.yaml')
-rw-r--r--extraconfig/all_nodes/mac_hostname.yaml115
1 files changed, 0 insertions, 115 deletions
diff --git a/extraconfig/all_nodes/mac_hostname.yaml b/extraconfig/all_nodes/mac_hostname.yaml
deleted file mode 100644
index 7d8704e3..00000000
--- a/extraconfig/all_nodes/mac_hostname.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Example extra config for cluster config
- this example collects the hostname and MAC addresses for each node in
- the deployment, then distributes that info to all Controller nodes.
-
-# Parameters passed from the parent template - note if you maintain
-# out-of-tree templates they may require additional parameters if the
-# in-tree templates add a new role.
-parameters:
- controller_servers:
- type: json
- compute_servers:
- type: json
- blockstorage_servers:
- type: json
- objectstorage_servers:
- type: json
- cephstorage_servers:
- type: json
-# Note extra parameters can be defined, then passed data via the
-# environment parameter_defaults, without modifying the parent template
-
-resources:
-
- CollectMacConfig:
- type: OS::Heat::SoftwareConfig
- properties:
- group: script
- config: |
- #!/bin/sh
- MACS=$(ifconfig | grep ether | awk '{print $2}' | tr "\n" " ")
- HOSTNAME=$(hostname -s)
- echo "$HOSTNAME $MACS"
-
- # FIXME(shardy): Long term it'd be better if Heat SoftwareDeployments accepted
- # list instead of a map, then we could join the lists of servers into one
- # deployment instead of requiring one deployment per-role.
- CollectMacDeploymentsController:
- type: OS::Heat::SoftwareDeployments
- properties:
- name: CollectMacDeploymentsController
- servers: {get_param: controller_servers}
- config: {get_resource: CollectMacConfig}
- actions: ['CREATE'] # Only do this on CREATE
-
- CollectMacDeploymentsCompute:
- type: OS::Heat::SoftwareDeployments
- properties:
- name: CollectMacDeploymentsCompute
- servers: {get_param: compute_servers}
- config: {get_resource: CollectMacConfig}
- actions: ['CREATE'] # Only do this on CREATE
-
- CollectMacDeploymentsBlockStorage:
- type: OS::Heat::SoftwareDeployments
- properties:
- name: CollectMacDeploymentsBlockStorage
- servers: {get_param: blockstorage_servers}
- config: {get_resource: CollectMacConfig}
- actions: ['CREATE'] # Only do this on CREATE
-
- CollectMacDeploymentsObjectStorage:
- type: OS::Heat::SoftwareDeployments
- properties:
- name: CollectMacDeploymentsObjectStorage
- servers: {get_param: objectstorage_servers}
- config: {get_resource: CollectMacConfig}
- actions: ['CREATE'] # Only do this on CREATE
-
- CollectMacDeploymentsCephStorage:
- type: OS::Heat::SoftwareDeployments
- properties:
- name: CollectMacDeploymentsCephStorage
- servers: {get_param: cephstorage_servers}
- config: {get_resource: CollectMacConfig}
- actions: ['CREATE'] # Only do this on CREATE
-
- # Now we distribute all-the-macs to all nodes
- DistributeMacConfig:
- type: OS::Heat::SoftwareConfig
- properties:
- group: script
- inputs:
- - name: controller_mappings
- - name: compute_mappings
- - name: blockstorage_mappings
- - name: objectstorage_mappings
- - name: cephstorage_mappings
- config: |
- #!/bin/sh
- echo $controller_mappings > /root/controller_mappings
- echo $compute_mappings > /root/compute_mappings
- echo $blockstorage_mappings > /root/blockstorage_mappings
- echo $objectstorage_mappings > /root/objectstorage_mappings
- echo $cephstorage_mappings > /root/cephstorage_mappings
- echo "mappings = $(cat /root/*_mappings)"
-
- DistributeMacDeploymentsController:
- type: OS::Heat::SoftwareDeployments
- properties:
- name: DistributeMacDeploymentsController
- servers: {get_param: controller_servers}
- config: {get_resource: DistributeMacConfig}
- input_values:
- # FIXME(shardy): It'd be more convenient if we could join these
- # items together but because the returned format is a map (not a list)
- # we can't use list_join or str_replace. Possible Heat TODO.
- controller_mappings: {get_attr: [CollectMacDeploymentsController, deploy_stdouts]}
- compute_mappings: {get_attr: [CollectMacDeploymentsCompute, deploy_stdouts]}
- blockstorage_mappings: {get_attr: [CollectMacDeploymentsBlockStorage, deploy_stdouts]}
- objectstorage_mappings: {get_attr: [CollectMacDeploymentsObjectStorage, deploy_stdouts]}
- cephstorage_mappings: {get_attr: [CollectMacDeploymentsCephStorage, deploy_stdouts]}
- actions: ['CREATE'] # Only do this on CREATE