From dcb7289d9cf28b155aebb3b4ab820db2033c1b35 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Fri, 20 May 2016 11:55:41 -0300 Subject: Debug output. --- roles/openshift_docker/tasks/main.yml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index 9c5887f76..cff1c6bb4 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -8,6 +8,9 @@ # in non-upgrade scenarios: has_image_tag_fact: "{{ hostvars[inventory_hostname].openshift.docker.openshift_image_tag is defined }}" +- debug: var=openshift_image_tag +- debug: var=openshift_release + - name: Set version when containerized command: > docker run --rm {{ openshift.common.cli_image }} version -- cgit v1.2.3 From c45562e0e03e03c82bfcf60d4b3f8b7793133301 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Fri, 20 May 2016 15:14:28 -0300 Subject: Set openshift_version in config playbooks for first master. Starting to remove openshift.docker.openshift_version fact usage. openshift_version should no longer contain a leading 'v' for containerized installs, just a version number. --- roles/openshift_docker/tasks/main.yml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index cff1c6bb4..79efb193b 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -17,6 +17,8 @@ register: cli_image_version when: is_containerized | bool and openshift_image_tag is not defined and (upgrading | bool or not has_image_tag_fact | bool) +- debug: var=cli_image_version + # Use the pre-existing image tag from system facts if present, and we're not upgrading. # Ignores explicit openshift_image_tag if it's in the inventory, as this isn't an upgrade. - set_fact: -- cgit v1.2.3 From 82a70f9cc1522d239212701ab6c9260cbf9dc8a7 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Fri, 20 May 2016 15:52:54 -0300 Subject: Remove now unnecessary pull and ver check in openshift_docker role. --- roles/openshift_docker/tasks/main.yml | 36 ----------------------------------- 1 file changed, 36 deletions(-) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index 79efb193b..aaa472727 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -8,39 +8,3 @@ # in non-upgrade scenarios: has_image_tag_fact: "{{ hostvars[inventory_hostname].openshift.docker.openshift_image_tag is defined }}" -- debug: var=openshift_image_tag -- debug: var=openshift_release - -- name: Set version when containerized - command: > - docker run --rm {{ openshift.common.cli_image }} version - register: cli_image_version - when: is_containerized | bool and openshift_image_tag is not defined and (upgrading | bool or not has_image_tag_fact | bool) - -- debug: var=cli_image_version - -# Use the pre-existing image tag from system facts if present, and we're not upgrading. -# Ignores explicit openshift_image_tag if it's in the inventory, as this isn't an upgrade. -- set_fact: - l_image_tag: "{{ hostvars[inventory_hostname].openshift.docker.openshift_image_tag }}" - when: is_containerized | bool and not upgrading | bool and has_image_tag_fact | bool - -- set_fact: - l_image_tag: "{{ cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0:2] | join('-') if openshift.common.deployment_type == 'origin' else - cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0] }}" - when: is_containerized | bool and openshift_image_tag is not defined and (upgrading | bool or not has_image_tag_fact | bool) - -- set_fact: - l_image_tag: "{{ openshift_image_tag }}" - when: is_containerized | bool and openshift_image_tag is defined and (upgrading | bool or not has_image_tag_fact | bool) - -- name: Set post docker install facts - openshift_facts: - role: "{{ item.role }}" - local_facts: "{{ item.local_facts }}" - with_items: - - role: docker - local_facts: - openshift_image_tag: "{{ l_image_tag | default(None) }}" - openshift_version: "{{ l_image_tag.split('-')[0] | oo_image_tag_to_rpm_version if l_image_tag is defined else '' }}" - when: is_containerized | bool -- cgit v1.2.3 From 0c7433838c8c6409b8de907fcc946fc73fe90527 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Tue, 24 May 2016 09:46:33 -0300 Subject: Work towards determining openshift_version when unspecified. openshift_docker role was largely useless now, but also almost did what we needed. (deps ordering still needs to be changed) Remove defaulting of openshift_version. --- roles/openshift_docker/tasks/main.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index aaa472727..2ab31de8b 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -4,7 +4,20 @@ # openshift_image_tag correctly for upgrades. - set_fact: is_containerized: "{{ openshift.common.is_containerized | default(False) | bool }}" - # Does the host already have an image tag fact, used to determine if it's a new node - # in non-upgrade scenarios: - has_image_tag_fact: "{{ hostvars[inventory_hostname].openshift.docker.openshift_image_tag is defined }}" + +# If no openshift_version provided, figure out what to use: +# TODO: May want to move this to another role. +- name: Lookup latest OpenShift version if none specified + command: > + docker run --rm {{ openshift.common.cli_image }}:latest version + register: cli_image_version + when: is_containerized | bool and openshift_version is not defined + +- debug: var=cli_image_version + +- 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: is_containerized | bool and openshift_version is not defined + +- debug: var=openshift_version -- cgit v1.2.3 From c45ccc0ee879e93a4fd4304b4848595fa27014c5 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Wed, 25 May 2016 15:40:20 -0300 Subject: Convert generic openshift_version=3.2 to specific early in install. --- roles/openshift_docker/tasks/main.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index 2ab31de8b..1791d20c0 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -19,5 +19,17 @@ 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: is_containerized | bool and 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: Lookup specific OpenShift version if generic release specified + command: > + docker run --rm {{ openshift.common.cli_image }}:v{{ openshift_version }} version + register: cli_image_version + when: is_containerized | bool and openshift_version is defined and openshift_version.split('.') | length == 2 + +- 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: is_containerized | bool and openshift_version is defined and openshift_version.split('.') | length == 2 + - debug: var=openshift_version -- cgit v1.2.3 From 14b23a8b14636407143375cbac71b090663cee77 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Thu, 26 May 2016 14:30:37 -0300 Subject: Get rpm installations functional again. --- roles/openshift_docker/tasks/main.yml | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index 1791d20c0..c7b8f504a 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -2,12 +2,34 @@ # It's important that we don't explicitly pull this image here. Otherwise we # could result in upgrading a preinstalled environment. We'll have to set # openshift_image_tag correctly for upgrades. + +# Determine openshift_version if none is set for this host, or if a generic "3.2" +# is set, determine the more specific version number by either installing the latest +# rpm, or pulling the v3.2 container and checking the resulting versions. + - set_fact: is_containerized: "{{ openshift.common.is_containerized | default(False) | bool }}" -# If no openshift_version provided, figure out what to use: -# TODO: May want to move this to another role. -- name: Lookup latest OpenShift version if none specified +- debug: var=openshift_version + +# RPM openshift_version setup: +- debug: msg="{{ openshift_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) }}" +- name: Lookup latest OpenShift rpm version if none specified + action: "{{ ansible_pkg_mgr }} name={{ openshift.common.service_type }}{{ openshift_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) }} state=present" + when: not is_containerized | bool and openshift_version is not defined + +- name: Reload facts to pick up version + openshift_facts: + when: not is_containerized | bool and openshift_version is not defined + +- set_fact: + openshift_version: "{{ openshift.common.version }}" + when: not is_containerized | bool and openshift_version is not defined + +# TODO: What to do if openshift_version = 3.2 for rpm based installs? + +# Containerized openshift_version setup: +- name: Lookup latest containerized OpenShift version if none specified command: > docker run --rm {{ openshift.common.cli_image }}:latest version register: cli_image_version -- cgit v1.2.3 From 265daf6b65206fc17ad35e682640477d08efbc43 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Mon, 30 May 2016 11:52:48 -0300 Subject: Refactor openshift_version behavior. Very early in playbooks we must init the openshift_version for each host. First we determine it for the master, logic now is pushed into the openshift_docker role which we run only on first master via openshift_cli. Facts are reloaded leaving us with a first master with openshift.common.version fact we can then re-use on all other hosts. The correct version of docker should be installed as well. We then set openshift_version for all other hosts by re-using the master fact. --- roles/openshift_docker/tasks/main.yml | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index c7b8f504a..c2ba63a1d 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -11,9 +11,24 @@ is_containerized: "{{ openshift.common.is_containerized | default(False) | bool }}" - debug: var=openshift_version +- debug: var=openshift_release +- debug: var=openshift_pkg_version +- debug: var=openshift_image_tag # RPM openshift_version setup: -- debug: msg="{{ openshift_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) }}" +# TODO: support openshift_release here: +- name: Determine rpm version to configure when openshift_pkg_version specified + set_fact: + # Expects a leading "-" in inventory, strip it off here, and ignore a trailing release, + # openshift_version should always just be "3.2" or "3.2.0.44" + openshift_version: "{{ openshift_pkg_version[1:].split('-')[0] }}" + when: not is_containerized | bool and openshift_pkg_version is defined and openshift_version is not defined + +- name: Use openshift.common.version fact as version to configure if already installed + set_fact: + openshift_version: "{{ openshift.common.version }}" + when: openshift.common.version is defined and openshift_version is not defined + - name: Lookup latest OpenShift rpm version if none specified action: "{{ ansible_pkg_mgr }} name={{ openshift.common.service_type }}{{ openshift_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) }} state=present" when: not is_containerized | bool and openshift_version is not defined @@ -26,9 +41,18 @@ openshift_version: "{{ openshift.common.version }}" when: not is_containerized | bool and openshift_version is not defined -# TODO: What to do if openshift_version = 3.2 for rpm based installs? # Containerized openshift_version setup: +- name: Determine version to configure if containerized and release specified + set_fact: + openshift_version: "{{ openshift_release }}" + when: is_containerized | bool and openshift_release is defined and openshift_version is not defined + +- name: Determine container version to configure when openshift_image_tag specified + set_fact: + openshift_version: "{{ openshift_image_tag.split('v',1)[1] }}" + when: is_containerized | bool and openshift_image_tag is defined and openshift_version is not defined + - name: Lookup latest containerized OpenShift version if none specified command: > docker run --rm {{ openshift.common.cli_image }}:latest version @@ -53,5 +77,6 @@ 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: is_containerized | bool and openshift_version is defined and openshift_version.split('.') | length == 2 + - debug: var=openshift_version -- cgit v1.2.3 From efb153693104976e86a91ebf6bf236448be5a84d Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Tue, 31 May 2016 10:26:53 -0300 Subject: Drop unnecessary node playbook version calculation. --- roles/openshift_docker/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index c2ba63a1d..00f761987 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -29,7 +29,7 @@ openshift_version: "{{ openshift.common.version }}" when: openshift.common.version is defined and openshift_version is not defined -- name: Lookup latest OpenShift rpm version if none specified +- name: Install latest OpenShift rpm to check version action: "{{ ansible_pkg_mgr }} name={{ openshift.common.service_type }}{{ openshift_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) }} state=present" when: not is_containerized | bool and openshift_version is not defined -- cgit v1.2.3 From 47c8c0b1df866b86b111e3e03b827011ec4c341c Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Tue, 31 May 2016 11:56:13 -0300 Subject: Break version calc out into a role, separate yaml for containerized/rpm. --- roles/openshift_docker/tasks/main.yml | 81 ----------------------------------- 1 file changed, 81 deletions(-) (limited to 'roles/openshift_docker/tasks/main.yml') diff --git a/roles/openshift_docker/tasks/main.yml b/roles/openshift_docker/tasks/main.yml index 00f761987..ed97d539c 100644 --- a/roles/openshift_docker/tasks/main.yml +++ b/roles/openshift_docker/tasks/main.yml @@ -1,82 +1 @@ --- -# It's important that we don't explicitly pull this image here. Otherwise we -# could result in upgrading a preinstalled environment. We'll have to set -# openshift_image_tag correctly for upgrades. - -# Determine openshift_version if none is set for this host, or if a generic "3.2" -# is set, determine the more specific version number by either installing the latest -# rpm, or pulling the v3.2 container and checking the resulting versions. - -- set_fact: - is_containerized: "{{ openshift.common.is_containerized | default(False) | bool }}" - -- debug: var=openshift_version -- debug: var=openshift_release -- debug: var=openshift_pkg_version -- debug: var=openshift_image_tag - -# RPM openshift_version setup: -# TODO: support openshift_release here: -- name: Determine rpm version to configure when openshift_pkg_version specified - set_fact: - # Expects a leading "-" in inventory, strip it off here, and ignore a trailing release, - # openshift_version should always just be "3.2" or "3.2.0.44" - openshift_version: "{{ openshift_pkg_version[1:].split('-')[0] }}" - when: not is_containerized | bool and openshift_pkg_version is defined and openshift_version is not defined - -- name: Use openshift.common.version fact as version to configure if already installed - set_fact: - openshift_version: "{{ openshift.common.version }}" - when: openshift.common.version is defined and openshift_version is not defined - -- name: Install latest OpenShift rpm to check version - action: "{{ ansible_pkg_mgr }} name={{ openshift.common.service_type }}{{ openshift_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) }} state=present" - when: not is_containerized | bool and openshift_version is not defined - -- name: Reload facts to pick up version - openshift_facts: - when: not is_containerized | bool and openshift_version is not defined - -- set_fact: - openshift_version: "{{ openshift.common.version }}" - when: not is_containerized | bool and openshift_version is not defined - - -# Containerized openshift_version setup: -- name: Determine version to configure if containerized and release specified - set_fact: - openshift_version: "{{ openshift_release }}" - when: is_containerized | bool and openshift_release is defined and openshift_version is not defined - -- name: Determine container version to configure when openshift_image_tag specified - set_fact: - openshift_version: "{{ openshift_image_tag.split('v',1)[1] }}" - when: is_containerized | bool and openshift_image_tag is defined and openshift_version is not defined - -- name: Lookup latest containerized OpenShift version if none specified - command: > - docker run --rm {{ openshift.common.cli_image }}:latest version - register: cli_image_version - when: is_containerized | bool and openshift_version is not defined - -- debug: var=cli_image_version - -- 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: is_containerized | bool and 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: Lookup specific OpenShift version if generic release specified - command: > - docker run --rm {{ openshift.common.cli_image }}:v{{ openshift_version }} version - register: cli_image_version - when: is_containerized | bool and openshift_version is defined and openshift_version.split('.') | length == 2 - -- 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: is_containerized | bool and openshift_version is defined and openshift_version.split('.') | length == 2 - - -- debug: var=openshift_version - -- cgit v1.2.3