summaryrefslogtreecommitdiffstats
path: root/roles/openshift_facts/library/openshift_facts.py
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openshift_facts/library/openshift_facts.py')
-rwxr-xr-xroles/openshift_facts/library/openshift_facts.py104
1 files changed, 29 insertions, 75 deletions
diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py
index beef77896..844d77255 100755
--- a/roles/openshift_facts/library/openshift_facts.py
+++ b/roles/openshift_facts/library/openshift_facts.py
@@ -915,6 +915,7 @@ def set_version_facts_if_unset(facts):
version_gte_3_4_or_1_4 = version >= LooseVersion('1.4')
version_gte_3_5_or_1_5 = version >= LooseVersion('1.5')
version_gte_3_6 = version >= LooseVersion('3.6')
+ version_gte_3_7 = version >= LooseVersion('3.7')
else:
version_gte_3_1_or_1_1 = version >= LooseVersion('3.0.2.905')
version_gte_3_1_1_or_1_1_1 = version >= LooseVersion('3.1.1')
@@ -923,6 +924,7 @@ def set_version_facts_if_unset(facts):
version_gte_3_4_or_1_4 = version >= LooseVersion('3.4')
version_gte_3_5_or_1_5 = version >= LooseVersion('3.5')
version_gte_3_6 = version >= LooseVersion('3.6')
+ version_gte_3_7 = version >= LooseVersion('3.7')
else:
# 'Latest' version is set to True, 'Next' versions set to False
version_gte_3_1_or_1_1 = True
@@ -932,6 +934,7 @@ def set_version_facts_if_unset(facts):
version_gte_3_4_or_1_4 = True
version_gte_3_5_or_1_5 = True
version_gte_3_6 = True
+ version_gte_3_7 = False
facts['common']['version_gte_3_1_or_1_1'] = version_gte_3_1_or_1_1
facts['common']['version_gte_3_1_1_or_1_1_1'] = version_gte_3_1_1_or_1_1_1
facts['common']['version_gte_3_2_or_1_2'] = version_gte_3_2_or_1_2
@@ -939,8 +942,11 @@ def set_version_facts_if_unset(facts):
facts['common']['version_gte_3_4_or_1_4'] = version_gte_3_4_or_1_4
facts['common']['version_gte_3_5_or_1_5'] = version_gte_3_5_or_1_5
facts['common']['version_gte_3_6'] = version_gte_3_6
+ facts['common']['version_gte_3_7'] = version_gte_3_7
- if version_gte_3_6:
+ if version_gte_3_7:
+ examples_content_version = 'v3.7'
+ elif version_gte_3_6:
examples_content_version = 'v3.6'
elif version_gte_3_5_or_1_5:
examples_content_version = 'v1.5'
@@ -1642,75 +1648,27 @@ def set_proxy_facts(facts):
"""
if 'common' in facts:
common = facts['common']
-
- ######################################################################
- # We can exit early now if we don't need to set any proxy facts
- proxy_params = ['no_proxy', 'https_proxy', 'http_proxy']
- # If any of the known Proxy Params (pp) are defined
- proxy_settings_defined = any(
- [True for pp in proxy_params if pp in common]
- )
-
- if not proxy_settings_defined:
- common['no_proxy'] = ''
- return facts
-
- # As of 3.6 if ANY of the proxy parameters are defined in the
- # inventory then we MUST add certain domains to the NO_PROXY
- # environment variable.
-
- ######################################################################
-
- # Spot to build up some data we may insert later
- raw_no_proxy_list = []
-
- # Automatic 3.6 NO_PROXY additions if a proxy is in use
- svc_cluster_name = ['.svc', '.' + common['dns_domain'], common['hostname']]
-
- # auto_hosts: Added to NO_PROXY list if any proxy params are
- # set in the inventory. This a list of the FQDNs of all
- # cluster hosts:
- auto_hosts = common['no_proxy_internal_hostnames'].split(',')
-
- # custom_no_proxy_hosts: If you define openshift_no_proxy in
- # inventory we automatically add those hosts to the list:
- if 'no_proxy' in common:
- custom_no_proxy_hosts = common['no_proxy'].split(',')
- else:
- custom_no_proxy_hosts = []
-
- # This should exist no matter what. Defaults to true.
- if 'generate_no_proxy_hosts' in common:
- generate_no_proxy_hosts = safe_get_bool(common['generate_no_proxy_hosts'])
-
- ######################################################################
-
- # You set a proxy var. Now we are obliged to add some things
- raw_no_proxy_list = svc_cluster_name + custom_no_proxy_hosts
-
- # You did not turn openshift_generate_no_proxy_hosts to False
- if generate_no_proxy_hosts:
- raw_no_proxy_list.extend(auto_hosts)
-
- ######################################################################
-
- # Was anything actually added? There should be something by now.
- processed_no_proxy_list = sort_unique(raw_no_proxy_list)
- if processed_no_proxy_list != list():
- common['no_proxy'] = ','.join(processed_no_proxy_list)
- else:
- # Somehow we got an empty list. This should have been
- # skipped by now in the 'return' earlier. If
- # common['no_proxy'] is DEFINED it will cause unexpected
- # behavior and bad templating. Ensure it does not
- # exist. Even an empty list or string will have undesired
- # side-effects.
- del common['no_proxy']
-
- ######################################################################
- # In case you were wondering, because 'common' is a reference
- # to the object facts['common'], there is no need to re-assign
- # it.
+ if 'http_proxy' in common or 'https_proxy' in common or 'no_proxy' in common:
+ if 'no_proxy' in common and isinstance(common['no_proxy'], string_types):
+ common['no_proxy'] = common['no_proxy'].split(",")
+ elif 'no_proxy' not in common:
+ common['no_proxy'] = []
+
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=1466783
+ # masters behind a proxy need to connect to etcd via IP
+ if 'no_proxy_etcd_host_ips' in common:
+ if isinstance(common['no_proxy_etcd_host_ips'], string_types):
+ common['no_proxy'].extend(common['no_proxy_etcd_host_ips'].split(','))
+
+ if 'generate_no_proxy_hosts' in common and safe_get_bool(common['generate_no_proxy_hosts']):
+ if 'no_proxy_internal_hostnames' in common:
+ common['no_proxy'].extend(common['no_proxy_internal_hostnames'].split(','))
+ # We always add local dns domain and ourselves no matter what
+ common['no_proxy'].append('.' + common['dns_domain'])
+ common['no_proxy'].append('.svc')
+ common['no_proxy'].append(common['hostname'])
+ common['no_proxy'] = ','.join(sort_unique(common['no_proxy']))
+ facts['common'] = common
return facts
@@ -2270,14 +2228,10 @@ class OpenShiftFacts(object):
product_version = self.system_facts['ansible_product_version']
virt_type = self.system_facts['ansible_virtualization_type']
virt_role = self.system_facts['ansible_virtualization_role']
+ bios_vendor = self.system_facts['ansible_system_vendor']
provider = None
metadata = None
- # TODO: this is not exposed through module_utils/facts.py in ansible,
- # need to create PR for ansible to expose it
- bios_vendor = get_file_content( # noqa: F405
- '/sys/devices/virtual/dmi/id/bios_vendor'
- )
if bios_vendor == 'Google':
provider = 'gce'
metadata_url = ('http://metadata.google.internal/'