From 89de728acb7a734824ed61cc31cdf289da7e0f24 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Thu, 26 Apr 2018 12:37:36 +0200 Subject: [PATCH] undercloud: switch to the "direct" deploy interface by default Instead of serving images via slow and somewhat unreliable iSCSI protocol, this deploy method makes IPA download them from the undercloud Swift. Change-Id: Ic569358b781337ec6ba8ba802ada1f940917bd61 Implements: blueprint ironic-direct-deploy --- environments/undercloud.yaml | 1 + puppet/services/ironic-conductor.yaml | 11 +++++++++++ .../direct-deploy-by-default-bc78a63f0a0c6e15.yaml | 12 ++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 releasenotes/notes/direct-deploy-by-default-bc78a63f0a0c6e15.yaml diff --git a/environments/undercloud.yaml b/environments/undercloud.yaml index 4597e81f5b..2fba4b477e 100644 --- a/environments/undercloud.yaml +++ b/environments/undercloud.yaml @@ -40,6 +40,7 @@ parameter_defaults: HeatMaxJsonBodySize: 2097152 IronicCleaningDiskErase: 'metadata' IronicCorsAllowedOrigin: '*' + IronicDefaultDeployInterface: 'direct' IronicDefaultInspectInterface: 'inspector' IronicDefaultResourceClass: 'baremetal' IronicEnabledHardwareTypes: ['ipmi', 'redfish', 'idrac', 'ilo'] diff --git a/puppet/services/ironic-conductor.yaml b/puppet/services/ironic-conductor.yaml index 74a864a313..4723a93539 100644 --- a/puppet/services/ironic-conductor.yaml +++ b/puppet/services/ironic-conductor.yaml @@ -67,6 +67,11 @@ parameters: images). Set to 'netboot' to make the instances boot from controllers using PXE/iPXE. type: string + IronicDefaultDeployInterface: + default: '' + description: Deploy interface implementation to use by default. Leave empty to + use the hardware type default. + type: string IronicDefaultInspectInterface: default: '' description: Inspect interface implementation to use by default. Leave empty to @@ -214,6 +219,7 @@ resources: IronicDebug: {get_param: IronicDebug} conditions: + default_deploy_interface_unset: {equals : [{get_param: IronicDefaultDeployInterface}, '']} default_inspect_interface_unset: {equals : [{get_param: IronicDefaultInspectInterface}, '']} service_debug: or: @@ -231,6 +237,11 @@ outputs: config_settings: map_merge: - get_attr: [IronicBase, role_data, config_settings] + - + if: + - default_deploy_interface_unset + - {} + - ironic::drivers::interfaces::default_deploy_interface: {get_param: IronicDefaultDeployInterface} - if: - default_inspect_interface_unset diff --git a/releasenotes/notes/direct-deploy-by-default-bc78a63f0a0c6e15.yaml b/releasenotes/notes/direct-deploy-by-default-bc78a63f0a0c6e15.yaml new file mode 100644 index 0000000000..f634ba79aa --- /dev/null +++ b/releasenotes/notes/direct-deploy-by-default-bc78a63f0a0c6e15.yaml @@ -0,0 +1,12 @@ +--- +upgrade: + - | + Ironic in the containerized undercloud now uses the ``direct`` deploy + interface by default for better performance and scalability. See + `the direct deploy documentation + `_ + for details. + + If undesired, this change can be reverted per node by setting the node's + ``deploy_interface`` field to ``iscsi`` or globally by changing the new + ``IronicDefaultDeployInterface`` to empty string.