Bug 1497274

Summary: byo failed against atomic hosts with containerized=True: docker_image_availability
Product: OpenShift Container Platform Reporter: Hongkai Liu <hongkliu>
Component: InstallerAssignee: Steve Milner <smilner>
Status: CLOSED ERRATA QA Contact: Johnny Liu <jialiu>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.7.0CC: aos-bugs, gscrivan, hongkliu, jokerman, lmeyer, mmccomas
Target Milestone: ---   
Target Release: 3.7.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: docker_image_availability casted openshift_docker_additional_registries to a list using the list() function. Consequence: If a string was returned (IE: only a single registry added) the result would be the string split up by component characters Fix: Force a string result from get_var to be placed inside a list. If the result is anything BUT a string the original list() function is called on the result. Result: docker_image_availability passes when it should.
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-18 13:22:48 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 Hongkai Liu 2017-09-29 15:49:38 UTC
Description of problem:
byo failed on atomic host with containerized=True: docker_image_availability

Version-Release number of the following components:
rpm -q openshift-ansible
[root@installer-jenkins-slave-1 private-openshift-ansible]# git log --oneline -1
9920ea8 Merge pull request #5588 from IshentRas/fix-typo

rpm -q ansible
# rpm -q ansible
ansible-2.3.2.0-2.el7.noarch

ansible --version
# ansible --version
ansible 2.3.2.0
  config file = /home/slave3/workspace/Launch Environment Flexy/private-openshift-ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.13 (default, Jan 12 2017, 17:59:37) [GCC 6.3.1 20161221 (Red Hat 6.3.1-1)]

How reproducible:

Steps to Reproduce:
1. ansible-playbook openshift-ansible/playbooks/byo/config.yml
the inv. file and the output are attached.
2.
3.

Actual results:
Please include the entire output from the last TASK line through the end of output if an error is generated

Expected results:

Additional info:
Please attach logs from ansible-playbook with the -vvv flag

Comment 3 Steve Milner 2017-09-29 16:22:01 UTC
It looks like this is the relevant error line:

Checked by: timeout 10 skopeo inspect --tls-verify=false docker://{registry}/{image}

To me, this indicates that the image test is no longer reading the registry nor image variables properly. @Luke, to your knowledge has there been any updates related to this check that would cause expansion to fail?

Comment 6 Luke Meyer 2017-10-02 14:24:17 UTC
Expansion isn't failing, that's just the generic way of telling the user what command it's using so they can replicate; it runs multiple times -- several images against all registries. If they want to see the individual invocations there's -vvv or -e openshift_checks_output_dir ...

There have been changes in this area, and I'll look into whether they're relevant, but it could also be other refactoring. I think openshift_docker_additional_registries is supposed to be an array and in true pythonic fashion, the string is being interpreted as an array of characters. Just have to find out why (specifically, why now and not before).

Comment 7 Steve Milner 2017-10-02 15:25:42 UTC
Looks like the l2_docker_additional_registries (etc..) may be the new variables to use for registries as they properly force the results into a list depending on the original import (single string or CSV string):

b35272a794 (Michael Gugino 2017-08-24 17:24:41 -0400 14) # The l2_docker_* variables convert csv strings to lists, if
b35272a794 (Michael Gugino 2017-08-24 17:24:41 -0400 15) # necessary.  These variables should be used in place of their respective
b35272a794 (Michael Gugino 2017-08-24 17:24:41 -0400 16) # openshift_docker_* counterparts to ensure the properly formatted lists are
b35272a794 (Michael Gugino 2017-08-24 17:24:41 -0400 17) # utilized.

Comment 10 Steve Milner 2017-10-02 16:12:55 UTC
PR: https://github.com/openshift/openshift-ansible/pull/5619

Comment 11 Steve Milner 2017-10-03 13:23:36 UTC
Merged.

Comment 12 Hongkai Liu 2017-10-03 17:31:26 UTC
Verified with

[fedora@ip-172-31-33-174 openshift-ansible]$ git log --oneline -1
04a17c289 (HEAD -> master, origin/master, origin/HEAD) Merge pull request #5630 from abutcher/etcd-scaleup-target

[fedora@ip-172-31-33-174 openshift-ansible]$ ansible --version
ansible 2.3.2.0
  config file = /home/fedora/openshift-ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.13 (default, Sep  5 2017, 08:53:59) [GCC 7.1.1 20170622 (Red Hat 7.1.1-3)]


The error in the bz did not show up.
The installation of byo succeeded.

Comment 15 errata-xmlrpc 2017-12-18 13:22:48 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:3464