tripleo-heat-templates/extraconfig/all_nodes/swap.j2.yaml
Michele Baldessari 9393a3e2a5 get_param calls with multiple arguments need brackets around them
This issue was spotted during major upgrade where we had calls like
this:

   servers: {get_param: servers, Controller}

These get_param calls are hanging indefinitely and make the whole
upgrade end in a timeout. We need to put brackets around the get_param
function when there are multiple arguments:
http://docs.openstack.org/developer/heat/template_guide/hot_spec.html#get-param

This is already done in most of the tree, and the few places where this
was not happening were parts not under CI. After this change the
following grep returns only one false positive:

   grep -ir get_param: |grep -v -- '\[' |grep ','

Change-Id: I65b23bb44f37b93e017dd15a5212939ffac76614
Closes-Bug: #1626628
2016-09-25 22:05:00 +02:00

59 lines
1.6 KiB
YAML

heat_template_version: 2014-10-16
description: >
Extra config to add swap space to 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:
servers:
type: json
swap_size_megabytes:
type: string
description: Amount of swap space to allocate in megabytes
default: '4096'
swap_path:
type: string
description: Full path to location of swap file
default: '/swap'
resources:
SwapConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: |
#!/bin/bash
set -eux
if [ ! -f $swap_path ]; then
dd if=/dev/zero of=$swap_path count=$swap_size_megabytes bs=1M
chmod 0600 $swap_path
mkswap $swap_path
swapon $swap_path
else
echo "$swap_path already exists"
fi
echo "$swap_path swap swap defaults 0 0" >> /etc/fstab
inputs:
- name: swap_size_megabytes
description: Amount of swap space to allocate in megabytes
default: '4096'
- name: swap_path
description: Full path to location of swap file
default: '/swap'
{% for role in roles %}
{{role.name}}SwapDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
config: {get_resource: SwapConfig}
servers: {get_param: [servers, {{role.name}}]}
input_values:
swap_size_megabytes: {get_param: swap_size_megabytes}
swap_path: {get_param: swap_path}
actions: ["CREATE"]
{% endfor %}