Provide a default value for Ironic cleaning_network configuration
authorDmitry Tantsur <divius.inside@gmail.com>
Thu, 2 Feb 2017 09:38:46 +0000 (10:38 +0100)
committerDmitry Tantsur <divius.inside@gmail.com>
Fri, 3 Feb 2017 14:17:27 +0000 (15:17 +0100)
Ironic will soon refuse to start when at least some value is not provided.
Unfortunately, we do not create any overcloud[*] networks during deployment.
Fortunately, Ironic does not validate this value until actual cleaning. So,
this change sets it to "provisioning", which is what people often use.

An update will follow to the documentation to recommend this name:
http://tripleo.org/advanced_deployment/baremetal_overcloud.html#configuring-cleaning

A new parameter is created for this value, with a reminded to change it to
an actual UUID later on. While a pre-defined name will work in a simplest case,
in a real multi-tenant deployment a network name conflict is possible.
Using a UUID is safer in this regard.

[*] networks created in overcloud neutron

Change-Id: I1b7dc2ff70d3b76f19a183a60e88cf72f6d2a318
Closes-Bug: #1661082

puppet/services/ironic-conductor.yaml
releasenotes/notes/ironic-cleaning-network-1e06881df0402221.yaml [new file with mode: 0644]

index a10c03a..48d8720 100644 (file)
@@ -24,6 +24,14 @@ parameters:
                  "full" for full cleaning, "metadata" to clean only disk
                  metadata (partition table).
     type: string
+  IronicCleaningNetwork:
+    default: 'provisioning'
+    description: Name or UUID of the *overcloud* network used for cleaning
+                 bare metal nodes. The default value of "provisioning" can be
+                 left during the initial deployment (when no networks are
+                 created yet) and should be changed to an actual UUID in
+                 a post-deployment stack update.
+    type: string
   IronicEnabledDrivers:
     default: ['pxe_ipmitool', 'pxe_drac', 'pxe_ilo']
     description: Enabled Ironic drivers
@@ -61,6 +69,7 @@ outputs:
           - ironic::api::neutron_url: {get_param: [EndpointMap, NeutronInternal, uri]}
             ironic::conductor::api_url: {get_param: [EndpointMap, IronicInternal, uri_no_suffix]}
             ironic::conductor::cleaning_disk_erase: {get_param: IronicCleaningDiskErase}
+            ironic::conductor::cleaning_network: {get_param: IronicCleaningNetwork}
             ironic::conductor::enabled_drivers: {get_param: IronicEnabledDrivers}
             # We need an endpoint containing a real IP, not a VIP here
             ironic_conductor_http_host: {get_param: [ServiceNetMap, IronicNetwork]}
diff --git a/releasenotes/notes/ironic-cleaning-network-1e06881df0402221.yaml b/releasenotes/notes/ironic-cleaning-network-1e06881df0402221.yaml
new file mode 100644 (file)
index 0000000..72601f9
--- /dev/null
@@ -0,0 +1,10 @@
+---
+features:
+  - |
+    New parameter "IronicCleaningNetwork" can be used to override the name
+    or UUID of the **overcloud** network Ironic uses for cleaning.
+fixes:
+  - |
+    A default value is now provided for Ironic ``cleaning_network``
+    configuration option. Not providing it on start up was deprecated since
+    Newton, and will result in a failure in the near future.