570bf54311
Create a new SoftwareDeployment that can be used to add a swap file to all nodes The amount of swap and the location of the swap file can be customized via parameter_defaults and the swap_size_megabytes/swap_path parameters. Change-Id: I1fb14c0fab2255410fceb26c3a7d5cfe0ba57b3b
109 lines
3.0 KiB
YAML
109 lines
3.0 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_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:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: controller_servers}
|
|
input_values:
|
|
swap_size_megabytes: {get_param: swap_size_megabytes}
|
|
swap_path: {get_param: swap_path}
|
|
actions: ["CREATE"]
|
|
|
|
ComputeSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: compute_servers}
|
|
input_values:
|
|
swap_size_megabytes: {get_param: swap_size_megabytes}
|
|
swap_path: {get_param: swap_path}
|
|
actions: ["CREATE"]
|
|
|
|
BlockStorageSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: blockstorage_servers}
|
|
input_values:
|
|
swap_size_megabytes: {get_param: swap_size_megabytes}
|
|
swap_path: {get_param: swap_path}
|
|
actions: ["CREATE"]
|
|
|
|
ObjectStorageSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: objectstorage_servers}
|
|
input_values:
|
|
swap_size_megabytes: {get_param: swap_size_megabytes}
|
|
swap_path: {get_param: swap_path}
|
|
actions: ["CREATE"]
|
|
|
|
CephStorageSwapDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
config: {get_resource: SwapConfig}
|
|
servers: {get_param: cephstorage_servers}
|
|
input_values:
|
|
swap_size_megabytes: {get_param: swap_size_megabytes}
|
|
swap_path: {get_param: swap_path}
|
|
actions: ["CREATE"]
|
|
|
|
outputs:
|
|
config_identifier:
|
|
value: none
|