summaryrefslogtreecommitdiffstats
path: root/roles/openshift_version/tasks/first_master_containerized_version.yml
diff options
context:
space:
mode:
authorMichael Gugino <mgugino@redhat.com>2017-12-21 20:17:10 -0500
committerMichael Gugino <mgugino@redhat.com>2018-01-09 11:18:45 -0500
commit54a83bf2b898338c70aeb094c9a0b86b8df8e2d2 (patch)
tree8d41cea271be692a150427ee23d6e26b67d3d8e5 /roles/openshift_version/tasks/first_master_containerized_version.yml
parent0e38305063e1b4322425a42a0f5eaaa788d7fb23 (diff)
downloadopenshift-54a83bf2b898338c70aeb094c9a0b86b8df8e2d2.tar.gz
openshift-54a83bf2b898338c70aeb094c9a0b86b8df8e2d2.tar.bz2
openshift-54a83bf2b898338c70aeb094c9a0b86b8df8e2d2.tar.xz
openshift-54a83bf2b898338c70aeb094c9a0b86b8df8e2d2.zip
Refactor version and move some checks into sanity_checks.py
This commit changes how we handle openshift_version role. Most of the version initialization code is only run on the first master now. All other hosts have values set from the master. Aftwards, we run some basic RPM queries to ensure that the correct version is available on the other nodes. Containerized needs to do their own image checks elsewhere.
Diffstat (limited to 'roles/openshift_version/tasks/first_master_containerized_version.yml')
-rw-r--r--roles/openshift_version/tasks/first_master_containerized_version.yml65
1 files changed, 65 insertions, 0 deletions
diff --git a/roles/openshift_version/tasks/first_master_containerized_version.yml b/roles/openshift_version/tasks/first_master_containerized_version.yml
new file mode 100644
index 000000000..e02a75eab
--- /dev/null
+++ b/roles/openshift_version/tasks/first_master_containerized_version.yml
@@ -0,0 +1,65 @@
+---
+- name: Set containerized version to configure if openshift_image_tag specified
+ set_fact:
+ # Expects a leading "v" in inventory, strip it off here unless
+ # openshift_image_tag=latest
+ openshift_version: "{{ openshift_image_tag[1:].split('-')[0] if openshift_image_tag != 'latest' else openshift_image_tag }}"
+ when:
+ - openshift_image_tag is defined
+ - openshift_version is not defined
+
+- name: Set containerized version to configure if openshift_release specified
+ set_fact:
+ openshift_version: "{{ openshift_release }}"
+ when:
+ - openshift_release is defined
+ - openshift_version is not defined
+
+- name: Lookup latest containerized version if no version specified
+ command: >
+ docker run --rm {{ openshift_cli_image }}:latest version
+ register: cli_image_version
+ when:
+ - openshift_version is not defined
+ - not openshift_use_crio_only
+
+# Origin latest = pre-release version (i.e. v1.3.0-alpha.1-321-gb095e3a)
+- set_fact:
+ openshift_version: "{{ (cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0:2] | join('-'))[1:] }}"
+ when:
+ - openshift_version is not defined
+ - openshift.common.deployment_type == 'origin'
+ - cli_image_version.stdout_lines[0].split('-') | length > 1
+ - not openshift_use_crio_only
+
+- set_fact:
+ openshift_version: "{{ cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0][1:] }}"
+ when: openshift_version is not defined
+
+# If we got an openshift_version like "3.2", lookup the latest 3.2 container version
+# and use that value instead.
+- name: Set precise containerized version to configure if openshift_release specified
+ command: >
+ docker run --rm {{ openshift_cli_image }}:v{{ openshift_version }} version
+ register: cli_image_version
+ when:
+ - openshift_version is defined
+ - openshift_version.split('.') | length == 2
+ - not openshift_use_crio_only
+
+- set_fact:
+ openshift_version: "{{ cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0:2][1:] | join('-') if openshift.common.deployment_type == 'origin' else cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0][1:] }}"
+ when:
+ - openshift_version is defined
+ - openshift_version.split('.') | length == 2
+ - not openshift_use_crio_only
+
+# TODO: figure out a way to check for the openshift_version when using CRI-O.
+# We should do that using the images in the ostree storage so we don't have
+# to pull them again.
+
+# We finally have the specific version. Now we clean up any strange
+# dangly +c0mm1t-offset tags in the version. See also,
+# openshift_facts.py
+- set_fact:
+ openshift_version: "{{ openshift_version | lib_utils_oo_chomp_commit_offset }}"