OCPBUGS-105398: refactor: remove AzureWorkloadIdentity feature gate - #1537
Conversation
The gate is now GA and enabled by default upstream (openshift/api), so the unconditional featureGates.Enabled() call for it was always true. Once the gate is deregistered upstream, that call panics because library-go's FeatureGate.Enabled() panics for unknown feature names. Drop the map entry so the deployment no longer depends on the gate's registration status.
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
@damdo: This pull request references Jira Issue OCPBUGS-105398, which is invalid:
Comment 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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: openshift/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
💤 Files with no reviewable changes (2)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. WalkthroughThe operator no longer passes or enables the Azure Workload Identity feature gate. The test operator configuration reflects the same removal. ChangesOperator feature-gate configuration
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This is a localized cleanup removing obsolete feature-gate plumbing and updating its fixtures; no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. Full details: Stable And Deterministic Test NamesExplanation PASS. The pull request changes only three feature-gate entries. It adds no Ginkgo test titles and changes no test names. The affected test file uses Go Full details: Test Structure And QualityExplanation PASS: The pull request changes only two feature-gate map fixtures and removes one production map entry. The exact diff contains no added Ginkgo Full details: Microshift Test CompatibilityExplanation PASS: The pull request adds no Ginkgo e2e tests. The committed diff changes only two existing operator files and removes three feature-gate entries. The changed test file contains existing Go Full details: Single Node Openshift (Sno) Test CompatibilityExplanation PASS: The pull request adds no Ginkgo e2e tests. The diff only removes the AzureWorkloadIdentity feature-gate entry from Full details: Topology-Aware Scheduling CompatibilityExplanation PASS — The commit changes only the AzureWorkloadIdentity feature-gate map entry and related test fixtures. The exact diff contains no affinity, topology spread, replica, node selector, toleration, rollout, or PDB changes. The existing control-plane node selector and tolerations are in unchanged code, so they are not caused by this pull request. Full details: Ote Binary Stdout ContractExplanation The pull request changes only Full details: Ipv6 And Disconnected Network Test CompatibilityExplanation PASS: The pull request adds no code or tests. The exact diff contains only three deletions in Full details: No-Weak-CryptoExplanation PASS: The pull request only removes the Azure Workload Identity feature-gate entry from production code and test fixtures. The changed lines contain no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret-comparison logic. Full details: Container-PrivilegesExplanation The pull request changes only feature-gate map and test-fixture entries. The parent-to-HEAD diff contains no Full details: No-Sensitive-Data-In-LogsExplanation PASS: The commit contains only three deletions from feature-gate maps and test fixtures. It adds no logging statements, log fields, or sensitive-data output. Existing logging in pkg/operator/operator.go is unchanged. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/pipeline auto |
|
Pipeline controller notification The |
|
Scheduling tests matching the |
|
Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage. |
|
/retest |
|
Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage. |
|
/verified by CI |
|
@mdbooth: 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. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: mdbooth 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 |
|
/jira refresh |
|
@mdbooth: This pull request references Jira Issue OCPBUGS-105398, 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. |
|
/retest |
|
@damdo: 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. |
|
@damdo: Jira Issue OCPBUGS-105398: Some pull requests linked via external trackers have merged: The following pull request, linked via external tracker, has not merged:
All associated pull requests must be merged or unlinked from the Jira bug in order for it to move to the next state. Once unlinked, request a bug refresh with Jira Issue OCPBUGS-105398 has not been moved to the MODIFIED state. This PR is marked as verified. If the remaining PRs listed above are marked as verified before merging, the issue will automatically be moved to VERIFIED after all of the changes from the PRs are 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
AzureWorkloadIdentitymap entry from the featuregates passed to the machine controllers inpkg/operator/operator.go— the gate is GA and enabled by default upstream (openshift/api), so this was always evaluating totrueWhy
Once
AzureWorkloadIdentityis deregistered fromopenshift/api(openshift/api#3018), the unconditionalfeatureGates.Enabled(apifeatures.FeatureGateAzureWorkloadIdentity)call here panics, because library-go'sFeatureGate.Enabled()panics when asked about a name that isn't part of the FeatureGate CR's known set. That panic crashes machine-api-operator, which cascades into control-plane machines never becoming ready (verified in a failing e2e-aws-ovn run on openshift/api#3018 — CI logs showedmachine-api-operatorpanicking withfeature "AzureWorkloadIdentity" is not registered in FeatureGates [...]).Companion PR: openshift/machine-api-provider-azure#207 (already open, removes the same gate's plumbing from the Azure actuators).
Test plan
go build ./...succeedsgo test ./pkg/operator/...passesAzureWorkloadIdentityoutside vendorSummary by CodeRabbit