redhat-performance/JetSki

Missing podman_image ansible dependency

josecastillolema opened this issue · 4 comments

There seems to be a problem with the containers.podman Ansible collection and JetSki.
For some reason, JetSki fails with:

ERROR! couldn't resolve module/action 'podman_image'. This often indicates a misspelling, missing collection, or incorrect module path.

The error appears to be in '/root/JetSki/ansible-ipi-install/roles/bootstrap/tasks/20_reprovision_nodes.yml': line 39, column 11, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


    - name: Get Badfish pod image
     ^ here

Even with the collection properly installed:

# ls -d $HOME/.ansible/collections/ansible_collections/containers/podman/
/root/.ansible/collections/ansible_collections/containers/podman/

# ansible --version
ansible [core 2.13.0]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.9/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.9.2 (default, Mar  5 2021, 01:49:45) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
  jinja version = 3.0.3
  libyaml = True

We have tried:

  • replacing podman_image with containers.podman.podman_image
  • several versions of RHEL: 8.2, 8.4 and 8.6
  • several python versions: 3,6 and 3.9

Workaround

Comment task Get Badfish pod image and manually pull the image: podman pull quay.io/quads/badfish

hit the same issue with a very similar setup.

@josecastillolema @sferlin Have you verified you cloned the https://github.com/redhat-performance/JetSki/tree/master/ansible-ipi-install/collections/ansible_collections/containers submodule as well?

Make sure that you cloned the repository JetSki with $ git clone --recurse-submodules in order to fetch the podman ansible module

You can also fetch it in an already cloned parent repo with:

cd JetSkiansible-ipi-install/collections/ansible_collections/containers/
git submodule init
git submodule update

The task causing this problem is effectively redundant, anyway. So I say we simply remove these lines:

- name: Get Badfish pod image
podman_image:
name: "{{ badfish_pod_image }}"
pull: yes
force: yes
when: provisioner_vendor == "dell"

When we run the podman command via the template, it will pull the image anyway as part of that command.

badfish_cmd_container: "podman run -it --rm --dns {{ dns_server }} {{ badfish_pod_image }} -u {{ lab_ipmi_user }} -p {{ lab_ipmi_password }} -i config/idrac_interfaces.yml -H mgmt-"