sassoftware / viya4-deployment

This project contains Ansible code that creates a baseline in an existing Kubernetes environment for use with the SAS Viya Platform, generates the manifest for an order, and then can also deploy that order into the Kubernetes environment specified.
Apache License 2.0
71 stars 66 forks source link

Issue with `vdm : Orchestration tooling - orchestration tooling image` task #554

Closed jarpat closed 5 months ago

jarpat commented 6 months ago

Viya4 Deployment Version Details

6.20.0

Ansible Variable File Details

n/a

Steps to Reproduce

While executing this process with ansible directly on your host (without the use of the viya4-deployment docker image) run viya,install

Expected Behavior

The vdm : Orchestration tooling - orchestration tooling image task executes successfully

Actual Behavior

Error Out:

TASK [vdm : Orchestration tooling - orchestration tooling image] **********************************************************************************************
task path: /home/ec2-user/deploy/viya4-deployment/roles/orchestration-common/tasks/orchestration_tooling.yaml:153
The full traceback is:
  File "/tmp/ansible_community.docker.docker_image_payload_7egw4g0q/ansible_community.docker.docker_image_payload.zip/ansible_collections/community/docker/plugpy", line 117, in __init__
    super(AnsibleDockerClientBase, self).__init__(**self._connect_params)
  File "/tmp/ansible_community.docker.docker_image_payload_7egw4g0q/ansible_community.docker.docker_image_payload.zip/ansible_collections/community/docker/plugient.py", line 188, in __init__
    self._version = self._retrieve_server_version()
  File "/tmp/ansible_community.docker.docker_image_payload_7egw4g0q/ansible_community.docker.docker_image_payload.zip/ansible_collections/community/docker/plugient.py", line 212, in _retrieve_server_version
    raise DockerException(
fatal: [localhost]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "api_version": "auto",
            "archive_path": null,
            "build": null,
            "ca_path": null,
            "client_cert": null,
            "client_key": null,
            "debug": false,
            "docker_host": "unix:///var/run/docker.sock",
            "force_absent": false,
            "force_source": false,
            "force_tag": false,
            "load_path": null,
            "name": "cr.sas.com/viya-4-x64_oci_linux_2-docker/sas-orchestration:1.117.1-20240410.1712768574434",
            "pull": null,
            "push": false,
            "repository": null,
            "source": "pull",
            "ssl_version": null,
            "state": "present",
            "tag": "latest",
            "timeout": 60,
            "tls": false,
            "tls_hostname": null,
            "use_ssh_client": false,
            "validate_certs": false
        }
    },
    "msg": "Error connecting: Error while fetching server API version: Not supported URL scheme http+docker"
}

Additional Context

Workaround

The currently workaround for this is to pin requests<=2.31.0 in your requirements.txt file This is due to this issue from the docker-py project here https://github.com/docker/docker-py/issues/3256

Once they cut a release we can consume with this fix in place an update will be made to this project.

References

No response

Code of Conduct

jarpat commented 6 months ago

Alternative Workaround

docker-py just released 7.1.0 that resolved this issue, rather than pinning requests like was originally suggested in the issue description, you can update this line to docker==7.1.0