test openshift os in openshift#26912
Conversation
|
Skipping CI for Draft Pull Request. |
e64222b to
818701b
Compare
ae78aff to
f0a265b
Compare
8fa26fb to
131d7d8
Compare
b06c71d to
664d146
Compare
|
Neat! So I think ultimately we can probably extend this to support a full flow where the OS build is actually used for the initial update target, i.e. we override But testing one worker node is a very useful pattern. |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cgwalters, cheesesashimi The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Hmm though, a lot of PRs today have near-zero chance to break cluster provisioning or layering. WDYT about introducing e.g. Ultimately if we start using lockfiles for RHCOS - that's where pull request based gating would become much more useful, because that's where we'd be able to gate new kernel/systemd and really all the other packages. (And if we had that, then we could drop the promotion job) |
That's my concern too. It would be preferable to have two different tests to decouple the failures. Can we have tests launch only if some other tests succeed in Prow? |
I'm not opposed to decoupling the tests. However, it is a bit more problematic than one might think. I'm not sure if such a thing is possible because (to answer @travier's) question, you can't have a top-level test execute conditionally based upon the outcome of another top-level test in OpenShift CI. A test can define multiple steps which execute sequentially (and only if the previous step succeeds), but that runs into the same problem we have now. The second issue I can see with the two tests being decoupled is: Because we cannot use the standard OpenShift CI workflow (e.g., the payload is produced by the images stage, the test stages consume the payload, and the post-submit promotes the payload), both tests would have to build the image, run it through the relevant tests, then push the image to our registry namespace upon completion. While this isn't a problem for PR builds (because we decided not to produce artifacts during PR builds), it would become a problem for periodics. In that case, which image should be promoted to This is my naiveté about cosa and RHCOS builds showing, and I don't know if such a thing is possible, but: It would be great if we could ingest the latest base RHCOS OCI image from our dev pipeline, apply the configs from openshift/os to it via an image build, which would then allow us to use the OpenShift CI system as intended. In fact I think this is exactly what's being experimented with for FCOS and OKD: openshift/okd-machine-os#299. |
|
I'm not up to speed about how Prow works and what we can do so this might not make sense. Could we do the image build in the build stage and store the result directly in the container image? We could then pull it for testing with distinct tests:
Similarly, I'm working on #27686 to make SCOS builds from the same branch. |
|
@travier Funny you ask that question! When I was doing early exploratory work, I didn't think that was possible. The issue that I was running into was somehow converting the OCI image archive that COSA produces into an image without doing something like In the example highlighted above, I'm using |
|
@cheesesashimi: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
This has been superceded by #27779 |
This PR makes use of the new scripts found in openshift/os to build and test an RHCOS image. The new tests include an OS derivation test wherein the candidate RHCOS image is mutated in a test cluster, applied to a cluster node, and the cluster node rebooted to verify that it successfully boots into the new OS.