Ref:

When new images are built for testing they are only available in the node where they are built dynamically by the test script, so how to make the newly built image available on all nodes in the cluster. 

(Only for running test in a K8s environment with multiple worker nodes)

  • Alternative 1: Create a custom private docker registry for the newly built images, and deploy it along with Non-RT-RIC, then they are available for all nodes (not pushed to main nexus):
    • docker registry image: https://hub.docker.com/_/registry
    • Local means that there is clash with other test that might also be using
    • By default requires TLS - and needs a CA signed certificate(commonly trusted by all clients). But this needs a domain name - which isn't available.
    • Possible to configure self-signed certificates. But this needs extra configuration on all cluster nodes to trust this self-signed certificates, which may not be allowed in some cloud platform.
      • Can be controlled with a Pull Policy? (Don't think so .... TBC)
  • Alternative 2: Use Docker-Hub
    • (Need to create an account & log in to docker hub before running test. Then images will then be pushed to that private docker hub, and its URL will be used while test is running)) 
    • Only locally built images are pushed to Docker-Hub - otherwise use nexus. Currently we have three simulator images(simulations for: Message Router/Callback Receiver/Producer Stub) that are build on the fly when running the test scripts.
    • Possible race condition when generating snapshot versions - but previous version may be picked up if nexus version (same tag) is newer than local docker hub - but this is unlikely (Need to be aware of it though)
    • Released images will always come from nexus - this is ONLY for testing staging & snapshot images.


... But everyone who tests in a k8s multi-node cluster (where a fresh build is part of the test) must also hit this issue ... Surely there is a known solution? Possible something simple we missed?

When running test in a single node k8s cluster, above problem does not occur.

Recording:





  • No labels