Summary
After upgrading the bundled OpenKruise Chart from v1.4.0 to v1.8.3, both kruise-controller-manager replicas continuously log errors while watching StorageClass resources when StatefulSetAutoResizePVCGate is not enabled.
This was observed during the upgrade validation for #609.
Observed log
reflector.go:150: Failed to watch *v1.StorageClass: unknown (get storageclasses.storage.k8s.io)
The error repeats periodically on both manager replicas. The Kruise manager and daemon remain Ready, MatrixOne resources reconcile successfully, and SQL reads continue to work.
Current configuration
The matrixone-operator Chart enables:
StatefulSetAutoDeletePVC=true
PodUnavailableBudgetDeleteGate=true
PodUnavailableBudgetUpdateGate=true
It does not enable StatefulSetAutoResizePVCGate; the upstream default for that gate is also false.
The live manager ServiceAccount has the following effective access:
list storageclasses.storage.k8s.io: yes
watch storageclasses.storage.k8s.io: no
In the v1.8.3 Chart, get/list/watch access to storageclasses is rendered only when the feature-gate string contains:
StatefulSetAutoResizePVCGate=true
However, the manager still starts a StorageClass watch with the gate disabled.
Impact
No functional MatrixOne failure has been observed, but this causes continuous error logging and means the corresponding informer cannot establish its watch. We should understand and resolve the RBAC/feature-gate mismatch before deciding whether it is acceptable for production rollout.
This issue is separate from StatefulSetAutoDeletePVC, which matrixone-operator uses for PVC retention/deletion behavior.
Options to evaluate
- Grant the Kruise manager unconditional read-only
get/list/watch access to storageclasses, without enabling PVC auto-resize.
- Confirm whether a later upstream Kruise patch release fixes the informer/RBAC mismatch.
- Report the behavior upstream if it is still present in the latest supported Kruise release.
Enabling StatefulSetAutoResizePVCGate solely to suppress the log is not preferred because it also enables a new PVC mutation behavior.
Acceptance criteria
- No recurring
Failed to watch *v1.StorageClass errors with PVC auto-resize disabled.
StatefulSetAutoResizePVCGate remains disabled unless explicitly requested.
- Existing MatrixOne PVC retention and deletion behavior remains unchanged.
- Kruise manager/daemon and MatrixOne upgrade E2E tests pass.
Summary
After upgrading the bundled OpenKruise Chart from v1.4.0 to v1.8.3, both
kruise-controller-managerreplicas continuously log errors while watchingStorageClassresources whenStatefulSetAutoResizePVCGateis not enabled.This was observed during the upgrade validation for #609.
Observed log
The error repeats periodically on both manager replicas. The Kruise manager and daemon remain Ready, MatrixOne resources reconcile successfully, and SQL reads continue to work.
Current configuration
The matrixone-operator Chart enables:
It does not enable
StatefulSetAutoResizePVCGate; the upstream default for that gate is alsofalse.The live manager ServiceAccount has the following effective access:
In the v1.8.3 Chart,
get/list/watchaccess tostorageclassesis rendered only when the feature-gate string contains:However, the manager still starts a
StorageClasswatch with the gate disabled.Impact
No functional MatrixOne failure has been observed, but this causes continuous error logging and means the corresponding informer cannot establish its watch. We should understand and resolve the RBAC/feature-gate mismatch before deciding whether it is acceptable for production rollout.
This issue is separate from
StatefulSetAutoDeletePVC, which matrixone-operator uses for PVC retention/deletion behavior.Options to evaluate
get/list/watchaccess tostorageclasses, without enabling PVC auto-resize.Enabling
StatefulSetAutoResizePVCGatesolely to suppress the log is not preferred because it also enables a new PVC mutation behavior.Acceptance criteria
Failed to watch *v1.StorageClasserrors with PVC auto-resize disabled.StatefulSetAutoResizePVCGateremains disabled unless explicitly requested.