diff options
Diffstat (limited to 'roles')
45 files changed, 349 insertions, 241 deletions
diff --git a/roles/calico/defaults/main.yaml b/roles/calico/defaults/main.yaml index a81fc3af7..a16a7da71 100644 --- a/roles/calico/defaults/main.yaml +++ b/roles/calico/defaults/main.yaml @@ -4,7 +4,11 @@ etcd_endpoints: "{{ hostvars[groups.oo_first_master.0].openshift.master.etcd_url  cni_conf_dir: "/etc/cni/net.d/"  cni_bin_dir: "/opt/cni/bin/" +cni_url: "https://github.com/containernetworking/cni/releases/download/v0.4.0/cni-amd64-v0.4.0.tgz"  calico_etcd_ca_cert_file: "/etc/origin/calico/calico.etcd-ca.crt"  calico_etcd_cert_file: "/etc/origin/calico/calico.etcd-client.crt"  calico_etcd_key_file: "/etc/origin/calico/calico.etcd-client.key" + +calico_url_cni: "https://github.com/projectcalico/cni-plugin/releases/download/v1.5.5/calico" +calico_url_ipam: "https://github.com/projectcalico/cni-plugin/releases/download/v1.5.5/calico-ipam" diff --git a/roles/calico/tasks/main.yml b/roles/calico/tasks/main.yml index 287fed321..fa5e338b3 100644 --- a/roles/calico/tasks/main.yml +++ b/roles/calico/tasks/main.yml @@ -7,7 +7,7 @@      etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}"      etcd_cert_subdir: "openshift-calico-{{ openshift.common.hostname }}" -- name: Assure the calico certs have been generated +- name: Calico Node | Assure the calico certs have been generated    stat:      path: "{{ item }}"    with_items: @@ -15,12 +15,12 @@    - "{{ calico_etcd_cert_file}}"    - "{{ calico_etcd_key_file }}" -- name: Configure Calico service unit file +- name: Calico Node | Configure Calico service unit file    template:      dest: "/lib/systemd/system/calico.service"      src: calico.service.j2 -- name: Enable calico +- name: Calico Node | Enable calico    become: yes    systemd:      name: calico @@ -29,46 +29,46 @@      enabled: yes    register: start_result -- name: Assure CNI conf dir exists +- name: Calico Node | Assure CNI conf dir exists    become: yes    file: path="{{ cni_conf_dir }}" state=directory -- name: Generate Calico CNI config +- name: Calico Node | Generate Calico CNI config    become: yes    template: -    src: "calico.conf.j2" +    src: "10-calico.conf.j2"      dest: "{{ cni_conf_dir }}/10-calico.conf" -- name: Assures Kuberentes CNI bin dir exists +- name: Calico Node | Assures Kuberentes CNI bin dir exists    become: yes    file: path="{{ cni_bin_dir }}" state=directory -- name: Download Calico CNI Plugin +- name: Calico Node | Download Calico CNI Plugin    become: yes    get_url: -    url: https://github.com/projectcalico/cni-plugin/releases/download/v1.5.5/calico +    url: "{{ calico_url_cni }}"      dest: "{{ cni_bin_dir }}"      mode: a+x -- name: Download Calico IPAM Plugin +- name: Calico Node | Download Calico IPAM Plugin    become: yes    get_url: -    url: https://github.com/projectcalico/cni-plugin/releases/download/v1.5.5/calico-ipam +    url: "{{ calico_url_ipam }}"      dest: "{{ cni_bin_dir }}"      mode: a+x -- name: Download and unzip standard CNI plugins +- name: Calico Node | Download and extract standard CNI plugins    become: yes    unarchive:      remote_src: True -    src: https://github.com/containernetworking/cni/releases/download/v0.4.0/cni-amd64-v0.4.0.tgz +    src: "{{ cni_url }}"      dest: "{{ cni_bin_dir }}" -- name: Assure Calico conf dir exists +- name: Calico Node | Assure Calico conf dir exists    become: yes    file: path=/etc/calico/ state=directory -- name: Set calicoctl.cfg +- name: Calico Node | Set calicoctl.cfg    template: -    src: calico.cfg.j2 +    src: calicoctl.cfg.j2      dest: "/etc/calico/calicoctl.cfg" diff --git a/roles/calico/templates/calico.cfg.j2 b/roles/calico/templates/10-calico.cfg.j2 index 722385ed8..722385ed8 100644 --- a/roles/calico/templates/calico.cfg.j2 +++ b/roles/calico/templates/10-calico.cfg.j2 diff --git a/roles/calico/templates/calico.conf.j2 b/roles/calico/templates/calicoctl.conf.j2 index 3c8c6b046..3c8c6b046 100644 --- a/roles/calico/templates/calico.conf.j2 +++ b/roles/calico/templates/calicoctl.conf.j2 diff --git a/roles/calico_master/defaults/main.yaml b/roles/calico_master/defaults/main.yaml index db0d17884..5b324bce5 100644 --- a/roles/calico_master/defaults/main.yaml +++ b/roles/calico_master/defaults/main.yaml @@ -1,2 +1,6 @@  ---  kubeconfig: "{{ openshift.common.config_base }}/master/openshift-master.kubeconfig" + +calicoctl_bin_dir: "/usr/local/bin/" + +calico_url_calicoctl: "https://github.com/projectcalico/calicoctl/releases/download/v1.1.3/calicoctl" diff --git a/roles/calico_master/tasks/main.yml b/roles/calico_master/tasks/main.yml index 3358abe23..8ddca26d6 100644 --- a/roles/calico_master/tasks/main.yml +++ b/roles/calico_master/tasks/main.yml @@ -1,5 +1,5 @@  --- -- name: Assure the calico certs have been generated +- name: Calico Master | Assure the calico certs have been generated    stat:      path: "{{ item }}"    with_items: @@ -7,17 +7,17 @@    - "{{ calico_etcd_cert_file}}"    - "{{ calico_etcd_key_file }}" -- name: Create temp directory for policy controller definition +- name: Calico Master | Create temp directory for policy controller definition    command: mktemp -d /tmp/openshift-ansible-XXXXXXX    register: mktemp    changed_when: False -- name: Write Calico Policy Controller definition +- name: Calico Master | Write Calico Policy Controller definition    template:      dest: "{{ mktemp.stdout }}/calico-policy-controller.yml"      src: calico-policy-controller.yml.j2 -- name: Launch Calico Policy Controller +- name: Calico Master | Launch Calico Policy Controller    command: >      {{ openshift.common.client_binary }} create      -f {{ mktemp.stdout }}/calico-policy-controller.yml @@ -26,16 +26,23 @@    failed_when: ('already exists' not in calico_create_output.stderr) and ('created' not in calico_create_output.stdout)    changed_when: ('created' in calico_create_output.stdout) -- name: Delete temp directory +- name: Calico Master | Delete temp directory    file:      name: "{{ mktemp.stdout }}"      state: absent    changed_when: False -- name: oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:calico +- name: Calico Master | oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:calico    oc_adm_policy_user:      user: system:serviceaccount:kube-system:calico      resource_kind: scc      resource_name: privileged      state: present + +- name: Download Calicoctl +  become: yes +  get_url: +    url: "{{ calico_url_calicoctl }}" +    dest: "{{ calicoctl_bin_dir }}" +    mode: a+x diff --git a/roles/docker/tasks/systemcontainer_docker.yml b/roles/docker/tasks/systemcontainer_docker.yml index c85801546..3af3e00b2 100644 --- a/roles/docker/tasks/systemcontainer_docker.yml +++ b/roles/docker/tasks/systemcontainer_docker.yml @@ -41,25 +41,38 @@      daemon_reload: yes    ignore_errors: True -# Set http_proxy and https_proxy in /etc/atomic.conf +# Set http_proxy, https_proxy, and no_proxy in /etc/atomic.conf +# regexp: the line starts with or without #, followed by the string +#         http_proxy, then either : or =  - block:      - name: Add http_proxy to /etc/atomic.conf        lineinfile: -        path: /etc/atomic.conf -        line: "http_proxy={{ openshift.common.http_proxy | default('') }}" +        dest: /etc/atomic.conf +        regexp: "^#?http_proxy[:=]{1}" +        line: "http_proxy: {{ openshift.common.http_proxy | default('') }}"        when:          - openshift.common.http_proxy is defined          - openshift.common.http_proxy != ''      - name: Add https_proxy to /etc/atomic.conf        lineinfile: -        path: /etc/atomic.conf -        line: "https_proxy={{ openshift.common.https_proxy | default('') }}" +        dest: /etc/atomic.conf +        regexp: "^#?https_proxy[:=]{1}" +        line: "https_proxy: {{ openshift.common.https_proxy | default('') }}"        when:          - openshift.common.https_proxy is defined          - openshift.common.https_proxy != '' +    - name: Add no_proxy to /etc/atomic.conf +      lineinfile: +        dest: /etc/atomic.conf +        regexp: "^#?no_proxy[:=]{1}" +        line: "no_proxy: {{ openshift.common.no_proxy | default('') }}" +      when: +        - openshift.common.no_proxy is defined +        - openshift.common.no_proxy != '' +  - block:      - name: Set to default prepend @@ -88,9 +101,13 @@        set_fact:          l_docker_image: "{{ l_docker_image_prepend }}/{{ openshift.docker.service_name }}:latest" +# NOTE: no_proxy added as a workaround until https://github.com/projectatomic/atomic/pull/999 is released  - name: Pre-pull Container Enginer System Container image    command: "atomic pull --storage ostree {{ l_docker_image }}"    changed_when: false +  environment: +    NO_PROXY: "{{ openshift.common.no_proxy | default('') }}" +  - name: Ensure container-engine.service.d directory exists    file: diff --git a/roles/docker/templates/systemcontainercustom.conf.j2 b/roles/docker/templates/systemcontainercustom.conf.j2 index b727c57d4..86eebfba6 100644 --- a/roles/docker/templates/systemcontainercustom.conf.j2 +++ b/roles/docker/templates/systemcontainercustom.conf.j2 @@ -2,13 +2,13 @@  [Service]  {% if "http_proxy" in openshift.common %} -ENVIRONMENT=HTTP_PROXY={{ docker_http_proxy }} +Environment=HTTP_PROXY={{ docker_http_proxy }}  {% endif -%}  {% if "https_proxy" in openshift.common %} -ENVIRONMENT=HTTPS_PROXY={{ docker_http_proxy }} +Environment=HTTPS_PROXY={{ docker_http_proxy }}  {% endif -%}  {% if "no_proxy" in openshift.common %} -ENVIRONMENT=NO_PROXY={{ docker_no_proxy }} +Environment=NO_PROXY={{ docker_no_proxy }}  {% endif %}  {%- if os_firewall_use_firewalld|default(false) %}  [Unit] diff --git a/roles/lib_openshift/library/oc_adm_ca_server_cert.py b/roles/lib_openshift/library/oc_adm_ca_server_cert.py index 03d3e17c4..a6273cfe4 100644 --- a/roles/lib_openshift/library/oc_adm_ca_server_cert.py +++ b/roles/lib_openshift/library/oc_adm_ca_server_cert.py @@ -1534,6 +1534,10 @@ class CAServerCert(OpenShiftCLI):      def run_ansible(params, check_mode):          '''run the idempotent ansible code''' +        # Filter non-strings from hostnames list s.t. the omit filter +        # may be used to conditionally add a hostname. +        params['hostnames'] = [host for host in params['hostnames'] if isinstance(host, string_types)] +          config = CAServerCertConfig(params['kubeconfig'],                                      params['debug'],                                      {'cert':          {'value': params['cert'], 'include': True}, @@ -1583,6 +1587,10 @@ class CAServerCert(OpenShiftCLI):  # -*- -*- -*- Begin included fragment: ansible/oc_adm_ca_server_cert.py -*- -*- -*- + +# pylint: disable=wrong-import-position +from ansible.module_utils.six import string_types +  def main():      '''      ansible oc adm module for ca create-server-cert diff --git a/roles/lib_openshift/src/ansible/oc_adm_ca_server_cert.py b/roles/lib_openshift/src/ansible/oc_adm_ca_server_cert.py index 10f1c9b4b..fc394cb43 100644 --- a/roles/lib_openshift/src/ansible/oc_adm_ca_server_cert.py +++ b/roles/lib_openshift/src/ansible/oc_adm_ca_server_cert.py @@ -1,6 +1,10 @@  # pylint: skip-file  # flake8: noqa + +# pylint: disable=wrong-import-position +from ansible.module_utils.six import string_types +  def main():      '''      ansible oc adm module for ca create-server-cert diff --git a/roles/lib_openshift/src/class/oc_adm_ca_server_cert.py b/roles/lib_openshift/src/class/oc_adm_ca_server_cert.py index cf99a6584..37a64e4ef 100644 --- a/roles/lib_openshift/src/class/oc_adm_ca_server_cert.py +++ b/roles/lib_openshift/src/class/oc_adm_ca_server_cert.py @@ -96,6 +96,10 @@ class CAServerCert(OpenShiftCLI):      def run_ansible(params, check_mode):          '''run the idempotent ansible code''' +        # Filter non-strings from hostnames list s.t. the omit filter +        # may be used to conditionally add a hostname. +        params['hostnames'] = [host for host in params['hostnames'] if isinstance(host, string_types)] +          config = CAServerCertConfig(params['kubeconfig'],                                      params['debug'],                                      {'cert':          {'value': params['cert'], 'include': True}, diff --git a/roles/lib_utils/library/repoquery.py b/roles/lib_utils/library/repoquery.py index cf33e48d5..95a305b58 100644 --- a/roles/lib_utils/library/repoquery.py +++ b/roles/lib_utils/library/repoquery.py @@ -465,7 +465,7 @@ class Repoquery(RepoqueryCLI):          version_dict = defaultdict(dict) -        for version in query_output.split('\n'): +        for version in query_output.decode().split('\n'):              pkg_info = version.split("|")              pkg_version = {} diff --git a/roles/lib_utils/src/class/repoquery.py b/roles/lib_utils/src/class/repoquery.py index 28e3a3e89..e997780ad 100644 --- a/roles/lib_utils/src/class/repoquery.py +++ b/roles/lib_utils/src/class/repoquery.py @@ -48,7 +48,7 @@ class Repoquery(RepoqueryCLI):          version_dict = defaultdict(dict) -        for version in query_output.split('\n'): +        for version in query_output.decode().split('\n'):              pkg_info = version.split("|")              pkg_version = {} diff --git a/roles/lib_utils/src/test/unit/test_repoquery.py b/roles/lib_utils/src/test/unit/test_repoquery.py index 9991ecd14..325f41dab 100755 --- a/roles/lib_utils/src/test/unit/test_repoquery.py +++ b/roles/lib_utils/src/test/unit/test_repoquery.py @@ -45,7 +45,7 @@ class RepoQueryTest(unittest.TestCase):          # Return values of our mocked function call. These get returned once per call.          mock_cmd.side_effect = [ -            (0, '4.2.46|21.el7_3|x86_64|rhel-7-server-rpms|4.2.46-21.el7_3', valid_stderr),  # first call to the mock +            (0, b'4.2.46|21.el7_3|x86_64|rhel-7-server-rpms|4.2.46-21.el7_3', valid_stderr),  # first call to the mock          ]          # Act diff --git a/roles/openshift_common/tasks/main.yml b/roles/openshift_common/tasks/main.yml index d9ccf87bc..51313a258 100644 --- a/roles/openshift_common/tasks/main.yml +++ b/roles/openshift_common/tasks/main.yml @@ -28,10 +28,18 @@    when: openshift_use_openshift_sdn | default(true) | bool and openshift_use_calico | default(false) | bool  - fail: -    msg: Calico cannot currently be used with Flannel in Openshift. Set either openshift_use_calico or openshift_use_flannel, but not both +    msg: The Calico playbook does not yet integrate with the Flannel playbook in Openshift. Set either openshift_use_calico or openshift_use_flannel, but not both.    when: openshift_use_calico | default(false) | bool and openshift_use_flannel | default(false) | bool  - fail: +    msg: Calico can not be used with Nuage in Openshift. Set either openshift_use_calico or openshift_use_nuage, but not both +  when: openshift_use_calico | default(false) | bool and openshift_use_nuage | default(false) | bool + +- fail: +    msg: Calico can not be used with Contiv in Openshift. Set either openshift_use_calico or openshift_use_contiv, but not both +  when: openshift_use_calico | default(false) | bool and openshift_use_contiv | default(false) | bool + +- fail:      msg: openshift_hostname must be 64 characters or less    when: openshift_hostname is defined and openshift_hostname | length > 64 diff --git a/roles/openshift_excluder/README.md b/roles/openshift_excluder/README.md index df45c28bf..80cb88d45 100644 --- a/roles/openshift_excluder/README.md +++ b/roles/openshift_excluder/README.md @@ -1,50 +1,69 @@  OpenShift Excluder -================ +==================  Manages the excluder packages which add yum and dnf exclusions ensuring that -the packages we care about are not inadvertantly updated. See +the packages we care about are not inadvertently updated. See  https://github.com/openshift/origin/tree/master/contrib/excluder  Requirements  ------------ -openshift_facts +None -Facts ------ +Inventory Variables +------------------- -| Name                       | Default Value | Description                            | ------------------------------|---------------|----------------------------------------| -| enable_docker_excluder     | enable_excluders | Enable docker excluder. If not set, the docker excluder is ignored. | -| enable_openshift_excluder  | enable_excluders | Enable openshift excluder. If not set, the openshift excluder is ignored. | -| enable_excluders           | None             | Enable all excluders +| Name                                 | Default Value              | Description                            | +---------------------------------------|----------------------------|----------------------------------------| +| openshift_enable_excluders           | True                       | Enable all excluders                   | +| openshift_enable_docker_excluder     | openshift_enable_excluders | Enable docker excluder. If not set, the docker excluder is ignored. | +| openshift_enable_openshift_excluder  | openshift_enable_excluders | Enable openshift excluder. If not set, the openshift excluder is ignored. |  Role Variables  -------------- -None + +| Name                                      | Default | Choices         | Description                                                               | +|-------------------------------------------|---------|-----------------|---------------------------------------------------------------------------| +| r_openshift_excluder_action               | enable  | enable, disable | Action to perform when calling this role                                  | +| r_openshift_excluder_verify_upgrade       | false   | true, false     | When upgrading, this variable should be set to true when calling the role | +| r_openshift_excluder_package_state        | present | present, latest | Use 'latest' to upgrade openshift_excluder package                        | +| r_openshift_excluder_docker_package_state | present | present, latest | Use 'latest' to upgrade docker_excluder package                           | +| r_openshift_excluder_service_type         | None    |                 | (Required) Defined as openshift.common.service_type e.g. atomic-openshift | +| r_openshift_excluder_upgrade_target       | None    |                 | Required when r_openshift_excluder_verify_upgrade is true, defined as openshift_upgrade_target by Upgrade playbooks e.g. '3.6'|  Dependencies  ------------ -- openshift_facts -- openshift_repos -- lib_utils - -Tasks to include ----------------- - -- exclude: enable excluders -- unexclude: disable excluders -- install: install excluders (installation is followed by excluder enabling) -- enable: enable excluders (install excluder(s) if not installed) -- disabled: disable excluders (install excluder(s) if not installed) +- lib_utils  Example Playbook  ---------------- +```yaml +- name: Demonstrate OpenShift Excluder usage +  hosts: oo_masters_to_config:oo_nodes_to_config +  roles: +  # Disable all excluders +  - role: openshift_excluder +    r_openshift_excluder_action: disable +    r_openshift_excluder_service_type: "{{ openshift.common.service_type }}" +  # Enable all excluders +  - role: openshift_excluder +    r_openshift_excluder_action: enable +    r_openshift_excluder_service_type: "{{ openshift.common.service_type }}" +  # Disable all excluders and verify appropriate excluder packages are available for upgrade +  - role: openshift_excluder +    r_openshift_excluder_action: disable +    r_openshift_excluder_service_type: "{{ openshift.common.service_type }}" +    r_openshift_excluder_verify_upgrade: true +    r_openshift_excluder_upgrade_target: "{{ openshift_upgrade_target }}" +    r_openshift_excluder_package_state: latest +    r_openshift_excluder_docker_package_state: latest +```  TODO  ---- +  It should be possible to manage the two excluders independently though that's not a hard requirement. However it should be done to manage docker on RHEL Containerized hosts.  License diff --git a/roles/openshift_excluder/defaults/main.yml b/roles/openshift_excluder/defaults/main.yml index 7c3ae2a86..d4f151142 100644 --- a/roles/openshift_excluder/defaults/main.yml +++ b/roles/openshift_excluder/defaults/main.yml @@ -1,6 +1,19 @@  ---  # keep the 'current' package or update to 'latest' if available? -openshift_excluder_package_state: present -docker_excluder_package_state: present +r_openshift_excluder_package_state: present +r_openshift_excluder_docker_package_state: present -enable_excluders: true +# Legacy variables are included for backwards compatibility with v3.5 +# Inventory variables                   Legacy +# openshift_enable_excluders            enable_excluders +# openshift_enable_openshift_excluder   enable_openshift_excluder +# openshift_enable_docker_excluder      enable_docker_excluder +r_openshift_excluder_enable_excluders: "{{ openshift_enable_excluders | default(enable_excluders) | default(true) }}" +r_openshift_excluder_enable_openshift_excluder: "{{ openshift_enable_openshift_excluder | default(enable_openshift_excluder) | default(r_openshift_excluder_enable_excluders) }}" +r_openshift_excluder_enable_docker_excluder: "{{ openshift_enable_docker_excluder | default(enable_docker_excluder) | default(r_openshift_excluder_enable_excluders) }}" + +# Default action when calling this role +r_openshift_excluder_action: enable + +# When upgrading, this variable should be set to true when calling the role +r_openshift_excluder_verify_upgrade: false diff --git a/roles/openshift_excluder/meta/main.yml b/roles/openshift_excluder/meta/main.yml index c6081cdb2..871081c19 100644 --- a/roles/openshift_excluder/meta/main.yml +++ b/roles/openshift_excluder/meta/main.yml @@ -1,7 +1,7 @@  ---  galaxy_info:    author: Scott Dodson -  description: OpenShift Examples +  description: OpenShift Excluder    company: Red Hat, Inc.    license: Apache License, Version 2.0    min_ansible_version: 2.2 @@ -12,6 +12,4 @@ galaxy_info:    categories:    - cloud  dependencies: -- { role: openshift_facts } -- { role: openshift_repos } -- { role: lib_utils } +- role: lib_utils diff --git a/roles/openshift_excluder/tasks/disable.yml b/roles/openshift_excluder/tasks/disable.yml index 97044fff6..8d5a08874 100644 --- a/roles/openshift_excluder/tasks/disable.yml +++ b/roles/openshift_excluder/tasks/disable.yml @@ -1,47 +1,38 @@  --- -# input variables -# - excluder_package_state -# - docker_excluder_package_state -- include: init.yml +- when: r_openshift_excluder_verify_upgrade +  block: +  - name: Include verify_upgrade.yml when upgrading +    include: verify_upgrade.yml  # unexclude the current openshift/origin-excluder if it is installed so it can be updated -- include: unexclude.yml +- name: Disable OpenShift excluder so it can be updated +  include: unexclude.yml    vars:      unexclude_docker_excluder: false -    unexclude_openshift_excluder: "{{ openshift_excluder_on | bool }}" -  when: -  - not openshift.common.is_atomic | bool +    unexclude_openshift_excluder: "{{ r_openshift_excluder_enable_openshift_excluder }}"  # Install any excluder that is enabled -- include: install.yml -  vars: -    # Both docker_excluder_on and openshift_excluder_on are set in openshift_excluder->init task -    install_docker_excluder: "{{ docker_excluder_on | bool }}" -    install_openshift_excluder: "{{ openshift_excluder_on | bool }}" -  when: docker_excluder_on or openshift_excluder_on - -  # if the docker excluder is not enabled, we don't care about its status -  # it the docker excluder is enabled, we install it and in case its status is non-zero -  # it is enabled no matter what +- name: Include install.yml +  include: install.yml  # And finally adjust an excluder in order to update host components correctly. First  # exclude then unexclude -- block: -  - include: exclude.yml -    vars: -      # Enable the docker excluder only if it is overrided -      # BZ #1430612: docker excluders should be enabled even during installation and upgrade -      exclude_docker_excluder: "{{ docker_excluder_on | bool }}" -      # excluder is to be disabled by default -      exclude_openshift_excluder: false -  # All excluders that are to be disabled are disabled -  - include: unexclude.yml -    vars: -      # If the docker override  is not set, default to the generic behaviour -      # BZ #1430612: docker excluders should be enabled even during installation and upgrade -      unexclude_docker_excluder: false -      # disable openshift excluder is never overrided to be enabled -      # disable it if the docker excluder is enabled -      unexclude_openshift_excluder: "{{ openshift_excluder_on | bool }}" -  when: -  - not openshift.common.is_atomic | bool +- name: Include exclude.yml +  include: exclude.yml +  vars: +    # Enable the docker excluder only if it is overridden +    # BZ #1430612: docker excluders should be enabled even during installation and upgrade +    exclude_docker_excluder: "{{ r_openshift_excluder_enable_docker_excluder }}" +    # excluder is to be disabled by default +    exclude_openshift_excluder: false + +# All excluders that are to be disabled are disabled +- name: Include unexclude.yml +  include: unexclude.yml +  vars: +    # If the docker override  is not set, default to the generic behaviour +    # BZ #1430612: docker excluders should be enabled even during installation and upgrade +    unexclude_docker_excluder: false +    # disable openshift excluder is never overridden to be enabled +    # disable it if the docker excluder is enabled +    unexclude_openshift_excluder: "{{ r_openshift_excluder_enable_openshift_excluder }}" diff --git a/roles/openshift_excluder/tasks/enable.yml b/roles/openshift_excluder/tasks/enable.yml index e719325bc..fce44cfb5 100644 --- a/roles/openshift_excluder/tasks/enable.yml +++ b/roles/openshift_excluder/tasks/enable.yml @@ -1,18 +1,6 @@  --- -# input variables: -- block: -  - include: init.yml +- name: Install excluders +  include: install.yml -  - include: install.yml -    vars: -      install_docker_excluder: "{{ docker_excluder_on | bool }}" -      install_openshift_excluder: "{{ openshift_excluder_on | bool }}" -    when: docker_excluder_on or openshift_excluder_on | bool - -  - include: exclude.yml -    vars: -      exclude_docker_excluder: "{{ docker_excluder_on | bool }}" -      exclude_openshift_excluder: "{{ openshift_excluder_on | bool }}" - -  when: -  - not openshift.common.is_atomic | bool +- name: Enable excluders +  include: exclude.yml diff --git a/roles/openshift_excluder/tasks/exclude.yml b/roles/openshift_excluder/tasks/exclude.yml index ca18d343f..934f1b2d2 100644 --- a/roles/openshift_excluder/tasks/exclude.yml +++ b/roles/openshift_excluder/tasks/exclude.yml @@ -1,30 +1,22 @@  --- -# input variables: -# - exclude_docker_excluder -# - exclude_openshift_excluder -- block: +- name: Check for docker-excluder +  stat: +    path: /sbin/{{ r_openshift_excluder_service_type }}-docker-excluder +  register: docker_excluder_stat -  - name: Check for docker-excluder -    stat: -      path: /sbin/{{ openshift.common.service_type }}-docker-excluder -    register: docker_excluder_stat -  - name: Enable docker excluder -    command: "{{ openshift.common.service_type }}-docker-excluder exclude" -    when: -    - exclude_docker_excluder | default(false) | bool -    - docker_excluder_stat.stat.exists +- name: Enable docker excluder +  command: "{{ r_openshift_excluder_service_type }}-docker-excluder exclude" +  when: +  - r_openshift_excluder_enable_docker_excluder | bool +  - docker_excluder_stat.stat.exists -  - name: Check for openshift excluder -    stat: -      path: /sbin/{{ openshift.common.service_type }}-excluder -    register: openshift_excluder_stat -  - name: Enable openshift excluder -    command: "{{ openshift.common.service_type }}-excluder exclude" -    # if the openshift override is set, it means the openshift excluder is disabled no matter what -    # if the openshift override is not set, the excluder is set based on enable_openshift_excluder -    when: -    - exclude_openshift_excluder | default(false) | bool -    - openshift_excluder_stat.stat.exists +- name: Check for openshift excluder +  stat: +    path: /sbin/{{ r_openshift_excluder_service_type }}-excluder +  register: openshift_excluder_stat +- name: Enable openshift excluder +  command: "{{ r_openshift_excluder_service_type }}-excluder exclude"    when: -  - not openshift.common.is_atomic | bool +  - r_openshift_excluder_enable_openshift_excluder | bool +  - openshift_excluder_stat.stat.exists diff --git a/roles/openshift_excluder/tasks/init.yml b/roles/openshift_excluder/tasks/init.yml deleted file mode 100644 index 1ea18f363..000000000 --- a/roles/openshift_excluder/tasks/init.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- name: Evalute if docker excluder is to be enabled -  set_fact: -    docker_excluder_on: "{{ enable_docker_excluder | default(enable_excluders) | bool }}" - -- debug: var=docker_excluder_on - -- name: Evalute if openshift excluder is to be enabled -  set_fact: -    openshift_excluder_on: "{{ enable_openshift_excluder | default(enable_excluders) | bool }}" - -- debug: var=openshift_excluder_on diff --git a/roles/openshift_excluder/tasks/install.yml b/roles/openshift_excluder/tasks/install.yml index 3490a613e..d09358bee 100644 --- a/roles/openshift_excluder/tasks/install.yml +++ b/roles/openshift_excluder/tasks/install.yml @@ -1,21 +1,14 @@  --- -# input Variables -# - install_docker_excluder -# - install_openshift_excluder -- block: - -  - name: Install docker excluder -    package: -      name: "{{ openshift.common.service_type }}-docker-excluder{{ openshift_pkg_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) +  '*' }}" -      state: "{{ docker_excluder_package_state }}" -    when: -    - install_docker_excluder | default(true) | bool +- name: Install docker excluder +  package: +    name: "{{ r_openshift_excluder_service_type }}-docker-excluder{{ openshift_pkg_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) +  '*' }}" +    state: "{{ r_openshift_excluder_docker_package_state }}" +  when: +  - r_openshift_excluder_enable_docker_excluder | bool -  - name: Install openshift excluder -    package: -      name: "{{ openshift.common.service_type }}-excluder{{ openshift_pkg_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) + '*' }}" -      state: "{{ openshift_excluder_package_state }}" -    when: -    - install_openshift_excluder | default(true) | bool +- name: Install openshift excluder +  package: +    name: "{{ r_openshift_excluder_service_type }}-excluder{{ openshift_pkg_version | default('') | oo_image_tag_to_rpm_version(include_dash=True) + '*' }}" +    state: "{{ r_openshift_excluder_package_state }}"    when: -  - not openshift.common.is_atomic | bool +  - r_openshift_excluder_enable_openshift_excluder | bool diff --git a/roles/openshift_excluder/tasks/main.yml b/roles/openshift_excluder/tasks/main.yml new file mode 100644 index 000000000..db20b4012 --- /dev/null +++ b/roles/openshift_excluder/tasks/main.yml @@ -0,0 +1,38 @@ +--- +- name: Detecting Atomic Host Operating System +  stat: +    path: /run/ostree-booted +  register: ostree_booted + +- block: + +  - name: Debug r_openshift_excluder_enable_docker_excluder +    debug: +      var: r_openshift_excluder_enable_docker_excluder + +  - name: Debug r_openshift_excluder_enable_openshift_excluder +    debug: +      var: r_openshift_excluder_enable_openshift_excluder + +  - name: Fail if invalid openshift_excluder_action provided +    fail: +      msg: "openshift_excluder role can only be called with 'enable' or 'disable'" +    when: r_openshift_excluder_action not in ['enable', 'disable'] + +  - name: Fail if r_openshift_excluder_service_type is not defined +    fail: +      msg: "r_openshift_excluder_service_type must be specified for this role" +    when: r_openshift_excluder_service_type is not defined + +  - name: Fail if r_openshift_excluder_upgrade_target is not defined +    fail: +      msg: "r_openshift_excluder_upgrade_target must be provided when using this role for upgrades" +    when: +    - r_openshift_excluder_verify_upgrade | bool +    - r_openshift_excluder_upgrade_target is not defined + +  - name: Include main action task file +    include: "{{ r_openshift_excluder_action }}.yml" + +  when: +  - not ostree_booted.stat.exists | bool diff --git a/roles/openshift_excluder/tasks/unexclude.yml b/roles/openshift_excluder/tasks/unexclude.yml index 4df7f14b4..a5ce8d5c7 100644 --- a/roles/openshift_excluder/tasks/unexclude.yml +++ b/roles/openshift_excluder/tasks/unexclude.yml @@ -2,27 +2,25 @@  # input variables:  # - unexclude_docker_excluder  # - unexclude_openshift_excluder -- block: -  - name: Check for docker-excluder -    stat: -      path: /sbin/{{ openshift.common.service_type }}-docker-excluder -    register: docker_excluder_stat -  - name: disable docker excluder -    command: "{{ openshift.common.service_type }}-docker-excluder unexclude" -    when: -    - unexclude_docker_excluder | default(false) | bool -    - docker_excluder_stat.stat.exists +- name: Check for docker-excluder +  stat: +    path: /sbin/{{ r_openshift_excluder_service_type }}-docker-excluder +  register: docker_excluder_stat -  - name: Check for openshift excluder -    stat: -      path: /sbin/{{ openshift.common.service_type }}-excluder -    register: openshift_excluder_stat -  - name: disable openshift excluder -    command: "{{ openshift.common.service_type }}-excluder unexclude" -    when: -    - unexclude_openshift_excluder | default(false) | bool -    - openshift_excluder_stat.stat.exists +- name: disable docker excluder +  command: "{{ r_openshift_excluder_service_type }}-docker-excluder unexclude" +  when: +  - unexclude_docker_excluder | default(false) | bool +  - docker_excluder_stat.stat.exists + +- name: Check for openshift excluder +  stat: +    path: /sbin/{{ r_openshift_excluder_service_type }}-excluder +  register: openshift_excluder_stat +- name: disable openshift excluder +  command: "{{ r_openshift_excluder_service_type }}-excluder unexclude"    when: -  - not openshift.common.is_atomic | bool +  - unexclude_openshift_excluder | default(false) | bool +  - openshift_excluder_stat.stat.exists diff --git a/roles/openshift_excluder/tasks/verify_excluder.yml b/roles/openshift_excluder/tasks/verify_excluder.yml index aebdb8c58..c35639c1b 100644 --- a/roles/openshift_excluder/tasks/verify_excluder.yml +++ b/roles/openshift_excluder/tasks/verify_excluder.yml @@ -1,35 +1,32 @@  ---  # input variables: -# - repoquery_cmd  # - excluder -# - openshift_upgrade_target -- block: -  - name: Get available excluder version -    repoquery: -      name: "{{ excluder }}" -      ignore_excluders: true -    register: excluder_out +- name: Get available excluder version +  repoquery: +    name: "{{ excluder }}" +    ignore_excluders: true +  register: repoquery_out -  - fail: -      msg: "Package {{ excluder }} not found" -    when: not excluder_out.results.package_found +- name: Fail when excluder package is not found +  fail: +    msg: "Package {{ excluder }} not found" +  when: not repoquery_out.results.package_found -  - set_fact: -      excluder_version: "{{ excluder_out.results.versions.available_versions.0 }}" +- name: Set fact excluder_version +  set_fact: +    excluder_version: "{{ repoquery_out.results.versions.available_versions.0 }}" -  - name: "{{ excluder }} version detected" -    debug: -      msg: "{{ excluder }}: {{ excluder_version }}" +- name: "{{ excluder }} version detected" +  debug: +    msg: "{{ excluder }}: {{ excluder_version }}" -  - name: Printing upgrade target version -    debug: -      msg: "{{ openshift_upgrade_target }}" +- name: Printing upgrade target version +  debug: +    msg: "{{ r_openshift_excluder_upgrade_target }}" -  - name: Check the available {{ excluder }} version is at most of the upgrade target version -    fail: -      msg: "Available {{ excluder }} version {{ excluder_version }} is higher than the upgrade target version" -    when: -    - "{{ excluder_version != '' }}" -    - "{{ excluder_version.split('.')[0:2] | join('.') | version_compare(openshift_upgrade_target.split('.')[0:2] | join('.'), '>', strict=True) }}" +- name: Check the available {{ excluder }} version is at most of the upgrade target version +  fail: +    msg: "Available {{ excluder }} version {{ excluder_version }} is higher than the upgrade target version"    when: -  - not openshift.common.is_atomic | bool +  - excluder_version != '' +  - excluder_version.split('.')[0:2] | join('.') | version_compare(r_openshift_excluder_upgrade_target.split('.')[0:2] | join('.'), '>', strict=True) diff --git a/roles/openshift_excluder/tasks/verify_upgrade.yml b/roles/openshift_excluder/tasks/verify_upgrade.yml index 6ea2130ac..42026664a 100644 --- a/roles/openshift_excluder/tasks/verify_upgrade.yml +++ b/roles/openshift_excluder/tasks/verify_upgrade.yml @@ -1,15 +1,12 @@  --- -# input variables -# - repoquery_cmd -# - openshift_upgrade_target -- include: init.yml - -- include: verify_excluder.yml +- name: Verify Docker Excluder version +  include: verify_excluder.yml    vars: -    excluder: "{{ openshift.common.service_type }}-docker-excluder" -  when: docker_excluder_on +    excluder: "{{ r_openshift_excluder_service_type }}-docker-excluder" +  when: r_openshift_excluder_enable_docker_excluder | bool -- include: verify_excluder.yml +- name: Verify OpenShift Excluder version +  include: verify_excluder.yml    vars: -    excluder: "{{ openshift.common.service_type }}-excluder" -  when: openshift_excluder_on +    excluder: "{{ r_openshift_excluder_service_type }}-excluder" +  when: r_openshift_excluder_enable_openshift_excluder | bool diff --git a/roles/openshift_logging/library/openshift_logging_facts.py b/roles/openshift_logging/library/openshift_logging_facts.py index 64bc33435..a55e72725 100644 --- a/roles/openshift_logging/library/openshift_logging_facts.py +++ b/roles/openshift_logging/library/openshift_logging_facts.py @@ -37,7 +37,7 @@ LOGGING_INFRA_KEY = "logging-infra"  # selectors for filtering resources  DS_FLUENTD_SELECTOR = LOGGING_INFRA_KEY + "=" + "fluentd"  LOGGING_SELECTOR = LOGGING_INFRA_KEY + "=" + "support" -ROUTE_SELECTOR = "component=support, logging-infra=support, provider=openshift" +ROUTE_SELECTOR = "component=support,logging-infra=support,provider=openshift"  COMPONENTS = ["kibana", "curator", "elasticsearch", "fluentd", "kibana_ops", "curator_ops", "elasticsearch_ops"] diff --git a/roles/openshift_logging/tasks/main.yaml b/roles/openshift_logging/tasks/main.yaml index 387da618d..3d8cd3410 100644 --- a/roles/openshift_logging/tasks/main.yaml +++ b/roles/openshift_logging/tasks/main.yaml @@ -28,6 +28,7 @@    register: local_tmp    changed_when: False    check_mode: no +  become: no  - debug: msg="Created local temp dir {{local_tmp.stdout}}" diff --git a/roles/openshift_master/templates/atomic-openshift-master.service b/roles/openshift_master/files/atomic-openshift-master.service index 02af4dd16..02af4dd16 100644 --- a/roles/openshift_master/templates/atomic-openshift-master.service +++ b/roles/openshift_master/files/atomic-openshift-master.service diff --git a/roles/openshift_master/templates/origin-master.service b/roles/openshift_master/files/origin-master.service index cf79dda02..cf79dda02 100644 --- a/roles/openshift_master/templates/origin-master.service +++ b/roles/openshift_master/files/origin-master.service diff --git a/roles/openshift_master/tasks/files b/roles/openshift_master/tasks/files new file mode 120000 index 000000000..feb122881 --- /dev/null +++ b/roles/openshift_master/tasks/files @@ -0,0 +1 @@ +../files
\ No newline at end of file diff --git a/roles/openshift_master/tasks/systemd_units.yml b/roles/openshift_master/tasks/systemd_units.yml index cfa860edf..dfc255b3d 100644 --- a/roles/openshift_master/tasks/systemd_units.yml +++ b/roles/openshift_master/tasks/systemd_units.yml @@ -33,7 +33,7 @@    register: create_master_unit_file  - name: Install Master service file -  template: +  copy:      dest: "/etc/systemd/system/{{ openshift.common.service_type }}-master.service"      src: "{{ openshift.common.service_type }}-master.service"    register: create_master_unit_file diff --git a/roles/openshift_master_facts/defaults/main.yml b/roles/openshift_master_facts/defaults/main.yml index f1cbbeb2d..a80313505 100644 --- a/roles/openshift_master_facts/defaults/main.yml +++ b/roles/openshift_master_facts/defaults/main.yml @@ -1,2 +1,24 @@  ---  openshift_master_default_subdomain: "{{ lookup('oo_option', 'openshift_master_default_subdomain') | default(None, true) }}" +openshift_master_admission_plugin_config: +  openshift.io/ImagePolicy: +    configuration: +      kind: ImagePolicyConfig +      apiVersion: v1 +      # To require that all images running on the platform be imported first, you may uncomment the +      # following rule. Any image that refers to a registry outside of OpenShift will be rejected unless it +      # unless it points directly to an image digest (myregistry.com/myrepo/image@sha256:ea83bcf...) and that +      # digest has been imported via the import-image flow. +      #resolveImages: Required +      executionRules: +      - name: execution-denied +        # Reject all images that have the annotation images.openshift.io/deny-execution set to true. +        # This annotation may be set by infrastructure that wishes to flag particular images as dangerous +        onResources: +        - resource: pods +        - resource: builds +        reject: true +        matchImageAnnotations: +        - key: images.openshift.io/deny-execution +          value: "true" +        skipOnResolutionFailure: true diff --git a/roles/openshift_master_facts/filter_plugins/openshift_master.py b/roles/openshift_master_facts/filter_plugins/openshift_master.py index 65f85066e..b5be193d2 100644 --- a/roles/openshift_master_facts/filter_plugins/openshift_master.py +++ b/roles/openshift_master_facts/filter_plugins/openshift_master.py @@ -495,6 +495,7 @@ class FilterModule(object):          return u(yaml.dump([idp.to_dict() for idp in idp_list],                             allow_unicode=True,                             default_flow_style=False, +                           width=float("inf"),                             Dumper=AnsibleDumper))      @staticmethod diff --git a/roles/openshift_master_facts/tasks/main.yml b/roles/openshift_master_facts/tasks/main.yml index f048e0aef..79f054b42 100644 --- a/roles/openshift_master_facts/tasks/main.yml +++ b/roles/openshift_master_facts/tasks/main.yml @@ -92,7 +92,7 @@        master_count: "{{ openshift_master_count | default(None) }}"        controller_lease_ttl: "{{ osm_controller_lease_ttl | default(None) }}"        master_image: "{{ osm_image | default(None) }}" -      admission_plugin_config: "{{openshift_master_admission_plugin_config | default(None) }}" +      admission_plugin_config: "{{openshift_master_admission_plugin_config }}"        kube_admission_plugin_config: "{{openshift_master_kube_admission_plugin_config | default(None) }}"  # deprecated, merged with admission_plugin_config        oauth_template: "{{ openshift_master_oauth_template | default(None) }}"  # deprecated in origin 1.2 / OSE 3.2        oauth_templates: "{{ openshift_master_oauth_templates | default(None) }}" diff --git a/roles/openshift_node/tasks/systemd_units.yml b/roles/openshift_node/tasks/systemd_units.yml index a0fbf7dfc..f58c803c4 100644 --- a/roles/openshift_node/tasks/systemd_units.yml +++ b/roles/openshift_node/tasks/systemd_units.yml @@ -28,7 +28,7 @@  - name: Install Node service file    template:      dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node.service" -    src: "{{ openshift.common.service_type }}-node.service" +    src: "{{ openshift.common.service_type }}-node.service.j2"    register: install_node_result    when: not openshift.common.is_containerized | bool diff --git a/roles/openshift_node/templates/atomic-openshift-node.service b/roles/openshift_node/templates/atomic-openshift-node.service.j2 index 80232094a..80232094a 100644 --- a/roles/openshift_node/templates/atomic-openshift-node.service +++ b/roles/openshift_node/templates/atomic-openshift-node.service.j2 diff --git a/roles/openshift_node/templates/openshift.docker.node.service b/roles/openshift_node/templates/openshift.docker.node.service index 06782cb8b..d89b64b06 100644 --- a/roles/openshift_node/templates/openshift.docker.node.service +++ b/roles/openshift_node/templates/openshift.docker.node.service @@ -5,7 +5,7 @@ After=openvswitch.service  PartOf={{ openshift.docker.service_name }}.service  Requires={{ openshift.docker.service_name }}.service  {% if openshift.common.use_openshift_sdn %} -Requires=openvswitch.service +Wants=openvswitch.service  After=ovsdb-server.service  After=ovs-vswitchd.service  {% endif %} diff --git a/roles/openshift_node/templates/origin-node.service b/roles/openshift_node/templates/origin-node.service.j2 index 8047301e6..8047301e6 100644 --- a/roles/openshift_node/templates/origin-node.service +++ b/roles/openshift_node/templates/origin-node.service.j2 diff --git a/roles/openshift_node_upgrade/tasks/main.yml b/roles/openshift_node_upgrade/tasks/main.yml index 94c97d0a5..a41a97e01 100644 --- a/roles/openshift_node_upgrade/tasks/main.yml +++ b/roles/openshift_node_upgrade/tasks/main.yml @@ -127,6 +127,12 @@    - openshift_disable_swap | default(true) | bool    # End Disable Swap Block +- name: Reset selinux context +  command: restorecon -RF {{ openshift.common.data_dir }}/openshift.local.volumes +  when: +  - ansible_selinux is defined +  - ansible_selinux.status == 'enabled' +  # Restart all services  - include: restart.yml diff --git a/roles/openshift_node_upgrade/templates/openshift.docker.node.service b/roles/openshift_node_upgrade/templates/openshift.docker.node.service index a9b393652..2a099301a 100644 --- a/roles/openshift_node_upgrade/templates/openshift.docker.node.service +++ b/roles/openshift_node_upgrade/templates/openshift.docker.node.service @@ -5,7 +5,7 @@ After=openvswitch.service  PartOf={{ openshift.docker.service_name }}.service  Requires={{ openshift.docker.service_name }}.service  {% if openshift.common.use_openshift_sdn %} -Requires=openvswitch.service +Wants=openvswitch.service  {% endif %}  Wants={{ openshift.common.service_type }}-master.service  Requires={{ openshift.common.service_type }}-node-dep.service diff --git a/roles/openshift_repos/files/origin/repos/openshift-ansible-centos-paas-sig.repo b/roles/openshift_repos/files/origin/repos/openshift-ansible-centos-paas-sig.repo index 124bff09d..09364c26f 100644 --- a/roles/openshift_repos/files/origin/repos/openshift-ansible-centos-paas-sig.repo +++ b/roles/openshift_repos/files/origin/repos/openshift-ansible-centos-paas-sig.repo @@ -3,7 +3,7 @@ name=CentOS OpenShift Origin  baseurl=http://mirror.centos.org/centos/7/paas/x86_64/openshift-origin/  enabled=1  gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/openshift-ansible-CentOS-SIG-PaaS +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS  [centos-openshift-origin-testing]  name=CentOS OpenShift Origin Testing diff --git a/roles/openshift_repos/tasks/main.yaml b/roles/openshift_repos/tasks/main.yaml index 9a9436fcb..023b1a9b7 100644 --- a/roles/openshift_repos/tasks/main.yaml +++ b/roles/openshift_repos/tasks/main.yaml @@ -24,15 +24,19 @@      - openshift_additional_repos | length == 0      notify: refresh cache +  # Note: OpenShift repositories under CentOS may be shipped through the +  # "centos-release-openshift-origin" package which configures the repository. +  # This task matches the file names provided by the package so that they are +  # not installed twice in different files and remains idempotent.    - name: Configure origin gpg keys if needed      copy:        src: "{{ item.src }}"        dest: "{{ item.dest }}"      with_items:      - src: origin/gpg_keys/openshift-ansible-CentOS-SIG-PaaS -      dest: /etc/pki/rpm-gpg/ +      dest: /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-PaaS      - src: origin/repos/openshift-ansible-centos-paas-sig.repo -      dest: /etc/yum.repos.d/ +      dest: /etc/yum.repos.d/CentOS-OpenShift-Origin.repo      notify: refresh cache      when:      - ansible_os_family == "RedHat" diff --git a/roles/openshift_version/tasks/main.yml b/roles/openshift_version/tasks/main.yml index 2e9b4cad3..f2f4d16f0 100644 --- a/roles/openshift_version/tasks/main.yml +++ b/roles/openshift_version/tasks/main.yml @@ -3,6 +3,7 @@  - set_fact:      is_containerized: "{{ openshift.common.is_containerized | default(False) | bool }}" +    is_atomic: "{{ openshift.common.is_atomic | default(False) | bool }}"  # Block attempts to install origin without specifying some kind of version information.  # This is because the latest tags for origin are usually alpha builds, which should not @@ -86,9 +87,11 @@    include: set_version_rpm.yml    when: not is_containerized | bool +- name: Set openshift_version for containerized installation +  include: set_version_containerized.yml +  when: is_containerized | bool +  - block: -  - name: Set openshift_version for containerized installation -    include: set_version_containerized.yml    - name: Get available {{ openshift.common.service_type}} version      repoquery:        name: "{{ openshift.common.service_type}}" @@ -104,7 +107,9 @@        msg: "OCP rpm version {{ openshift_rpm_version }} is different from OCP image version {{ openshift_version }}"      # Both versions have the same string representation      when: openshift_rpm_version != openshift_version -  when: is_containerized | bool +  when: +  - is_containerized | bool +  - not is_atomic | bool  # Warn if the user has provided an openshift_image_tag but is not doing a containerized install  # NOTE: This will need to be modified/removed for future container + rpm installations work.  | 
