summaryrefslogtreecommitdiffstats
path: root/roles/openshift_health_checker/openshift_checks
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openshift_health_checker/openshift_checks')
-rw-r--r--roles/openshift_health_checker/openshift_checks/docker_image_availability.py36
-rw-r--r--roles/openshift_health_checker/openshift_checks/ovs_version.py3
-rw-r--r--roles/openshift_health_checker/openshift_checks/package_availability.py4
-rw-r--r--roles/openshift_health_checker/openshift_checks/package_version.py7
4 files changed, 40 insertions, 10 deletions
diff --git a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py
index 5beb20503..4f91f6bb3 100644
--- a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py
+++ b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py
@@ -1,5 +1,6 @@
"""Check that required Docker images are available."""
+import re
from pipes import quote
from ansible.module_utils import six
from openshift_checks import OpenShiftCheck
@@ -11,12 +12,16 @@ DEPLOYMENT_IMAGE_INFO = {
"origin": {
"namespace": "openshift",
"name": "origin",
- "registry_console_image": "cockpit/kubernetes",
+ "registry_console_prefix": "cockpit/",
+ "registry_console_basename": "kubernetes",
+ "registry_console_default_version": "latest",
},
"openshift-enterprise": {
"namespace": "openshift3",
"name": "ose",
- "registry_console_image": "registry.access.redhat.com/openshift3/registry-console",
+ "registry_console_prefix": "openshift3/",
+ "registry_console_basename": "registry-console",
+ "registry_console_default_version": "${short_version}",
},
}
@@ -151,10 +156,8 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck):
if 'oo_nodes_to_config' in host_groups:
for suffix in NODE_IMAGE_SUFFIXES:
required.add(image_url.replace("${component}", suffix).replace("${version}", image_tag))
- # The registry-console is for some reason not prefixed with ose- like the other components.
- # Nor is it versioned the same, so just look for latest.
- # Also a completely different name is used for Origin.
- required.add(image_info["registry_console_image"])
+ if self.get_var("osm_use_cockpit", default=True, convert=bool):
+ required.add(self._registry_console_image(image_tag, image_info))
# images for containerized components
if self.get_var("openshift", "common", "is_containerized"):
@@ -170,6 +173,27 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck):
return required
+ def _registry_console_image(self, image_tag, image_info):
+ """Returns image with logic to parallel what happens with the registry-console template."""
+ # The registry-console is for some reason not prefixed with ose- like the other components.
+ # Nor is it versioned the same. Also a completely different name is used for Origin.
+ prefix = self.get_var(
+ "openshift_cockpit_deployer_prefix",
+ default=image_info["registry_console_prefix"],
+ )
+ basename = self.get_var(
+ "openshift_cockpit_deployer_basename",
+ default=image_info["registry_console_basename"],
+ )
+
+ # enterprise template just uses v3.6, v3.7, etc
+ match = re.match(r'v\d+\.\d+', image_tag)
+ short_version = match.group() if match else image_tag
+ version = image_info["registry_console_default_version"].replace("${short_version}", short_version)
+ version = self.get_var("openshift_cockpit_deployer_version", default=version)
+
+ return prefix + basename + ':' + version
+
def local_images(self, images):
"""Filter a list of images and return those available locally."""
found_images = []
diff --git a/roles/openshift_health_checker/openshift_checks/ovs_version.py b/roles/openshift_health_checker/openshift_checks/ovs_version.py
index 416805c4d..0cad19842 100644
--- a/roles/openshift_health_checker/openshift_checks/ovs_version.py
+++ b/roles/openshift_health_checker/openshift_checks/ovs_version.py
@@ -16,7 +16,8 @@ class OvsVersion(NotContainerizedMixin, OpenShiftCheck):
tags = ["health"]
openshift_to_ovs_version = {
- "3.6": ["2.6", "2.7"],
+ "3.7": ["2.6", "2.7", "2.8"],
+ "3.6": ["2.6", "2.7", "2.8"],
"3.5": ["2.6", "2.7"],
"3.4": "2.4",
}
diff --git a/roles/openshift_health_checker/openshift_checks/package_availability.py b/roles/openshift_health_checker/openshift_checks/package_availability.py
index 090e438ff..980e23f27 100644
--- a/roles/openshift_health_checker/openshift_checks/package_availability.py
+++ b/roles/openshift_health_checker/openshift_checks/package_availability.py
@@ -15,7 +15,9 @@ class PackageAvailability(NotContainerizedMixin, OpenShiftCheck):
return super(PackageAvailability, self).is_active() and self.get_var("ansible_pkg_mgr") == "yum"
def run(self):
- rpm_prefix = self.get_var("openshift", "common", "service_type")
+ rpm_prefix = self.get_var("openshift_service_type")
+ if self._templar is not None:
+ rpm_prefix = self._templar.template(rpm_prefix)
group_names = self.get_var("group_names", default=[])
packages = set()
diff --git a/roles/openshift_health_checker/openshift_checks/package_version.py b/roles/openshift_health_checker/openshift_checks/package_version.py
index 2f09b22fc..f3a628e28 100644
--- a/roles/openshift_health_checker/openshift_checks/package_version.py
+++ b/roles/openshift_health_checker/openshift_checks/package_version.py
@@ -16,7 +16,8 @@ class PackageVersion(NotContainerizedMixin, OpenShiftCheck):
openshift_to_ovs_version = {
(3, 4): "2.4",
(3, 5): ["2.6", "2.7"],
- (3, 6): ["2.6", "2.7"],
+ (3, 6): ["2.6", "2.7", "2.8"],
+ (3, 7): ["2.6", "2.7", "2.8"],
}
openshift_to_docker_version = {
@@ -40,7 +41,9 @@ class PackageVersion(NotContainerizedMixin, OpenShiftCheck):
return super(PackageVersion, self).is_active() and master_or_node
def run(self):
- rpm_prefix = self.get_var("openshift", "common", "service_type")
+ rpm_prefix = self.get_var("openshift_service_type")
+ if self._templar is not None:
+ rpm_prefix = self._templar.template(rpm_prefix)
openshift_release = self.get_var("openshift_release", default='')
deployment_type = self.get_var("openshift_deployment_type")
check_multi_minor_release = deployment_type in ['openshift-enterprise']