Add a boolean to allow disk overrides through NodeDataLookup and use
the following hiera data parameters to use device persistent naming for swift:
NodeDataLookup:
"UUID": {
"swift::storage::disks::args": {
"scsi-331402ec012ad6a72": { "base_dir": "/dev/disk/by-id/" },
"scsi-331402ec012ad6a73": { "base_dir": "/dev/disk/by-id/" }
},
"tripleo::profile::base::swift::ringbuilder::raw_disks": [
":%PORT%/scsi-331402ec012ad6a72",
":%PORT%/scsi-331402ec012ad6a73" ]
}
Change-Id: I0afa3283ed8c45f1ee0f44eb9bf9e4050d747a6b
With I57047682cfa82ba6ca4affff54fab5216e9ba51c Heat has added
a new template version for wallaby. This would allow us to use
2-argument variant of the ``if`` function that would allow for
e.g. conditional definition of resource properties and help
cleanup templates. If only two arguments are passed to ``if``
function, the entire enclosing item is removed when the condition
is false.
Change-Id: I25f981b60c6a66b39919adc38c02a051b6c51269
Use of python print() should work with both py2 and py3 but
without it script execution fails on py3
Change-Id: Ifdf4426bf27ffa82f4c2096d2a1670b996b1f53c
Closes-Bug: 1877378
We need to be able to handle when system uuids are upper or lower case
because newer versions of dmidecode have normalized to lower case. Users
who were on CentOS/RHEL 7.5 and older may have per-node customizations
with upper case which turn lowercase with an update to 7.6. This affects
hieradata customizations as well as os-net-config mapping files. This
change outputs both an upper and lowercase hieradata uuid file to handle
the both versions of the UUID. Additionally this change normalizes the
id comparison for os-net-config mappings to lower case.
Change-Id: I65f46056f8a908c60c99d1cee3738344a0bce6b7
Closes-Bug: #1816652
The NodeDataLookup parameter should be valid JSON and we should
help the user by adding type checking for this early in the
deployment so that the user doesn't experience the related bug.
Change-Id: Id9d2208f1cbaba9234d7657420cd7efcad3507a0
Related-Bug: #1784967
Related-Bug: #1814070
Unprivileged docker-puppet-$service containers don't have access
to devices and can't get facter 'uuid' variable. Therefore per node
hiera customizations don't work. We can work around this by using
/sys/class/dmi/id/product_uuid instead.
dmidecode>=3.1 returns system-id in lower case, so it's better to
use lowe case for compatibility.
This would also require changes to the docs as ironic node
introspection data may show it in both cases.
Change-Id: I899de7732c5b29ed70d4d487fdbc363117ac327f
Closes-Bug: #1806011
We have some scripts that we deploy via tripleo that use inline python.
For this we need to be able to find an available python on the system in
order for it to work. This change adds a lookup function to the scripts
to find a working version of python as /usr/bin/python may not exist.
Change-Id: Ida7a7cbd064ebdb923f38c9102eb4b0771f9b273
Related-Blueprint: python3-support
The new master branch should point now to rocky.
So, HOT templates should specify that they might contain features
for rocky release [1]
Also, this submission updates the yaml validation to use only latest
heat_version alias. There are cases in which we will need to set
the version for specific templates i.e. mixed versions, so there
is added a variable to assign specific templates to specific heat_version
aliases, avoiding the introductions of error by bulk replacing the
the old version in new releases.
[1]: https://docs.openstack.org/heat/latest/template_guide/hot_spec.html#rocky
Change-Id: Ib17526d9cc453516d99d4659ee5fa51a5aa7fb4b
dmidecode can return some additional data if SMBIOS is updated. Let's
ensure that the expected output matches the expected UUID format. The
expected string from the 'dmidecode --s system-uuid' call should look
like "79287E4C-2FBF-11B2-A85C-EB9FB9250CBA".
Change-Id: Ib0d19e64b2f24f4a9229f8868795e8979e267f04
Closes-Bug: #1762460
Per-node customizations were only dumped as hieradata, so the
ceph-ansible workflow could not consume them.
This change passes the structure to the mistral workflow so that it
can consume the data and populate the inventory accordingly.
Change-Id: Ie7a9f10f0c821b8c642494a4d3933b2901f39d40
Depends-On: Ia23825aea938f6f9bcf536e35cad562a1b96c93b
Closes-Bug: #1736707
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
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
Shows one method of passing a map of data in to the pre_deploy extraconfig
interface, such that it could be used in combination with
https://review.openstack.org/#/c/215013/ to create a node uuid specific
hieradata file, or to perform some other non-puppet per-node configuration.
This would be used by specifying an environment file like:
resource_registry:
OS::TripleO::ControllerExtraConfigPre: puppet/extraconfig/pre_deploy/per_node.yaml
parameter_defaults:
NodeDataLookup: |
{"AB4114B1-9C9D-409A-BEFB-D88C151BF2C3": {"foo": "bar"},
"8CF1A7EA-7B4B-4433-AC83-17675514B1B8": {"foo2": "bar2"}}
Change-Id: I62e344669e0ca781dd93d3f7d2190b70299877c2