-
Notifications
You must be signed in to change notification settings - Fork 458
[DO NOT MERGE] Reboot noanno #5405
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
base: main
Are you sure you want to change the base?
Conversation
Add install time support for Image Mode by using a pre-built custom OS container image with the MachineOSConfig CR created at install time in the manifests directory. **Core Workflow:** 1. Bootstrap: Creates component MachineConfig (10-prebuiltimage-osimageurl-<pool>) that sets osImageURL from MOSC annotation 2. Cluster startup: Seeding workflow creates synthetic MachineOSBuild with success status 3. Post-install: Normal OCL workflows handle MC changes and image updates **Seeding Implementation:** - Annotation-driven detection in addMachineOSConfig() - seedMachineOSConfigWithExistingImage() orchestrates seeding workflow - createSyntheticMachineOSBuild() generates synthetic MOSB marked as successful - updateMachineOSConfigForSeeding() updates MOSC status and annotations - Adds "Seeded" condition and PreBuiltImageSeededAnnotationKey marker - PreBuiltImageAnnotationKey remains on MOSC for component MC management **Bootstrap Integration:** - Recognizes MachineOSConfig manifests during bootstrap processing - Creates component MachineConfigs that set osImageURL for each pool - Component MCs are merged into rendered MCs by render controller - Validates pre-built image format (requires digest @sha256:) **Operator Sync:** - syncPreBuiltImageMachineConfigs() manages component MC lifecycle - Creates/updates component MCs based on MOSC annotations - Deletes component MCs when annotation is removed from MOSC **Install-Time Guards:** - Handles empty MCP status.configuration.name during pool convergence - Skips rendered config comparison when status.configuration.name is empty - Prevents MachineConfig lookups with empty names at install time - Node controller uses current-machine-os-build annotation for MOSB lookup **Key Components:** - PreBuiltImageAnnotationKey: Triggers seeding, persists for component MC management - PreBuiltImageSeededAnnotationKey: Tracks seeding completion - PreBuiltImageLabelKey: Labels synthetic MachineOSBuilds - "Seeded" condition: Status indicator for successfully seeded MOSCs **Testing:** - Comprehensive unit tests for seeding workflow - Bootstrap test validation with example manifest - Tests for annotation detection and routing logic Signed-off-by: Urvashi <[email protected]>
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: umohnani8 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 |
414bb7a to
266c68a
Compare
Signed-off-by: Urvashi <[email protected]>
266c68a to
d9e8943
Compare
|
PR needs rebase. 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-sigs/prow repository. |
- What I did
- How to verify it
- Description for the changelog