94f580370d
This environment can be used with AllNodesExtraConfig to enable swap on a device with the given label as specified by the swap_partition_label parameter. If Ironic is used to create the swap partition, the partition will have a label of swap1, so that's a reasonable default for the parameter. The partition is also written to /etc/fstab as a swap mount so that it will be enabled on reboot. Change-Id: I5cd68c13dbfe53eecf6c6ad93151eadc980a902d
91 lines
2.4 KiB
YAML
91 lines
2.4 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:
|
|
controller_servers:
|
|
type: json
|
|
compute_servers:
|
|
type: json
|
|
blockstorage_servers:
|
|
type: json
|
|
objectstorage_servers:
|
|
type: json
|
|
cephstorage_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
|
|
swap_partition=$(realpath /dev/disk/by-label/$swap_partition_label)
|
|
swapon $swap_partition
|
|
echo "$swap_partition swap swap defaults 0 0" >> /etc/fstab
|
|
inputs:
|
|
- name: swap_partition_label
|
|
description: Swap partition label
|
|
default: 'swap1'
|
|
|
|
ControllerSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: controller_servers}
|
|
input_values:
|
|
swap_partition_label: {get_param: swap_partition_label}
|
|
actions: ["CREATE"]
|
|
|
|
ComputeSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: compute_servers}
|
|
input_values:
|
|
swap_partition_label: {get_param: swap_partition_label}
|
|
actions: ["CREATE"]
|
|
|
|
BlockStorageSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: blockstorage_servers}
|
|
input_values:
|
|
swap_partition_label: {get_param: swap_partition_label}
|
|
actions: ["CREATE"]
|
|
|
|
ObjectStorageSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: objectstorage_servers}
|
|
input_values:
|
|
swap_partition_label: {get_param: swap_partition_label}
|
|
actions: ["CREATE"]
|
|
|
|
CephStorageSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: cephstorage_servers}
|
|
input_values:
|
|
swap_partition_label: {get_param: swap_partition_label}
|
|
actions: ["CREATE"]
|
|
|
|
outputs:
|
|
config_identifier:
|
|
value: none
|