UNCLASSIFIED - NO CUI

Kubernetes Python library used does not match upstream image and has a bug

Summary

The version of the Kubernetes Python library (installed through Pip) is 12.0.1, which is different from the version used in the upstream image (11.0.0). This difference causes certain ansible tasks in the kiali-operator image to throw errors.

Steps to reproduce

To display the Kubernetes library version in the image:

  • docker run --rm -it --entrypoint "/usr/bin/pip3" quay.io/kiali/kiali-operator:v1.36.0 list | grep kubernetes for the upstream image
  • docker run --rm -it --entrypoint /usr/local/bin/pip3 registry1.dso.mil/ironbank/opensource/kiali/kiali-operator:v1.36.0 list | grep kubernetes for the IronBank image

To view the error message, use this IronBank image (tag v1.35.0 or v1.36.0) with the upstream kiali-operator helm chart

What is the current bug behavior?

The kiali-operator image loops over the Ansible tasks it runs at startup. Tasks that use k8s_info (example) throw an error (pasted in "Relevant logs")

This seems to be a common issue:

What is the expected correct behavior?

The "kiali-operator" image finishes its Ansible tasks and deploys the "kiali" image

Relevant logs and/or screenshots

The error was: urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=80): Max retries exceeded with url: /version (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7b243ef5b0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Possible fixes

Manually install the working older version of the Python library, e.g. RUN pip3 install --upgrade kubernetes==11.0.0

Defintion of Done

  • Bug has been identified and corrected within the container

/cc @ironbank-notifications/bug

Edited by Jacob Rohlman
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information