Description of problem: A wrong version docker was installed when containerized install ocp on fresh hosts due to docker-excluder did not take effect before install docker. Get some info from install.log that task [Install Docker] was placed before task [Install docker excluder]. # ansible -i hosts all -m shell -a "cat /etc/yum.conf|grep exclude" openshift-109.x.x.x | SUCCESS | rc=0 >> exclude= tuned-profiles-atomic-openshift-node atomic-openshift-tests atomic-openshift-sdn-ovs atomic-openshift-recycle atomic-openshift-pod atomic-openshift-node atomic-openshift-master atomic-openshift-dockerregistry atomic-openshift-clients-redistributable atomic-openshift-clients atomic-openshift docker*1.20* docker*1.19* docker*1.18* docker*1.17* docker*1.16* docker*1.15* docker*1.14* docker*1.13* docker*1.12* openshift-138.x.x.x | FAILED | rc=1 >> # ansible -i hosts all -m shell -a "docker --version" openshift-138.x.x.x | FAILED | rc=127 >> /bin/sh: docker: command not found openshift-109.x.x.x | SUCCESS | rc=0 >> Docker version 1.12.6, build 1398f24/1.12.6 Version-Release number of selected component (if applicable): atomic-openshift-utils-3.3.97-1.git.0.0cbc4a5.el7.noarch How reproducible: always Steps to Reproduce: 1. Trigger containerzied install on fresh hosts(one master/node host + one nfs host) # ansible-playbook -i hosts /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/config.yml -vvv 2. 3. Actual results: Install succeed but docker-1.12 was installed wrongly. Expected results: Docker should be under 1.12 according to docker-excluder's excluded pkg list. Additional info:
Unfortunately, there is a cyclic dependency. In order to use excluders one needs to know openshift_pkg_version. In containerized world it is detected from the latest docker image that is available. In order to detect the version, docker rpm is installed. One would need to run the excluders before the docker rpm is installed. It means to run excluders before the openshift_pkg_version is detected. Either, the inventory must set `docker_version` to 1.10* or we need to use different approach how to detect the latest docker image. E.g. Skopeo. Anyway, we should not install docker just because we need to get the latest version of a docker image. [1] https://github.com/projectatomic/skopeo
Upstream issue: https://github.com/openshift/openshift-ansible/issues/4523
We'll be looking at fixing 3.4 and newer but not 3.3