From 2024bb021882695e2d2674f0712813ad8ab38928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Wed, 28 Mar 2018 20:23:59 +0200 Subject: [PATCH] Ironic Inspector - disjoint ip range(s) for HA Allow tht parameter IronicInspectorSubnets to specify per-instance ip range(s) using hostname as key for each list of ip ranges. For HA deployments use disjoint address pools to avoid potential address conflict. Implements: blueprint ironic-inspector-overcloud Depends-On: Ifae513265b8c35d98012f14f951bac33ae90b66c Change-Id: Ifdebe9fcc817b4572f1eb461a3396af6b55f1e6b --- puppet/services/ironic-inspector.yaml | 21 +++++++++++++++- ...-inspection-ip-range-f399a938d50daadd.yaml | 25 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/ironic-inspector-disjoint-inspection-ip-range-f399a938d50daadd.yaml diff --git a/puppet/services/ironic-inspector.yaml b/puppet/services/ironic-inspector.yaml index 4d6fc550e6..387052fa58 100644 --- a/puppet/services/ironic-inspector.yaml +++ b/puppet/services/ironic-inspector.yaml @@ -106,6 +106,25 @@ parameters: netmask: 255.255.255.0 gateway: 192.168.1.254 tag: subnet1 + + NOTE: For HA deployments use disjoint address pools to avoid potential + address conflict. Use the hostname (short form) of each instance + that will run Ironic Inspector and define a dictionary with the + disjoint ip ranges. + + Example HA deployment using disjoint address pools: + overcloud-ironic-0: + - ip_range: 192.168.24.100,192.168.24.119 + - ip_range: 192.168.25.100,192.168.25.119 + netmask: 255.255.255.0 + gateway: 192.168.25.254 + tag: subnet1 + overcloud-ironic-1: + - ip_range: 192.168.24.120,192.168.24.139 + - ip_range: 192.168.25.120,192.168.25.139 + netmask: 255.255.255.0 + gateway: 192.168.25.254 + tag: subnet1 type: json default: {} IronicInspectorUseSwift: @@ -152,7 +171,7 @@ outputs: "%{hiera('$NETWORK')}" params: $NETWORK: {get_param: [ServiceNetMap, IronicInspectorNetwork]} - ironic::inspector::dnsmasq_ip_subnets: + tripleo::profile::base::ironic_inspector::inspection_subnets: if: - ironic_inspection_subnets_not_set - [{ip_range: {get_param: IronicInspectorIpRange}}] diff --git a/releasenotes/notes/ironic-inspector-disjoint-inspection-ip-range-f399a938d50daadd.yaml b/releasenotes/notes/ironic-inspector-disjoint-inspection-ip-range-f399a938d50daadd.yaml new file mode 100644 index 0000000000..6f602fe39b --- /dev/null +++ b/releasenotes/notes/ironic-inspector-disjoint-inspection-ip-range-f399a938d50daadd.yaml @@ -0,0 +1,25 @@ +--- +features: + - | + Adds support to configure disjoint address pools for Ironic Inspector. + + When Inspector is deployed as a HA service disjoint address pools should be + served by the DHCP instances to avoid address conflict issues. The disjoint + address pools are configured by using hostname (short form) as the key, + then pass the list of ranges for each host. For example:: + + parameter_defaults: + + IronicInspectorSubnets: + overcloud-ironic-0: + - ip_range: 192.168.24.100,192.168.24.119 + - ip_range: 192.168.25.100,192.168.25.119 + netmask: 255.255.255.0 + gateway: 192.168.25.254 + tag: subnet1 + overcloud-ironic-1: + - ip_range: 192.168.24.120,192.168.24.139 + - ip_range: 192.168.25.120,192.168.25.139 + netmask: 255.255.255.0 + gateway: 192.168.25.254 + tag: subnet1