I opened this page: https://fedoraproject.org/wiki/CI/Tests/stat
I was quite shocked, that python-docker-py is on the list. We have renamed the package to python-docker after the big API changes happened in version 2. Right now I'm trying to get rid of python-docker-py.
Would it be possible to include python-docker in Atomic Host compose instead of python-docker-py? The package is probably pulled by atomic CLI, but the fact is that on rawhide atomic RPM requires python3-docker:
$ rpm -q --requires atomic | grep docker python3-docker >= 1.7.2
RHEL and CentOS still include python-docker-py because no one requested the newest upstream release yet.
on f27 atomic:
[root@vanilla-f27atomic ~]# rpm-ostree status State: idle Deployments: ● fedora-atomic:fedora/27/x86_64/atomic-host Version: 27.61 (2018-01-17 15:52:47) Commit: 772ab185b0752b0d6bc8b2096d08955660d80ed95579e13e136e6a54e3559ca9 GPGSignature: Valid signature by 860E19B0AFA800A1751881A6F55E7430F5282EE4 [root@vanilla-f27atomic ~]# rpm -q --whatrequires python-docker-py no package requires python-docker-py
I opened a PR to get this pulled out of rawhide. Pending merge I'll do this in f27 too.
Metadata Update from @dustymabe: - Issue assigned to dustymabe
@ttomecek - quick question. Do we know what python docker library ansible uses?
Docs note
Using the docker modules requires having docker-py installed on the host running Ansible. You will need to have >= 1.7.0 installed. $ pip install 'docker-py>=1.7.0' The docker_service module also requires docker-compose $ pip install 'docker-compose>=1.7.0'
Using the docker modules requires having docker-py installed on the host running Ansible. You will need to have >= 1.7.0 installed.
$ pip install 'docker-py>=1.7.0'
The docker_service module also requires docker-compose
$ pip install 'docker-compose>=1.7.0'
In terms of rpm I don't think it's a requirement as it's a module to be used but I could be wrong there.
Right, I'm pretty sure we had this for ansible.
$ echo -n "$(basename $(pwd)): " && git describe --tags --always --abbrev=42 openshift-ansible: openshift-ansible-3.9.0-0.23.0-26-gdd5c2a24872490f34be8516e4f03a4076be35789 $ git grep python-docker roles/openshift_health_checker/openshift_checks/docker_image_availability.py: # we use python-docker-py to check local docker for images, and skopeo roles/openshift_health_checker/openshift_checks/docker_image_availability.py: dependencies = ["python-docker-py", "skopeo"] roles/openshift_health_checker/openshift_checks/docker_storage.py: dependencies = ["python-docker-py"] $
In fact a quick git log --grep docker-py instantly turns up: https://pagure.io/fedora-atomic/c/2b9e4ac6ebf779a8d699e17ea2e889721c54e773
git log --grep docker-py
Do you know if those ansible modules & roles require the version 1 of docker-py or do they work with the newest version & API? I can totally help porting those.
Metadata Update from @ttomecek: - Assignee reset
@ttomecek - can you try removing that library from an f27 instance and then run the ansible modules against it to see if anything complains? Here is how to do that:
[root@vanilla-f27atomic ~]# rpm-ostree ex override remove python-docker-py Checking out tree 86727cd... done Resolving dependencies... done Applying 1 override... done Writing rpmdb... done Writing OSTree commit... done Copying /etc changes: 21 modified, 0 removed, 52 added Transaction complete; bootconfig swap: yes deployment count change: 1 Removed: python-docker-py-1:1.10.6-5.fc27.noarch Run "systemctl reboot" to start a reboot [root@vanilla-f27atomic ~]# [root@vanilla-f27atomic ~]# reboot
I just ran a quick test of this and running through openshift-ansible with that package removed seems to work ok.
54.205.218.164 | SUCCESS | rc=0 >> State: idle; auto updates disabled Deployments: ● ostree://fedora-atomic:fedora/27/x86_64/atomic-host Version: 27.93 (2018-02-25 20:49:19) BaseCommit: da0bd968610aa1e29c5bb37065649407fbbfffa53e63831afdadbd34a3b05327 GPGSignature: Valid signature by 860E19B0AFA800A1751881A6F55E7430F5282EE4 RemovedBasePackages: python-docker-py-1:1.10.6-5.fc27.noarch
@ttomecek can you inspect the ansible modules to make sure none of them in the ansible core library use python-docker-py ?
I just verified it works just fine:
$ vagrant ssh Last login: Tue Feb 27 16:32:13 2018 from 192.168.121.1 [vagrant@localhost ~]$ rpm-ostree status State: idle; auto updates disabled Deployments: ● ostree://fedora-atomic:fedora/27/x86_64/atomic-host Version: 27.93 (2018-02-25 20:49:19) BaseCommit: da0bd968610aa1e29c5bb37065649407fbbfffa53e63831afdadbd34a3b05327 GPGSignature: Valid signature by 860E19B0AFA800A1751881A6F55E7430F5282EE4 RemovedBasePackages: python-docker-py-1:1.10.6-5.fc27.noarch LayeredPackages: python2-docker ostree://fedora-atomic:fedora/27/x86_64/atomic-host Version: 27.93 (2018-02-25 20:49:19) Commit: da0bd968610aa1e29c5bb37065649407fbbfffa53e63831afdadbd34a3b05327 GPGSignature: Valid signature by 860E19B0AFA800A1751881A6F55E7430F5282EE4
I used this simple playbook:
--- - hosts: all become: true tasks: - docker_image: name: fedora:27 state: present - docker_container: image: fedora:27 name: hello command: 'echo "hello atomic!"' - command: docker logs hello register: out - assert: that: "'hello atomic!' in out.stdout"
with this Vagrantfile:
Vagrant.configure("2") do |config| hostname = "F27-AH" locale = "en_US.UTF.8" # Box config.vm.box = "F27-atomic" config.vm.provision "ansible" do |ansible| ansible.playbook = "playbook.yml" end end
The play passed:
$ vagrant provision ==> default: Running provisioner: ansible... Vagrant has automatically selected the compatibility mode '2.0' according to the Ansible version installed (2.4.3.0). Alternatively, the compatibility mode can be specified in your Vagrantfile: https://www.vagrantup.com/docs/provisioning/ansible_common.html#compatibility_mode default: Running ansible-playbook... PLAY [all] ********************************************************************* TASK [Gathering Facts] ********************************************************* ok: [default] TASK [docker_image] ************************************************************ changed: [default] TASK [docker_container] ******************************************************** changed: [default] TASK [command] ***************************************************************** changed: [default] TASK [assert] ****************************************************************** ok: [default] => { "changed": false, "msg": "All assertions passed" } PLAY RECAP ********************************************************************* default : ok=5 changed=3 unreachable=0 failed=0
Please let me know if you run into some issues with the openshift roles you were mentioning.
openshift was good. we'll remove this.
\o/
this is removed in f28 and rawhide
Metadata Update from @dustymabe: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
Log in to comment on this ticket.