9450cc222d
This patch makes it possible to set OS::TripleO::DeployedServer::ControlPlanePort: OS::Heat::None in your resource_registry and thereby avoid the creation of a neutron port for the deployed server. This is useful if you are bootstrapping things in an environment without Neutron. Also, includes a new deployed-server-noop-ctlplane.yaml environment file. Change-Id: I2990dc816698e0f6e3193a8fc7c9c6767c6e50e5
116 lines
3.2 KiB
YAML
116 lines
3.2 KiB
YAML
heat_template_version: 2014-10-16
|
|
parameters:
|
|
image:
|
|
type: string
|
|
default: unused
|
|
flavor:
|
|
type: string
|
|
default: unused
|
|
key_name:
|
|
type: string
|
|
default: unused
|
|
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: ''
|
|
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: {}
|
|
|
|
resources:
|
|
# We just need something which returns a unique ID, but we can't
|
|
# use RandomString because RefId returns the value, not the physical
|
|
# resource ID, SoftwareConfig should work as it returns a UUID
|
|
deployed-server:
|
|
type: OS::TripleO::DeployedServerConfig
|
|
properties:
|
|
user_data_format: SOFTWARE_CONFIG
|
|
|
|
InstanceIdConfig:
|
|
type: OS::Heat::StructuredConfig
|
|
properties:
|
|
group: os-apply-config
|
|
config:
|
|
instance-id: {get_attr: [deployed-server, "OS::stack_id"]}
|
|
|
|
InstanceIdDeployment:
|
|
type: OS::Heat::StructuredDeployment
|
|
properties:
|
|
config: {get_resource: InstanceIdConfig}
|
|
server: {get_resource: deployed-server}
|
|
|
|
HostsEntryConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config: |
|
|
#!/bin/bash
|
|
set -eux
|
|
mkdir -p $heat_outputs_path
|
|
host=$(hostnamectl --static)
|
|
echo -n "$host " > $heat_outputs_path.hosts_entry
|
|
host_ip=$(python -c "import socket; print socket.gethostbyname(\"$host\")")
|
|
echo -n "$host_ip " >> $heat_outputs_path.hosts_entry
|
|
echo >> $heat_outputs_path.hosts_entry
|
|
cat $heat_outputs_path.hosts_entry
|
|
echo -n $host_ip > $heat_outputs_path.ip_address
|
|
cat $heat_outputs_path.ip_address
|
|
echo -n $host > $heat_outputs_path.hostname
|
|
cat $heat_outputs_path.hostname
|
|
outputs:
|
|
- name: hosts_entry
|
|
description: hosts_entry
|
|
- name: ip_address
|
|
description: ip_address
|
|
- name: hostname
|
|
description: hostname
|
|
|
|
HostsEntryDeployment:
|
|
type: OS::Heat::SoftwareDeployment
|
|
properties:
|
|
config: {get_resource: HostsEntryConfig}
|
|
server: {get_resource: deployed-server}
|
|
|
|
ControlPlanePort:
|
|
type: OS::TripleO::DeployedServer::ControlPlanePort
|
|
properties:
|
|
Hostname: {get_attr: [HostsEntryDeployment, hostname]}
|
|
|
|
outputs:
|
|
# FIXME(shardy) this is needed because TemplateResource returns an
|
|
# ARN not a UUID, which overflows the Deployment server_id column..
|
|
OS::stack_id:
|
|
value: {get_attr: [deployed-server, "OS::stack_id"]}
|
|
networks:
|
|
value:
|
|
ctlplane:
|
|
- {get_attr: [ControlPlanePort, ip_address]}
|
|
name:
|
|
value: {get_attr: [HostsEntryDeployment, hostname]}
|
|
hosts_entry:
|
|
value: {get_attr: [HostsEntryDeployment, hosts_entry]}
|
|
ip_address:
|
|
value: {get_attr: [HostsEntryDeployment, ip_address]}
|