-
Notifications
You must be signed in to change notification settings - Fork 413
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MCO-585: MCO-569: MCO-563: MCO-586: Introduces BuildController #3731
MCO-585: MCO-569: MCO-563: MCO-586: Introduces BuildController #3731
Conversation
Skipping CI for Draft Pull Request. |
9f79a61
to
dc78b4e
Compare
8a05491
to
2fd353f
Compare
/test unit |
/test unit |
1 similar comment
/test unit |
2fd353f
to
7147f45
Compare
/test unit |
@cheesesashimi: This pull request references MCO-565 which is a valid jira issue. In response to this:
Instructions 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. |
@cheesesashimi: This pull request references MCO-585 which is a valid jira issue. In response to this:
Instructions 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. |
@cheesesashimi: This pull request references MCO-585 which is a valid jira issue. In response to this:
Instructions 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. |
@cheesesashimi: This pull request references MCO-585 which is a valid jira issue. In response to this:
Instructions 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. |
/test e2e-gcp-op |
bf80665
to
873dc81
Compare
/test e2e-gcp-op |
/test unit |
I don't know that we'll ultimately end up with imagestreams with these names but for right now, I think these are at least the ones we think we want that have purposes behind them.
873dc81
to
c68b40d
Compare
PR is rebased now. |
/test verify |
/retest-required |
c68b40d
to
48ac23e
Compare
Fixed lint issue. |
Those test failures look like flakes. We've had green runs until this point and the latest changes wouldn't have affected anything. I say we go for it and let the bot have at it. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cheesesashimi, jkyros The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/retest-required |
@cheesesashimi: The following test failed, say
Full PR test history. Your PR dashboard. Instructions 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. |
/hold Revision 48ac23e was retested 3 times: holding |
/test e2e-hypershift |
/hold cancel |
- What I did
This introduces the concept of the BuildController for handling on-cluster layering OS builds. This provides a state machine for determining whether a given MachineConfigPool has opted in to layered OS builds by use of the label
machineconfiguration.openshift.io/layering-enabled
. Included with this PR are two interchangeable image builder backends. These provide a common interface to the BuildController to allow building a layered OS image in one of two ways: 1) Makes use of the OpenShift Image Builder API. 2) Makes use of a custom build pod for building and pushing the containers.The way the build process works is this:
on-cluster-build-config
ConfigMap is used to identify which push / pull secrets to use and where to push the final OS image to. So this ConfigMap must exist; though there is some experimental work going on in [DO NOT MERGE] - integrates BuildController and machine-os-builder stub #3765 to provide some sensible defaults.machine-config-osimageurl
ConfigMap) is rendered from a template and stored in a ConfigMap specific to this build.machineconfiguration.openshift.io/newestImageEquivalentConfig
which contains the new layered OS image pullspec. The aforementioned Dockerfile and MachineConfig ConfigMaps are deleted upon a successful build.OpenShift Image Builder:
Custom Pod Builder:
quay.io/buildah/stable:latest
to perform the build / push process.--digestfile
option on Buildah to write that value to the filesystem someplace.oc
CLI contained within the base OS image to create a new ConfigMap with this digest.- How to verify it
This PR includes a unit test suite for the new BuildController which also covers the two interchangeable image builders. Running the unit tests will exercise all of the major code paths therein. In this current form, once merged, this PR will not become part of the MCO's execution code path, meaning that this code will not yet be built nor included in the e2e test suites.
- Description for the changelog
Introduces BuildController