Skip to content

[Helm]: Kruise v1.8.3 logs StorageClass watch errors when PVC auto-resize is disabled #610

Description

@loveRhythm1990

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

  1. Grant the Kruise manager unconditional read-only get/list/watch access to storageclasses, without enabling PVC auto-resize.
  2. Confirm whether a later upstream Kruise patch release fixes the informer/RBAC mismatch.
  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions