tripleo-heat-templates/extraconfig/all_nodes/swap-partition.j2.yaml
ramishra c9991c2e31 Use 'wallaby' heat_template_version
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
2021-03-31 17:35:12 +05:30

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 %}