54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
heat_template_version: queens
|
|
|
|
description: Template file to add a swap file to a node.
|
|
|
|
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:
|
|
name: {{role.name}}SwapDeployment
|
|
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 %}
|