Bug 1324728

Summary: Ansible should not downgrade docker when installing 3.2 containerized env
Product: OpenShift Container Platform Reporter: Gaoyun Pei <gpei>
Component: InstallerAssignee: Brenton Leanhardt <bleanhar>
Status: CLOSED ERRATA QA Contact: Ma xiaoqiang <xiama>
Severity: high Docs Contact:
Priority: high    
Version: 3.2.0CC: aos-bugs, bleanhar, ghuang, jokerman, mmccomas, xiama, xtian
Target Milestone: ---Keywords: TestBlocker
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openshift-ansible-3.0.79-1.git.0.9c75f11.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-12 16:40:18 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:

Comment 1 Brenton Leanhardt 2016-04-07 13:09:24 UTC
We're working through this here: https://github.com/openshift/openshift-ansible/pull/1718

Comment 3 Gaoyun Pei 2016-04-13 02:35:13 UTC
Test this with openshift-ansible-3.0.79-1.git.0.9c75f11.el7.noarch.

1. Prepare RHEL72 hosts with docker-1.9.1-25 pre-installed for master and nodes installation
2. Set containerized=True & openshift_image_tag=v3.2.0.14 in ansible inventory
3. After installation, the docker on master is docker-1.9.1-25, docker on nodes is docker-1.8.2-10

During installation, we see that docker on master was firstly downgraded to docker-1.8.2-10 for ansible got "l_common_version": "3.1.1.6" via registry.access.redhat.com/openshift3/ose:latest, then after openshift3/ose:v3.2.0.14 was pulled on the master when doing step "Pull CLI Image", ansible got "l_common_version": "3.2.0.14", so docker was upgraded to 1.9.1-25 back when setting docker for master installation. 

While on nodes, docker was also downgraded to docker-1.8.2-10 for ansible got "l_common_version": "3.1.1.6" in the beginning, after the docker configuration this time, docker on nodes would not be changed again.

Comment 4 Brenton Leanhardt 2016-04-15 14:34:00 UTC
Right now with https://github.com/openshift/openshift-ansible/pull/1746 the proper version of docker will be installed for containerized deployments though it needs to be improved.  In all cases docker 1.8.2 will be installed first since we have to have docker in order to find out the version of OpenShift that will be installed.  In some cases it will properly be upgraded to 1.9.1.  Could you verify the following with today's build?

* If you run ansible on a machine that has two roles that include openshift_docker then the correct version will be installed (master+node, master+etcd, etc)
* If you run the config playbook twice the correct version of ansible should be installed
* If you set openshift_image_tag it should install the correct version of Docker

I think going forward we're going to require openshift_image_tag to be set for containerized installations.  Right now that facts are configured per host so I'm not sure exactly how we'll ensure the same value is set cluster wide but I'm sure we'll find a way.  The other option is for us to build support for openshift_image_tag to be set to something like v3.1 or v3.2 without having to explicitly declare the whole version number.

Comment 5 Ma xiaoqiang 2016-04-18 08:31:12 UTC
Fail to install ose-3.0 env. you did not specify docker_version if 'service_tpye' = enterprise, the ansible will skip installing docker on the server.

QE met the following error:

TASK: [docker | Start the docker service] ************************************* 
failed: [openshift-159.lab.eng.nay.redhat.com] => {"failed": true}
msg: Error when trying to enable docker: rc=1 Failed to execute operation: Access denied


FATAL: all hosts have already failed -- aborting

Comment 6 Brenton Leanhardt 2016-04-18 15:49:22 UTC
That's a good catch Xiaoqiang.  Let's handle that bug in https://bugzilla.redhat.com/show_bug.cgi?id=1320829.  If everything else from comment #4 is working as expected then we should verify this bug.

We'll have a PR to solve the issue containerized installs using openshift_image_tag to install the correct version of Docker from the start.

Comment 7 Gaoyun Pei 2016-04-19 07:53:20 UTC
Verify this bug with openshift-ansible-3.0.80-1.git.0.2f46898.el7.noarch.rpm 

For the 3 cases in Comment 4, anisble would install correct docker version on master and nodes finally.

Comment 9 errata-xmlrpc 2016-05-12 16:40:18 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-2016:1065