OCPBUGS-105865: fix(nodepool): include only TLSSecurityProfile in config hash instead of full APIServer - #9287
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughFor release versions 4.23.0 and newer, global configuration hashing serializes only Suggested reviewers: 🚥 Pre-merge checks | ✅ 11✅ Passed checks (11 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@csrwng: This pull request references Jira Issue OCPBUGS-105865, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn 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. |
|
@csrwng: This pull request references Jira Issue OCPBUGS-105865, which is valid. 3 validation(s) were run on this bug
DetailsIn 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. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #9287 +/- ##
=======================================
Coverage 45.68% 45.68%
=======================================
Files 781 781
Lines 97730 97737 +7
=======================================
+ Hits 44646 44656 +10
+ Misses 50015 50013 -2
+ Partials 3069 3068 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
/lgtm |
|
Scheduling tests matching the |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: csrwng, ricardomaraschini 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 |
… of full APIServer The conditionallyAddToGlobalConfigString function was serializing the entire reconciled APIServer object into the NodePool config hash for clusters on version >= 4.23. However, only TLSSecurityProfile actually affects worker node configuration. Changes to other APIServer fields (ServingCerts, ClientCA, CORS, Encryption, Audit) are control-plane-only and were triggering unnecessary NodePool rollouts. Serialize only TLSSecurityProfile via json.Marshal instead of the full APIServer object via api.CompatibleJSONEncode. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Test Resultse2e-aws
e2e-aks
Failed TestsTotal failed tests: 4
|
|
/verified by @csrwng |
|
@csrwng: This PR has been marked as verified by DetailsIn 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. |
1c90cf2 to
3e81689
Compare
|
/verified by @csrwng |
|
@csrwng: This PR has been marked as verified by DetailsIn 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. |
|
@csrwng: This pull request references Jira Issue OCPBUGS-105865, which is valid. 3 validation(s) were run on this bug
DetailsIn 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. |
|
/override-sticky ci/prow/e2e-aws-upgrade-hypershift-operator |
|
@csrwng: Overrode contexts on behalf of csrwng: ci/prow/e2e-aws-upgrade-hypershift-operator These overrides will persist across retests on the current HEAD SHA. Pushing a new commit will clear them. Use DetailsIn 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-sigs/prow repository. |
|
/lgtm |
|
Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage. |
|
/pipeline required |
|
Scheduling tests matching the |
|
/test e2e-aks
|
|
/hold Revision 3e81689 was retested 3 times: holding |
|
/override-sticky ci/prow/e2e-aws-upgrade-hypershift-operator |
|
@csrwng: Overrode contexts on behalf of csrwng: ci/prow/e2e-aws-upgrade-hypershift-operator These overrides will persist across retests on the current HEAD SHA. Pushing a new commit will clear them. Use DetailsIn 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-sigs/prow repository. |
|
The kubevirt e2e passed but failed in the must-gather step: /override-sticky ci/prow/e2e-kubevirt-aws-ovn-reduced |
|
@csrwng: Overrode contexts on behalf of csrwng: ci/prow/e2e-kubevirt-aws-ovn-reduced These overrides will persist across retests on the current HEAD SHA. Pushing a new commit will clear them. Use DetailsIn 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-sigs/prow repository. |
|
@csrwng: 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. |
|
/hold cancel |
|
@csrwng: Jira Issue Verification Checks: Jira Issue OCPBUGS-105865 Jira Issue OCPBUGS-105865 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓 DetailsIn 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. |
Summary
TLSSecurityProfile(viajson.Marshal) into the NodePool config hash for >= 4.23 clusters, instead of the full reconciledAPIServerobject (viaapi.CompatibleJSONEncode).ServingCerts,ClientCA,CORS,Encryption,Audit) are control-plane-only and no longer trigger unnecessary NodePool rollouts.Encryption) alongside a TLS profile does not appear in the config string.Fixes: https://issues.redhat.com/browse/OCPBUGS-105865
Rollout impact
This changes the config hash for all existing NodePools on >= 4.23. A one-time rollout will occur when this operator version is deployed, because the hash input shrinks from the full APIServer blob to just the TLS profile. After that, non-TLS APIServer changes will no longer trigger rollouts.
Test plan
TestNewConfigGenerator— all hash expectations updated, all passTestGlobalConfigString— expected strings updated, new test case for TLS profile set alongside Encryptionnodepoolpackage test suite passese2e-aws-upgrade-hypershift-operator— must pass to validate the one-time hash change rollout is safe🤖 Generated with Claude Code
Summary by CodeRabbit