Fix for AllNodesExtraConfig and fix environment files to create swap files/partitions
authorCarlos Camacho <ccamacho@redhat.com>
Tue, 10 Jan 2017 09:02:14 +0000 (10:02 +0100)
committerCarlos Camacho <ccamacho@redhat.com>
Mon, 16 Jan 2017 14:47:50 +0000 (15:47 +0100)
This submission:

 - Fix an error in the AllNodesExtraConfig resource.
   (Can't merge servers multiple times).
 - Add environment files to deploy swap file/partition
   without manual edit over the templates.
 - If a swap partition is mounted without having it available
   the deployment will fail, the fix checks that if the
   partition is not created then the deployment continues.
 - Removing empty extra lines in swap templates.
 - Adjust description and remove unnecessary comments in
   swap templates.

Closes-Bug: 1652184

Change-Id: I828bbbbd4c178956aac74af49f80fcd4f62fa16b

environments/enable-swap-partition.yaml [new file with mode: 0644]
environments/enable-swap.yaml [new file with mode: 0644]
extraconfig/all_nodes/swap-partition.j2.yaml
extraconfig/all_nodes/swap.j2.yaml
overcloud.j2.yaml

diff --git a/environments/enable-swap-partition.yaml b/environments/enable-swap-partition.yaml
new file mode 100644 (file)
index 0000000..71b70ec
--- /dev/null
@@ -0,0 +1,3 @@
+# Use this environment to create a swap partition in all Overcloud nodes
+resource_registry:
+  OS::TripleO::AllNodesExtraConfig: ../extraconfig/all_nodes/swap-partition.yaml
diff --git a/environments/enable-swap.yaml b/environments/enable-swap.yaml
new file mode 100644 (file)
index 0000000..9ba0864
--- /dev/null
@@ -0,0 +1,3 @@
+# Use this environment to create a swap file in all Overcloud nodes
+resource_registry:
+  OS::TripleO::AllNodesExtraConfig: ../extraconfig/all_nodes/swap.yaml
index ffd3032..b6fef79 100644 (file)
@@ -1,11 +1,7 @@
 heat_template_version: ocata
 
-description: >
-  Extra config to add swap space to nodes.
+description: Template file to add a swap partition to a node.
 
-# 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:
   servers:
     type: json
@@ -14,9 +10,7 @@ parameters:
     description: Swap partition label
     default: 'swap1'
 
-
 resources:
-
   SwapConfig:
     type: OS::Heat::SoftwareConfig
     properties:
@@ -25,8 +19,13 @@ resources:
         #!/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
+        if [ -f "$swap_partition" ]; then
+          swapon $swap_partition
+          echo "$swap_partition swap swap defaults 0 0" >> /etc/fstab
+        else
+          echo "$swap_partition needs to be a valid path"
+          echo "Check that $swap_partition_label is a valid partition label"
+        fi
       inputs:
         - name: swap_partition_label
           description: Swap partition label
index e8cd4c9..044f817 100644 (file)
@@ -1,11 +1,7 @@
 heat_template_version: ocata
 
-description: >
-  Extra config to add swap space to nodes.
+description: Template file to add a swap file to a node.
 
-# 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:
   servers:
     type: json
@@ -18,9 +14,7 @@ parameters:
     description: Full path to location of swap file
     default: '/swap'
 
-
 resources:
-
   SwapConfig:
     type: OS::Heat::SoftwareConfig
     properties:
index 4a3e4cd..f93c19a 100644 (file)
@@ -593,8 +593,9 @@ resources:
       - {{role.name}}AllNodesValidationDeployment
 {% endfor %}
     properties:
+      servers:
 {% for role in roles %}
-      servers: {get_attr: [{{role.name}}, attributes, nova_server_resource]}
+        {{role.name}}: {get_attr: [{{role.name}}, attributes, nova_server_resource]}
 {% endfor %}
 
   # Upgrade steps for all roles