tripleo-heat-templates/deployed-server/deployed-server.yaml
Carlos Camacho 44ef2a3ec1 Change template names to rocky
The new master branch should point now to rocky.

So, HOT templates should specify that they might contain features
for rocky release [1]

Also, this submission updates the yaml validation to use only latest
heat_version alias. There are cases in which we will need to set
the version for specific templates i.e. mixed versions, so there
is added a variable to assign specific templates to specific heat_version
aliases, avoiding the introductions of error by bulk replacing the
the old version in new releases.

[1]: https://docs.openstack.org/heat/latest/template_guide/hot_spec.html#rocky
Change-Id: Ib17526d9cc453516d99d4659ee5fa51a5aa7fb4b
2018-05-09 08:28:42 +02:00

157 lines
4.1 KiB
YAML

heat_template_version: rocky
parameters:
image:
type: string
default: unused
flavor:
type: string
default: unused
key_name:
type: string
default: unused
description: Name of keypair to assign to servers
security_groups:
type: json
default: []
# Require this so we can validate the parent passes the
# correct value
user_data_format:
type: string
user_data:
type: string
default: ''
name:
type: string
default: 'deployed-server'
image_update_policy:
type: string
default: ''
networks:
type: comma_delimited_list
default: ''
metadata:
type: json
default: {}
software_config_transport:
default: POLL_SERVER_CFN
type: string
scheduler_hints:
type: json
description: Optional scheduler hints to pass to nova
default: {}
UpgradeInitCommand:
type: string
description: |
Command or script snippet to run on all overcloud nodes to
initialize the upgrade process. E.g. a repository switch.
default: ''
deployment_swift_data:
type: json
default: {}
ControlPlaneSubnet:
default: ctlplane-subnet
description: The name of the undercloud Neutron control plane subnet
type: string
resources:
deployed-server:
type: OS::Heat::DeployedServer
properties:
name: {get_param: name}
software_config_transport: {get_param: software_config_transport}
deployment_swift_data: {get_param: deployment_swift_data}
UpgradeInitConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
list_join:
- ''
- - "#!/bin/bash\n\n"
- "if [[ -f /etc/resolv.conf.save ]] ; then rm /etc/resolv.conf.save; fi\n\n"
- get_param: UpgradeInitCommand
UpgradeInitDeployment:
type: OS::Heat::SoftwareDeployment
properties:
name: UpgradeInitDeployment
server: {get_resource: deployed-server}
config: {get_resource: UpgradeInitConfig}
InstanceIdConfig:
type: OS::Heat::StructuredConfig
properties:
group: apply-config
config:
instance-id: {get_resource: deployed-server}
InstanceIdDeployment:
type: OS::Heat::StructuredDeployment
properties:
name: InstanceIdDeployment
config: {get_resource: InstanceIdConfig}
server: {get_resource: deployed-server}
depends_on: UpgradeInitDeployment
HostsEntryConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: |
#!/bin/bash
set -eux
mkdir -p $heat_outputs_path
host=$(hostname -s)
echo -n $host > $heat_outputs_path.hostname
cat $heat_outputs_path.hostname
outputs:
- name: hostname
description: hostname
HostsEntryDeployment:
type: OS::Heat::SoftwareDeployment
properties:
name: HostsEntryDeployment
config: {get_resource: HostsEntryConfig}
server: {get_resource: deployed-server}
DeployedServerBootstrapConfig:
type: OS::TripleO::DeployedServer::Bootstrap
properties:
server: {get_resource: deployed-server}
ControlPlanePort:
type: OS::TripleO::DeployedServer::ControlPlanePort
properties:
network: ctlplane
fixed_ips: [{subnet: {get_param: ControlPlaneSubnet}}]
name:
list_join:
- '-'
- - yaql:
expression: switch(not $.data.hostname.isEmpty() => $.data.hostname, $.data.name=>$.data.name)
data:
hostname: {get_attr: [HostsEntryDeployment, hostname]}
name: {get_param: name}
- ctlplane
replacement_policy: AUTO
outputs:
OS::stack_id:
value: {get_resource: deployed-server}
networks:
value:
ctlplane:
- {get_attr: [ControlPlanePort, fixed_ips, 0, ip_address]}
name:
value:
yaql:
expression: switch(not $.data.hostname.isEmpty() => $.data.hostname, $.data.name=>$.data.name)
data:
hostname: {get_attr: [HostsEntryDeployment, hostname]}
name: {get_param: name}
os_collect_config:
value: {get_attr: [deployed-server, os_collect_config]}