44ef2a3ec1
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
60 lines
2.1 KiB
YAML
60 lines
2.1 KiB
YAML
heat_template_version: rocky
|
|
|
|
# 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
|
|
mkdir -p /home/$user/.ssh
|
|
chmod 700 /home/$user/.ssh
|
|
os-apply-config --key public-keys.0.openssh-key --type raw > /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}
|