From 4a79cbe618652748974a4abd4c19c6a3dc800b2b Mon Sep 17 00:00:00 2001
From: Andrew Butcher <abutcher@redhat.com>
Date: Wed, 20 Sep 2017 14:11:13 -0400
Subject: Set network facts using first master's config during scaleup.

---
 playbooks/common/openshift-master/scaleup.yml      |  2 ++
 .../common/openshift-master/set_network_facts.yml  | 28 ++++++++++++++++++++++
 roles/openshift_sanitize_inventory/tasks/main.yml  | 21 ----------------
 3 files changed, 30 insertions(+), 21 deletions(-)
 create mode 100644 playbooks/common/openshift-master/set_network_facts.yml

diff --git a/playbooks/common/openshift-master/scaleup.yml b/playbooks/common/openshift-master/scaleup.yml
index 17f9ef4bc..8c366e038 100644
--- a/playbooks/common/openshift-master/scaleup.yml
+++ b/playbooks/common/openshift-master/scaleup.yml
@@ -43,6 +43,8 @@
     delay: 1
     changed_when: false
 
+- include: ../openshift-master/set_network_facts.yml
+
 - include: ../openshift-master/config.yml
 
 - include: ../openshift-loadbalancer/config.yml
diff --git a/playbooks/common/openshift-master/set_network_facts.yml b/playbooks/common/openshift-master/set_network_facts.yml
new file mode 100644
index 000000000..2ad805858
--- /dev/null
+++ b/playbooks/common/openshift-master/set_network_facts.yml
@@ -0,0 +1,28 @@
+---
+- name: Read first master\'s config
+  hosts: oo_first_master
+  gather_facts: no
+  tasks:
+  - stat:
+      path: "{{ openshift.common.config_base }}/master/master-config.yaml"
+    register: g_master_config_stat
+  - slurp:
+      src: "{{ openshift.common.config_base }}/master/master-config.yaml"
+    register: g_master_config_slurp
+
+- name: Set network facts for masters
+  hosts: oo_masters_to_config
+  gather_facts: no
+  tasks:
+  - block:
+    - set_fact:
+        osm_cluster_network_cidr: "{{ (hostvars[groups.oo_first_master.0].g_master_config_slurp.content|b64decode|from_yaml).networkConfig.clusterNetworkCIDR }}"
+      when: osm_cluster_network_cidr is not defined
+    - set_fact:
+        osm_host_subnet_length: "{{ (hostvars[groups.oo_first_master.0].g_master_config_slurp.content|b64decode|from_yaml).networkConfig.hostSubnetLength }}"
+      when: osm_host_subnet_length is not defined
+    - set_fact:
+        openshift_portal_net: "{{ (hostvars[groups.oo_first_master.0].g_master_config_slurp.content|b64decode|from_yaml).networkConfig.serviceNetworkCIDR }}"
+      when: openshift_portal_net is not defined
+    when:
+    - hostvars[groups.oo_first_master.0].g_master_config_stat.stat.exists | bool
diff --git a/roles/openshift_sanitize_inventory/tasks/main.yml b/roles/openshift_sanitize_inventory/tasks/main.yml
index 47d7be05a..59ce505d3 100644
--- a/roles/openshift_sanitize_inventory/tasks/main.yml
+++ b/roles/openshift_sanitize_inventory/tasks/main.yml
@@ -12,27 +12,6 @@
       deployment_type is deprecated in favor of openshift_deployment_type.
       Please specify only openshift_deployment_type, or make both the same.
 
-# osm_cluster_network_cidr, osm_host_subnet_length and openshift_portal_net are
-# now required to avoid changes that may occur between releases
-#
-# Note: We will skip these checks when some tests run which don't
-# actually do any insalling/upgrading/scaling/etc..
-# Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1451023
-- when:
-    - not testing_skip_some_requirements|default(False)|bool
-  assert:
-    that:
-      - "osm_cluster_network_cidr is defined"
-      - "osm_host_subnet_length is defined"
-      - "openshift_portal_net is defined"
-    msg: >
-      osm_cluster_network_cidr, osm_host_subnet_length, and openshift_portal_net are required inventory
-      variables. If you are upgrading or scaling up these variables should match what is currently used
-      in the cluster. If you don't remember what these values are you can find them in
-      /etc/origin/master/master-config.yaml on a master with the names clusterNetworkCIDR
-      (osm_cluster_network_cidr), hostSubnetLength (osm_host_subnet_length),
-      and serviceNetworkCIDR (openshift_portal_net).
-
 - name: Standardize on latest variable names
   set_fact:
     # goal is to deprecate deployment_type in favor of openshift_deployment_type.
-- 
cgit v1.2.3