-
Notifications
You must be signed in to change notification settings - Fork 65
Support node-specific extension images in DaemonSet mode #1485
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: devel
Are you sure you want to change the base?
Support node-specific extension images in DaemonSet mode #1485
Conversation
|
Hi @Pacho20. Thanks for your PR. I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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-sigs/prow repository. |
|
/ok-to-test |
d240e3f to
2ea754c
Compare
| httpClient := &http.Client{Transport: transport} | ||
|
|
||
| u.RawQuery = url.Values{ | ||
| "channel": []string{fmt.Sprintf("%s-%d.%d", "stable", semanticVersion.Major(), semanticVersion.Minor())}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something I’ve been thinking about recently: I essentially restricted the channel to stable, which may not be the best solution. I guess this would prevent testing on new releases that haven’t reached the stable channel yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it should at least be fast or maybe even candidate.
GetImageForComponent and the extension image logic will change. Splitting this out will make future changes easier to track. Signed-off-by: Patrik Fodor <[email protected]>
Added an optional version parameter and related parameters to GetImageForComponent to retrieve images for components with specific versions. Introduced a helper function to get release info for a specific OCP version. Introduced caching for the images to reduce the number of calls to collect release info. Signed-off-by: Patrik Fodor <[email protected]>
Introduce the GetNodeImages method, which uses the new GetImageForComponent function and provider-specific logic to retrieve the correct extension images for nodes. Signed-off-by: Patrik Fodor <[email protected]>
Modify DaemonSets and installation scripts to use the new image component logic. From now on, the Operator provides separate image strings for each node. The environment variable names include the node name, making them distinct and preventing the wrong image from being used for a node. This is required for installation pods to work correctly during worker node updates when nodes have different versions. Signed-off-by: Patrik Fodor <[email protected]>
2ea754c to
a66dac8
Compare
|
@Pacho20: 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-sigs/prow repository. I understand the commands that are listed here. |
- Description of the problem which is fixed/What is the use case
This fixes issues where worker nodes run a different OCP version than the control plane. This can cause issues with the DaemonSet installation mode.
- What I did
Introduced new image component logic. By default, the control plane version is used for all images, but based on the provider, it is now possible to get any component image for any version. Each node now receives a separate image string, and environment variable names include the node name to ensure uniqueness.
- How to verify it
Deploy the Operator in DaemonSet mode. Verify that installation pods use the correct image for each node.
- Description for the changelog
Support node-specific extension images in DaemonSet mode