You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
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 %}
|
|
|