From 94f580370d1104fb0f0d076cd3c3fd572cd961e8 Mon Sep 17 00:00:00 2001 From: James Slagle Date: Sun, 6 Mar 2016 16:02:24 -0500 Subject: Add an environment to use a swap partition 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 --- extraconfig/all_nodes/swap-partition.yaml | 90 +++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 extraconfig/all_nodes/swap-partition.yaml (limited to 'extraconfig/all_nodes') diff --git a/extraconfig/all_nodes/swap-partition.yaml b/extraconfig/all_nodes/swap-partition.yaml new file mode 100644 index 00000000..89a2adb0 --- /dev/null +++ b/extraconfig/all_nodes/swap-partition.yaml @@ -0,0 +1,90 @@ +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 -- cgit 1.2.3-korg