redhat-partner-solutions / crucible

Apache License 2.0
35 stars 59 forks source link

Add support to OCP nightly builds for populate_mirror_registry/prerequisites #208

Closed ramperher closed 1 year ago

ramperher commented 1 year ago

This change started because it was needed to support OCP nightly builds, where oc client need to include the version before .tar.gz. Else, tests with assisted installer using nightly builds will fail, like in this example that we have run in Telco CI labs.

The problem is, when having a nightly build, release_url is different (e.g. https://openshift-release-artifacts.apps.ci.l2s4.p1.openshiftapps.com/), and the way of interacting with these resources are a bit tricky, so they need to be handled in a different way.

In our dci-openshift-agent, we have already validated in this change that we can extract all the artifacts (in this case, the release.txt file and the oc binary) from the OCP release image, so release_url would no longer be needed.

Note that, for opm client, nightly builds are not currently including it, so this change also modifies it to rely on stable clients from mirror.openshift.com, which is what is being done also in dci-openshift-agent.

So, tldr, the change implies the following:

ramperher commented 1 year ago

Validated that the change is working fine in these two cases:

ramperher commented 1 year ago

@ramperher Thanks for the PR using the release image is something we've been thinking of doing for a while but just never gotten round to do.

Please see the comments above :)

Thanks for your review @nocturnalastro! Yes, this method is a bit tricky, but after dealing with nightly builds in our labs, we have moved to this approach as it considerably more stable and without depending on fetching any external URL. I've addressed all your comments, if you need me to check something more, don't hesitate to reach me. I've run a new test and all the updated tasks are working fine: https://www.distributed-ci.io/jobs/46aa316f-7d88-48b6-b99b-7217a94623d8/jobStates?sort=date&task=79268e55-591c-46a9-8c75-b452c2f0afed (here it starts with the check of release_url)

ramperher commented 1 year ago

I've done some refactoring work to make some failing tasks to work. You can find them here:

ramperher commented 1 year ago

Thanks for all your work so far. Sorry to keep making you change things, I'm just trying to make sure we get the best PR possible and as new information comes to light the definition of best keeps changing.

Sure, no worries, I've reupdated everything to avoid checking arm case, I hope it's fine now.

Again, tested and validated: