diff options
Diffstat (limited to 'roles/openshift_version/tasks')
| -rw-r--r-- | roles/openshift_version/tasks/main.yml | 29 | ||||
| -rw-r--r-- | roles/openshift_version/tasks/set_version_containerized.yml | 34 | ||||
| -rw-r--r-- | roles/openshift_version/tasks/set_version_rpm.yml | 23 | 
3 files changed, 86 insertions, 0 deletions
diff --git a/roles/openshift_version/tasks/main.yml b/roles/openshift_version/tasks/main.yml new file mode 100644 index 000000000..379809eda --- /dev/null +++ b/roles/openshift_version/tasks/main.yml @@ -0,0 +1,29 @@ +--- +# Determine the openshift_version to configure if none has been specified or set previously. + +- 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 + +# Here we protect the version already installed unless something has already set +# an openshift_version to configure. +- 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: Set openshift_version for rpm installation +  include: set_version_rpm.yml +  when: not is_containerized and openshift_version is not defined + +- name: Set openshift_version for containerized installation +  include: set_version_containerized.yml +  when: is_containerized and openshift_version is not defined + +- debug: var=openshift_version + + diff --git a/roles/openshift_version/tasks/set_version_containerized.yml b/roles/openshift_version/tasks/set_version_containerized.yml new file mode 100644 index 000000000..0da3484a9 --- /dev/null +++ b/roles/openshift_version/tasks/set_version_containerized.yml @@ -0,0 +1,34 @@ +--- +- name: Set containerized version to configure if openshift_image_tag specified +  set_fact: +    openshift_version: "{{ openshift_image_tag.split('v',1)[1] }}" +  when: openshift_image_tag is defined + +- name: Set containerized version to configure if openshift_release specified +  set_fact: +    openshift_version: "{{ openshift_release }}" +  when: openshift_release is defined and openshift_version is not defined + +- name: Lookup latest containerized version if no version specified +  command: > +    docker run --rm {{ openshift.common.cli_image }}:latest version +  register: cli_image_version +  when: 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: 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.common.cli_image }}:v{{ openshift_version }} version +  register: cli_image_version +  when: 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: openshift_version is defined and openshift_version.split('.') | length == 2 diff --git a/roles/openshift_version/tasks/set_version_rpm.yml b/roles/openshift_version/tasks/set_version_rpm.yml new file mode 100644 index 000000000..ab8f4b22f --- /dev/null +++ b/roles/openshift_version/tasks/set_version_rpm.yml @@ -0,0 +1,23 @@ +--- +# TODO: support openshift_release here? +- name: Set rpm version to configure if 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: openshift_pkg_version is defined + +# We do not have as fine grained control over version to install presently with rpms, +# we just assume the user has configured the correct repos and install the rpm requested. +- name: Install latest rpm available in configured repos 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: openshift_version is not defined + +- name: Reload facts to pick up version +  openshift_facts: +  when: openshift_version is not defined + +- name: Set rpm version to configure to latest available in repos +  set_fact: +    openshift_version: "{{ openshift.common.version }}" +  when: openshift_version is not defined  | 
