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
STOR-1334: update storage operator to read featuregates from API on standalone OCP #368
STOR-1334: update storage operator to read featuregates from API on standalone OCP #368
Conversation
@deads2k: 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/test-infra repository. I understand the commands that are listed here. |
cc @openshift/storage |
// By default, this will exit(0) the process if the featuregates ever change to a different set of values. | ||
featureGateAccessor := featuregates.NewFeatureGateAccess( | ||
desiredVersion, missingVersion, | ||
clients.ConfigInformers.Config().V1().ClusterVersions(), clients.ConfigInformers.Config().V1().FeatureGates(), | ||
controllerConfig.EventRecorder, | ||
) |
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.
Will exit(0)
trigger a new leader election? That will slow down feature enablement considerably, without any indication that the operator is Progressing.
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.
Will exit(0) trigger a new leader election? That will slow down feature enablement considerably, without any indication that the operator is Progressing.
This is true. It's a scenario that can only happen once in the history of a cluster. If it becomes more common, I can see motivation to provide an alternative hook closing a channel or some such.
/lgtm If we find out that |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: deads2k, jsafrane 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 |
/label px-approved |
Note to QE: we should test that this PR does not introduce any regression in how SharedResource CSI driver operator is started after |
/retitle STOR-1334: update storage operator to read featuregates from API on standalone OCP Adding a story for visibility on our board for QE. |
@deads2k: This pull request references STOR-1334 which is a valid jira issue. 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 kubernetes/test-infra repository. |
QE are starting pre-merge test. |
Simply verified with the PR:
And this just take few minutes to install the sharedresource CSI Driver in my test. |
/label qe-approved |
/payload 4.14 nightly blocking |
@jsafrane: trigger 7 job(s) of type blocking for the nightly release of OCP 4.14
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/2f897d70-fbdc-11ed-8a11-c724b3d87d78-0 |
/payload 4.14 ci blocking |
@dgoodwin: trigger 4 job(s) of type blocking for the ci release of OCP 4.14
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/bb0db310-fe1c-11ed-8a29-5bb2a9d67f98-0 |
/label jira/valid-bug Bringing in via merge queue. |
d91b59b
into
openshift:master
@@ -269,7 +268,8 @@ func shouldRunController(cfg csioperatorclient.CSIOperatorConfig, infrastructure | |||
return true, nil | |||
} | |||
|
|||
if !featureGateEnabled(fg, cfg.RequireFeatureGate) { | |||
knownFeatures := sets.New[configv1.FeatureGateName](fg.KnownFeatures()...) |
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.
This is panicing on the hypershift control plane and blocking ci release stream
E0530 00:05:42.329947 1 runtime.go:79] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
goroutine 820 [running]:
k8s.io/apimachinery/pkg/util/runtime.logPanic({0x26a62a0?, 0x475c5c0})
k8s.io/apimachinery@v0.27.1/pkg/util/runtime/runtime.go:75 +0x99
k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0xc000699408, 0x1, 0x2545ca0?})
k8s.io/apimachinery@v0.27.1/pkg/util/runtime/runtime.go:49 +0x75
panic({0x26a62a0, 0x475c5c0})
runtime/panic.go:884 +0x213
github.com/openshift/cluster-storage-operator/pkg/operator/csidriveroperator.shouldRunController({{0x2b15110, 0x1f}, {0x2ade262, 0x6}, {0x2ae8cf2, 0xc}, 0x0, {0x0, 0x0, 0x0}, ...}, ...)
github.com/openshift/cluster-storage-operator/pkg/operator/csidriveroperator/driverstarter_standalone.go:271 +0x157
hypershift conformance test failed on this PR catching the break, but the test is not blocking yet and it merged anyway
Because openshift/release#39783 has not yet merged
The previous method of using the featuregate object and a potentially out of date hardcoded list is left for hypershift until hypershift is ready to switch.
This allows coordination of featuregates via openshift/api and vendoring to openshift/cluster-config-operator. Every operator on standalone kcp consumes from
oc get featuregates
status.