10 Commits

Author SHA1 Message Date
Carlos Camacho
92e203aab6 Fix for AllNodesExtraConfig and fix environment files to create swap files/partitions
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
2017-01-16 15:47:50 +01:00
Steven Hardy
3c6ec654b4 Bump template version for all templates to "ocata"
Heat now supports release name aliases, so we can replace
the inconsistent mix of date related versions with one consistent
version that aligns with the supported version of heat for this
t-h-t branch.

This should also help new users who sometimes copy/paste old templates
and discover intrinsic functions in the t-h-t docs don't work because
their template version is too old.

Change-Id: Ib415e7290fea27447460baa280291492df197e54
2016-12-23 11:43:39 +00:00
Michele Baldessari
9393a3e2a5 get_param calls with multiple arguments need brackets around them
This issue was spotted during major upgrade where we had calls like
this:

   servers: {get_param: servers, Controller}

These get_param calls are hanging indefinitely and make the whole
upgrade end in a timeout. We need to put brackets around the get_param
function when there are multiple arguments:
http://docs.openstack.org/developer/heat/template_guide/hot_spec.html#get-param

This is already done in most of the tree, and the few places where this
was not happening were parts not under CI. After this change the
following grep returns only one false positive:

   grep -ir get_param: |grep -v -- '\[' |grep ','

Change-Id: I65b23bb44f37b93e017dd15a5212939ffac76614
Closes-Bug: #1626628
2016-09-25 22:05:00 +02:00
Steven Hardy
b738e9ca78 Convert AllNodesExtraConfig to support composable roles
This adjusts the interface to OS::TripleO::AllNodesExtraConfig so
it supports custom/composable/optional roles.

Note this does break backwards compatibility, and I can't see any way
to avoid that.  I've converted the in-tree templates, and we'll have
to document carefully and or provide a script (or automated conversion
via mistral perhaps?) to allow folks to easily adjust any out of tree
templates to the new format.

Basically you just have to:

1. Remove all the *_servers parameters, replace with one "servers"
   json parameter

2. Replace references to e.g "controller_servers" with "servers, Controller"
   which does a path-based lookup into the json map provided by overcloud.yaml

Change-Id: I5eebf853646b2f6300d6b542fcd4f43e82d3b413
Partially-Implements: blueprint custom-roles
2016-09-16 00:24:44 +00:00
Steven Hardy
fe1f8a8c86 Convert AllNodesExtraConfig to OS::Heat::None
Instead of creating a nested stack, as it's slightly lower overhead
and will make things easier when adding custom roles (where a
hard-coded default template can't work)

Change-Id: If9f8294ba477d1c1364e19a52152905a2c02e959
2016-07-05 17:48:28 +01:00
Steven Hardy
7ff66b9af1 Remove config_identifier from all_nodes extraconfig examples
Since https://review.openstack.org/#/c/315616 this is no longer
required.

Change-Id: I0452d1577a25d19b4351bfe7830a6c7bbe485e67
2016-07-05 17:46:23 +01:00
James Slagle
94f580370d 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
2016-03-06 16:06:18 -05:00
James Slagle
570bf54311 Support adding a swap file to overcloud nodes
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
2016-03-01 14:29:22 -05:00
Steve Baker
1733d74392 Set the name property for all deployment resources
There are two reasons the name property should always be set for deployment
resources:
- The name often shows up in logs, files and API calls, the default
  derived name is long and unhelpful
- Sorting by name determines the merge order of os-apply-config, and the
  execution order of puppet/shell scripts (note this is different to
  resource dependency order) so leaving the default name results in an
  undetermined order which could lead to unpredictable deployment of
  configs

This change simply sets the name to the resource name, but a future change
should prepend each name with a run-parts style 2 digit prefix so that the
order is explicitly stated. Documentation for extraconfig needs to clearly
state what prefix is needed to override which merge/execution order.

For existing overcloud stacks, heat currently replaces deployment resources
when the name changes, so this change
Depends-On: I95037191915ccd32b2efb72203b146897a4edbc9

Change-Id: Ic4bcd56aa65b981275c3d4214588bfc4de63b3b0
2015-12-10 14:48:04 +13:00
Steven Hardy
196e6f3ff6 Add "AllNodes" ExtraConfig interface
Adds hook to enable additional "AllNodes" config to be performed prior
to applying puppet - this is useful when you need to build
configuration data which requires knowledge of all nodes in a cluster,
or of the entire deployment.

As an example, there is a sample config template which collects the
hostname and mac addresses for all nodes in the deployment then writes
the data to all Controller nodes.  Something similar to this may be
required to enable creation of the nexus_config in
https://review.openstack.org/#/c/198754/

There's also another, simpler, example which shows how you could share
the output of an OS::Heat::RandomString between nodes.

Change-Id: I8342a238f50142d8c7426f2b96f4ef1635775509
2015-09-17 15:50:35 +01:00