In an environment utilizing mixed containerized and RPM based installation methods the installer would fail to gather facts when a master and node used different installation methods. This issue has been addressed and mixed installations should work properly.
Description of problem:
The facts collection for {{ openshift.common.admin_binary }} seems to occur on the local facts for a "node" and is not using the fact of the node to which the execution of the command is delegated to. This causes upgrades to fail with mixed RHEL & Atomic environments.
During execution of "playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
The failing task:
- name: Mark unschedulable if host is a node
command: >
{{ openshift.common.admin_binary }} manage-node {{ openshift.common.hostname | lower }} --schedulable=false
delegate_to: "{{ groups.oo_first_master.0 }}"
when: inventory_hostname in groups.oo_nodes_to_config
Observed error message is:
TASK [Mark unschedulable if host is a node] ************************************
fatal: [node01.navy.eu-west-1.aws.openpaas.axa-cloud.com -> master01.navy.eu-west-1.aws.openpaas.axa-cloud.com]: FAILED! => {"changed": false, "cmd": "oadm manage-node ip-10-191-2-209.eu-west-1.compute.internal --schedulable=false", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}
Version-Release number of selected component (if applicable): 3.2.1
How reproducible: Cluster Dependent needs a mixed RHEL & Atomic environments
Steps to Reproduce:
1. Deploy a mixed RHEL & Atomic environments
Master (RPM) - Master (atomic) - Mastet (Atomic)
N Notes
2. Upgrade from 3.1 to 3.2
Fails with:
- fail: msg: This playbook requires access to Docker 1.10 or later
when: g_docker_version.avail_version | default(g_docker_version.curr_version, true) | version_compare('1.10','<')
Additional info:
The error is seen should not be happening, on master02 and master03, which are all on atomic, because we use facts gathering [0] to determine what binary [1] and its location you should be using.
[0] https://github.com/openshift/openshift-ansible/blob/master/roles/openshift_facts/library/openshift_facts.py#L1700
[1] https://github.com/openshift/openshift-ansible/blob/master/roles/openshift_facts/library/openshift_facts.py#L1506-L1508
Yeah i ran into this yesterday, i think it's unique to situations where some masters are rpm and some are containerized. I think we only fixed containerized node against rpm master.
Comment 10Brenton Leanhardt
2017-01-05 21:25:31 UTC
*** Bug 1396254 has been marked as a duplicate of this bug. ***
Comment 12openshift-github-bot
2017-02-08 18:08:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2017:1140
Description of problem: The facts collection for {{ openshift.common.admin_binary }} seems to occur on the local facts for a "node" and is not using the fact of the node to which the execution of the command is delegated to. This causes upgrades to fail with mixed RHEL & Atomic environments. During execution of "playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml The failing task: - name: Mark unschedulable if host is a node command: > {{ openshift.common.admin_binary }} manage-node {{ openshift.common.hostname | lower }} --schedulable=false delegate_to: "{{ groups.oo_first_master.0 }}" when: inventory_hostname in groups.oo_nodes_to_config Observed error message is: TASK [Mark unschedulable if host is a node] ************************************ fatal: [node01.navy.eu-west-1.aws.openpaas.axa-cloud.com -> master01.navy.eu-west-1.aws.openpaas.axa-cloud.com]: FAILED! => {"changed": false, "cmd": "oadm manage-node ip-10-191-2-209.eu-west-1.compute.internal --schedulable=false", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2} Version-Release number of selected component (if applicable): 3.2.1 How reproducible: Cluster Dependent needs a mixed RHEL & Atomic environments Steps to Reproduce: 1. Deploy a mixed RHEL & Atomic environments Master (RPM) - Master (atomic) - Mastet (Atomic) N Notes 2. Upgrade from 3.1 to 3.2 Fails with: - fail: msg: This playbook requires access to Docker 1.10 or later when: g_docker_version.avail_version | default(g_docker_version.curr_version, true) | version_compare('1.10','<') Additional info: The error is seen should not be happening, on master02 and master03, which are all on atomic, because we use facts gathering [0] to determine what binary [1] and its location you should be using. [0] https://github.com/openshift/openshift-ansible/blob/master/roles/openshift_facts/library/openshift_facts.py#L1700 [1] https://github.com/openshift/openshift-ansible/blob/master/roles/openshift_facts/library/openshift_facts.py#L1506-L1508