heat_template_version: wallaby 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' ControllerSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: ControllerSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, Controller]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"] CellControllerSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: CellControllerSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, CellController]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"] CellControllerComputeSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: CellControllerComputeSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, CellControllerCompute]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"] ComputeSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: ComputeSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, Compute]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"] BlockStorageSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: BlockStorageSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, BlockStorage]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"] ObjectStorageSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: ObjectStorageSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, ObjectStorage]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"] CephStorageSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: CephStorageSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, CephStorage]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"] NetworkerSwapDeployment: type: OS::Heat::SoftwareDeploymentGroup properties: name: NetworkerSwapDeployment config: {get_resource: SwapConfig} servers: {get_param: [servers, Networker]} input_values: swap_size_megabytes: {get_param: swap_size_megabytes} swap_path: {get_param: swap_path} actions: ["CREATE"]