Bug 1464025

Summary: pre_upgrade checking failed for upgrades/etcd/noop.yml does not exist
Product: OpenShift Container Platform Reporter: Anping Li <anli>
Component: Cluster Version OperatorAssignee: Russell Teague <rteague>
Status: CLOSED ERRATA QA Contact: liujia <jiajliu>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.6.0CC: aos-bugs, byount, jokerman, mmccomas, rhowe, trankin, wsun
Target Milestone: ---   
Target Release: 3.7.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openshift-ansible-3.7.0-0.126.1.git.0.0bb5b0c.el7.noarch Doc Type: Bug Fix
Doc Text:
When Ansible tags are used for evaluating some of the tasks in a set of playbooks, the conditional for including a task file was not properly evaluated. The logic modification allows the conditional to evaluate properly and skip running the task.
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-11-28 21:58:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Anping Li 2017-06-22 10:09:09 UTC
Description of problem:
When run upgrade with --tags pre_upgrade, it failed for "the file_name '/usr/share/ansible/openshift-ansible/playbooks/common/openshift-cluster/upgrades/etcd/noop.yml' does not exist, or is not readable"

Version-Release number of selected component (if applicable):
openshift-ansible-3.6.121

How reproducible:


Steps to Reproduce:
1. install OCP v3.5 with dedicated etcd clusters
2. prechecking upgrade 
   anible-playbook usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_6/upgrade.yml --tags pre_upgrade



Actual results:
PLAY [Upgrade to 2.1] **********************************************************

TASK [setup] *******************************************************************
ok: [openshift-225.lab.eng.nay.redhat.com]

TASK [etcd_common : Include main action task file] *****************************
fatal: [openshift-225.lab.eng.nay.redhat.com]: FAILED! => {
    "failed": true, 
    "reason": "the file_name '/usr/share/ansible/openshift-ansible/playbooks/common/openshift-cluster/upgrades/etcd/noop.yml' does not exist, or is not readable"
}
    to retry, use: --limit @/usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_6/upgrade.retry

PLAY RECAP *********************************************************************
localhost                  : ok=14   changed=0    unreachable=0    failed=0   
openshift-208.lab.eng.nay.redhat.com : ok=92   changed=2    unreachable=0    failed=0   
openshift-225.lab.eng.nay.redhat.com : ok=135  changed=2    unreachable=0    failed=1   

Error: ansible-playbook --private-key /root/configdir/libra.pem -i /root/workdir/hosts /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_6/upgrade.yml --tags pre_upgrade -v. logfile: logs-20170621090802-upgrade

Expected results:


Additional info:

Comment 1 Russell Teague 2017-06-22 19:07:56 UTC
Proposed: https://github.com/openshift/openshift-ansible/pull/4547

Comment 2 Scott Dodson 2017-06-26 13:46:52 UTC
Moving this to 3.6.1 as running with tags is not common.

Comment 3 Russell Teague 2017-08-16 20:39:36 UTC
PR updated with proposed fix.

Comment 4 Russell Teague 2017-08-17 11:58:48 UTC
Merged: https://github.com/openshift/openshift-ansible/pull/4547

Comment 5 liujia 2017-09-08 10:46:57 UTC
Version:
atomic-openshift-utils-3.7.0-0.125.0.git.0.91043b6.el7.noarch

Steps:
1. Install 3.6 cluster with dedicated etcd.
2. Pre-check upgrade 
# ansible-playbook -i hosts /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_7/upgrade.yml --tags pre_upgrade

Pre-upgrade still failed.
TASK [etcd_common : Include main action task file] **************************************************************************************************************************
task path: /usr/share/ansible/openshift-ansible/roles/etcd_common/tasks/main.yml:7
fatal: [openshift-178.x.x.x]: FAILED! => {
    "failed": true, 
    "reason": "the file_name '/usr/share/ansible/openshift-ansible/playbooks/common/openshift-cluster/upgrades/etcd/noop.yml' does not exist, or is not readable"
}

Comment 6 Russell Teague 2017-09-08 19:26:39 UTC
Proposed: https://github.com/openshift/openshift-ansible/pull/5338

Side note:
The usage of tags to run `pre_upgrade` does not produce an acceptable user experience due to the many skipped tasks.  The upgrade playbooks will be refactored to allow an entry point to just run upgrade checks if they are desired.  The use of tags as a whole in openshift-ansible will eventually be deprecated.

Comment 7 Russell Teague 2017-09-11 12:44:06 UTC
Merged: https://github.com/openshift/openshift-ansible/pull/5338

Comment 8 liujia 2017-09-14 09:43:20 UTC
Bug verification blocked by bug 1451023.

Comment 9 liujia 2017-09-18 06:56:54 UTC
Version:
atomic-openshift-utils-3.7.0-0.126.4.git.0.3fc2b9b.el7.noarch

Steps:
1. Install 3.6 cluster with dedicated etcd.
2. Pre-check upgrade 
# ansible-playbook -i hosts /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_7/upgrade.yml --tags pre_upgrade

Pre_check succeed.

Comment 10 Ryan Howe 2017-10-06 16:43:05 UTC
If this is not being fixed in 3.6 should to documentation on using the tags be removed

https://docs.openshift.com/container-platform/3.6/install_config/upgrading/automated_upgrades.html#upgrading-to-ocp-3-6

Comment 12 Russell Teague 2017-10-17 14:27:43 UTC
This issue was fixed in the 3.6 branch with this PR: https://github.com/openshift/openshift-ansible/pull/5411

Comment 15 errata-xmlrpc 2017-11-28 21:58:09 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/RHSA-2017:3188