-
Notifications
You must be signed in to change notification settings - Fork 298
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
OCPBUGS-30282: Multiple MachineConfigs in one CM #3695
base: main
Are you sure you want to change the base?
OCPBUGS-30282: Multiple MachineConfigs in one CM #3695
Conversation
@michael-topchiev: This pull request references Jira Issue OCPBUGS-30282, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
No GitHub users were found matching the public email listed for the QA contact in Jira (jiezhao@redhat.com), skipping review request. The bug has been updated to refer to the pull request using the external bug tracker. 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 openshift-eng/jira-lifecycle-plugin repository. |
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.
/lgtm
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: hasueki, michael-topchiev The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@@ -603,11 +654,11 @@ spec: | |||
Namespace: namespace, | |||
}, | |||
Data: map[string]string{ | |||
TokenSecretConfigKey: machineConfig2, | |||
TokenSecretConfigKey: "---" + machineConfig2 + "\n---\n \n \n---\n" + machineConfig3, |
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.
nit can we use the yamlDocDelimiter var here?
// ignition config-map payload may have multiple yaml documents | ||
manifestList := strings.Split(cmPayload, yamlDocDelimiter) | ||
for _, manifestRaw := range manifestList { | ||
if strings.TrimSpace(manifestRaw) == "" { |
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.
could this trim(or something else) result in a slightly different manifestRaw, and so a different allConfigPlainText for existing Configs? hence resulting in a different configHash, hence triggering a rolling upgrade for existing clusters with conflicting yaml in the MC secret?
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.
Wondering if the (de)serializers can be configured to consume multiple documents in one file? Would want to cross-reference e.g. kubectl create -f
to see how it's handled
e1abfb4
to
6ea2183
Compare
New changes are detected. LGTM label has been removed. |
6ea2183
to
1049294
Compare
@enxebre @stevekuznetsov The ignition payload splitting implementation changed to utilize The code change should not have impact on the existing clusters. If the ignition config map contains only one manifest, the If any existing clusters for some reason (maybe by mistake) already have multi-part ignition config-maps, then they currently use only the 1st manifest from the ignition CMs payload, and this PR of course will have (hopefully positive) impact. |
/retest-required |
3 similar comments
/retest-required |
/retest-required |
/retest-required |
@michael-topchiev: The following tests 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-sigs/prow repository. I understand the commands that are listed here. |
@enxebre this PR's e2e tests sporadically fail even though the code change has been tested in real clusters on our side. Are there any problems with the e2e testing environment? |
This PR enables Hypershift NodePool controller to recognize and process multiple MachineConfig yaml documents inside config-maps referenced by NodePool in its spec.config list.
This is required to reduce number of objects in etcd when Hypershift manages many hosted clusters to save space and improve performance.
Fixes # OCPBUGS-30282
Checklist