c9991c2e31
With I57047682cfa82ba6ca4affff54fab5216e9ba51c Heat has added a new template version for wallaby. This would allow us to use 2-argument variant of the ``if`` function that would allow for e.g. conditional definition of resource properties and help cleanup templates. If only two arguments are passed to ``if`` function, the entire enclosing item is removed when the condition is false. Change-Id: I25f981b60c6a66b39919adc38c02a051b6c51269
50 lines
1.4 KiB
YAML
50 lines
1.4 KiB
YAML
heat_template_version: wallaby
|
|
|
|
description: Template file to add a swap partition to a node.
|
|
|
|
parameters:
|
|
servers:
|
|
type: json
|
|
swap_partition_label:
|
|
type: string
|
|
description: Swap partition label
|
|
default: 'swap1'
|
|
|
|
resources:
|
|
SwapConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config: |
|
|
#!/bin/bash
|
|
set -eux
|
|
if [ -e "/dev/disk/by-label/${swap_partition_label}" ]; then
|
|
swap_partition=$(realpath /dev/disk/by-label/${swap_partition_label})
|
|
if ! grep -qe "${swap_partition}" /etc/fstab; then
|
|
echo "$swap_partition swap swap defaults 0 0" | tee -a /etc/fstab
|
|
fi
|
|
else
|
|
for item in $(lsblk -f --output FSTYPE,UUID | awk '/swap/ {print $2}'); do
|
|
if ! grep -qe "${item}" /etc/fstab; then
|
|
echo -e "UUID=${item} swap swap defaults 0 0" | tee -a /etc/fstab
|
|
fi
|
|
done
|
|
fi
|
|
swapon -a
|
|
inputs:
|
|
- name: swap_partition_label
|
|
description: Swap partition label
|
|
default: 'swap1'
|
|
|
|
{% for role in roles %}
|
|
{{role.name}}SwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
name: {{role.name}}SwapDeployment
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
input_values:
|
|
swap_partition_label: {get_param: swap_partition_label}
|
|
actions: ["CREATE"]
|
|
{% endfor %}
|