3c6ec654b4
Heat now supports release name aliases, so we can replace the inconsistent mix of date related versions with one consistent version that aligns with the supported version of heat for this t-h-t branch. This should also help new users who sometimes copy/paste old templates and discover intrinsic functions in the t-h-t docs don't work because their template version is too old. Change-Id: Ib415e7290fea27447460baa280291492df197e54
61 lines
2.2 KiB
YAML
61 lines
2.2 KiB
YAML
heat_template_version: ocata
|
|
|
|
# NOTE: You don't need to pass the parameter explicitly from the
|
|
# parent template, it can be specified via the parameter_defaults
|
|
# in the resource_registry instead, if you want to override the default
|
|
# and/or share values with other templates in the tree.
|
|
parameters:
|
|
extra_username:
|
|
type: string
|
|
default: extrauser
|
|
|
|
description: >
|
|
This is an example showing how you can do firstboot configuration
|
|
of the nodes via cloud-init. To enable this, replace the default
|
|
mapping of OS::TripleO::NodeUserData in ../overcloud_resource_registry*
|
|
|
|
resources:
|
|
userdata:
|
|
type: OS::Heat::MultipartMime
|
|
properties:
|
|
parts:
|
|
- config: {get_resource: user_config}
|
|
- config: {get_resource: ssh_config}
|
|
|
|
# Get cloud-init to create an extra user, in addition to the default for the
|
|
# distro. Note there are various options, including configuring ssh keys,
|
|
# but atm I can only see how to specify the keys explicitly, not via metadata
|
|
user_config:
|
|
type: OS::Heat::CloudConfig
|
|
properties:
|
|
cloud_config:
|
|
users:
|
|
- default
|
|
- name: {get_param: extra_username}
|
|
|
|
# Setup ssh key for the extra user to match the key installed for the default
|
|
# user, e.g that provided via the nova keypair on instance boot
|
|
ssh_config:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
config:
|
|
str_replace:
|
|
template: |
|
|
#!/bin/bash
|
|
curl http://169.254.169.254/openstack/2012-08-10/meta_data.json -o /root/meta_data.json
|
|
mkdir -p /home/$user/.ssh
|
|
chmod 700 /home/$user/.ssh
|
|
cat /root/meta_data.json | jq -r ".keys[0].data" > /home/$user/.ssh/authorized_keys
|
|
chmod 600 /home/$user/.ssh/authorized_keys
|
|
chown -R $user:$user /home/$user/.ssh
|
|
params:
|
|
$user: {get_param: extra_username}
|
|
|
|
outputs:
|
|
# This means get_resource from the parent template will get the userdata, see:
|
|
# http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent
|
|
# Note this is new-for-kilo, an alternative is returning a value then using
|
|
# get_attr in the parent template instead.
|
|
OS::stack_id:
|
|
value: {get_resource: userdata}
|