Skip to content

chore(openebs): turn down zfs-localpv#1244

Merged
jfroy merged 1 commit intomainfrom
storage-cleanup
May 1, 2026
Merged

chore(openebs): turn down zfs-localpv#1244
jfroy merged 1 commit intomainfrom
storage-cleanup

Conversation

@jfroy
Copy link
Copy Markdown
Owner

@jfroy jfroy commented May 1, 2026

Summary by CodeRabbit

  • Chores
    • Set installation remediation retries to unlimited for releases.
    • Centralized image registry to quay.io and removed per-chart registry overrides.
    • Disabled ZFS and rawfile local PV provisioning engines across the cluster.
    • Kept other local PV engines disabled and left Mayastor and its related observability components disabled.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

📝 Walkthrough

Walkthrough

Updates the OpenEBS HelmRelease values: sets installation remediation retries to -1, adds a global image registry override, removes a chart-local registry override, and disables ZFS, rawfile, and related Mayastor/localpv components and toggles.

Changes

Cohort / File(s) Summary
OpenEBS HelmRelease
kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml
Adjusts spec.values: sets remediation retries to -1, adds global imageRegistry: "quay.io/", removes chart-local registry override, disables zfs-localpv and rawfile-localpv engines, disables related engines.local.*, disables mayastor.alloy, renames mayastor.loki-stack.enabledmayastor.loki.enabled and sets Loki/mayastor values to false.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Storage cleanup #1243 — Related changes around OpenEBS/ZFS volume manifests and kustomization; both touch ZFS/localpv handling.

Poem

🐰 In charts and values my paws did hop,
I set the registry and flipped ZFS to stop;
Rawfile and Alloy now nap in the sun,
Loki renamed—its watch is undone.
A tiny rabbit cheers, configuration done!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'chore(openebs): turn down zfs-localpv' accurately captures the main change, which is disabling OpenEBS ZFS LocalPV by setting it to 'enabled: false', though it omits other significant configuration changes like disabling rawfile-localpv and other localpv engines.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch storage-cleanup

Review rate limit: 9/10 reviews remaining, refill in 6 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

--- HelmRelease: openebs-system/openebs PriorityClass: openebs-system/openebs-zfs-csi-controller-critical

+++ HelmRelease: openebs-system/openebs PriorityClass: openebs-system/openebs-zfs-csi-controller-critical

@@ -1,10 +0,0 @@

----
-apiVersion: scheduling.k8s.io/v1
-kind: PriorityClass
-metadata:
-  name: openebs-zfs-csi-controller-critical
-value: 900000000
-globalDefault: false
-description: This priority class should be used for the CStor CSI driver controller
-  deployment only.
-
--- HelmRelease: openebs-system/openebs PriorityClass: openebs-system/openebs-zfs-csi-node-critical

+++ HelmRelease: openebs-system/openebs PriorityClass: openebs-system/openebs-zfs-csi-node-critical

@@ -1,10 +0,0 @@

----
-apiVersion: scheduling.k8s.io/v1
-kind: PriorityClass
-metadata:
-  name: openebs-zfs-csi-node-critical
-value: 900001000
-globalDefault: false
-description: This priority class should be used for the CStor CSI driver node deployment
-  only.
-
--- HelmRelease: openebs-system/openebs ServiceAccount: openebs-system/openebs-zfs-controller-sa

+++ HelmRelease: openebs-system/openebs ServiceAccount: openebs-system/openebs-zfs-controller-sa

@@ -1,15 +0,0 @@

----
-kind: ServiceAccount
-apiVersion: v1
-metadata:
-  name: openebs-zfs-controller-sa
-  namespace: openebs-system
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    app: openebs-zfs-controller
-    release: openebs
-    component: openebs-zfs-controller
-    openebs.io/component-name: openebs-zfs-controller
-
--- HelmRelease: openebs-system/openebs ServiceAccount: openebs-system/openebs-zfs-node-sa

+++ HelmRelease: openebs-system/openebs ServiceAccount: openebs-system/openebs-zfs-node-sa

@@ -1,15 +0,0 @@

----
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: openebs-zfs-node-sa
-  namespace: openebs-system
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    name: openebs-zfs-node
-    release: openebs
-    app: openebs-zfs-node
-    openebs.io/component-name: openebs-zfs-node
-
--- HelmRelease: openebs-system/openebs ConfigMap: openebs-system/openebs-zfspv-bin

+++ HelmRelease: openebs-system/openebs ConfigMap: openebs-system/openebs-zfspv-bin

@@ -1,25 +0,0 @@

----
-kind: ConfigMap
-apiVersion: v1
-metadata:
-  name: openebs-zfspv-bin
-  namespace: openebs-system
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    name: openebs-zfs-node
-    release: openebs
-    app: openebs-zfs-node
-    openebs.io/component-name: openebs-zfs-node
-data:
-  zfs: |
-    #!/bin/sh
-    if [ -x /host/sbin/zfs ]; then
-      chroot /host /sbin/zfs "$@"
-    elif [ -x /host/usr/sbin/zfs ]; then
-      chroot /host /usr/sbin/zfs "$@"
-    else
-      chroot /host "/usr/local/sbin/zfs" "$@"
-    fi
-
--- HelmRelease: openebs-system/openebs ClusterRole: openebs-system/openebs-zfs-provisioner-role

+++ HelmRelease: openebs-system/openebs ClusterRole: openebs-system/openebs-zfs-provisioner-role

@@ -1,131 +0,0 @@

----
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: openebs-zfs-provisioner-role
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    app: openebs-zfs-controller
-    release: openebs
-    component: openebs-zfs-controller
-    openebs.io/component-name: openebs-zfs-controller
-rules:
-- apiGroups:
-  - ''
-  resources:
-  - secrets
-  verbs:
-  - get
-  - list
-- apiGroups:
-  - ''
-  resources:
-  - namespaces
-  verbs:
-  - '*'
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumes
-  - services
-  verbs:
-  - get
-  - list
-  - watch
-  - create
-  - delete
-  - update
-  - patch
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumeclaims
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumeclaims/status
-  verbs:
-  - update
-  - patch
-- apiGroups:
-  - storage.k8s.io
-  resources:
-  - storageclasses
-  - csinodes
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - storage.k8s.io
-  resources:
-  - csistoragecapacities
-  verbs:
-  - '*'
-- apiGroups:
-  - ''
-  resources:
-  - events
-  verbs:
-  - list
-  - watch
-  - create
-  - update
-  - patch
-- apiGroups:
-  - coordination.k8s.io
-  resources:
-  - leases
-  verbs:
-  - get
-  - watch
-  - list
-  - delete
-  - update
-  - create
-- apiGroups:
-  - ''
-  resources:
-  - nodes
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ''
-  resources:
-  - pods
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-  - patch
-- apiGroups:
-  - ''
-  resources:
-  - pods
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-  - patch
-- apiGroups:
-  - '*'
-  resources:
-  - zfsvolumes
-  - zfssnapshots
-  - zfsbackups
-  - zfsrestores
-  - zfsnodes
-  verbs:
-  - '*'
-
--- HelmRelease: openebs-system/openebs ClusterRole: openebs-system/openebs-zfs-snapshotter-role

+++ HelmRelease: openebs-system/openebs ClusterRole: openebs-system/openebs-zfs-snapshotter-role

@@ -1,108 +0,0 @@

----
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: openebs-zfs-snapshotter-role
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    app: openebs-zfs-controller
-    release: openebs
-    component: openebs-zfs-controller
-    openebs.io/component-name: openebs-zfs-controller
-rules:
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumes
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumeclaims
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - storage.k8s.io
-  resources:
-  - storageclasses
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ''
-  resources:
-  - events
-  verbs:
-  - list
-  - watch
-  - create
-  - update
-  - patch
-- apiGroups:
-  - ''
-  resources:
-  - secrets
-  verbs:
-  - get
-  - list
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshotclasses
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshotcontents
-  verbs:
-  - create
-  - get
-  - list
-  - watch
-  - update
-  - delete
-  - patch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshots
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-  - patch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshotcontents/status
-  verbs:
-  - update
-  - patch
-- apiGroups:
-  - snapshot.storage.k8s.io
-  resources:
-  - volumesnapshots/status
-  verbs:
-  - update
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  - create
-  - list
-  - watch
-  - delete
-
--- HelmRelease: openebs-system/openebs ClusterRole: openebs-system/openebs-zfs-driver-registrar-role

+++ HelmRelease: openebs-system/openebs ClusterRole: openebs-system/openebs-zfs-driver-registrar-role

@@ -1,50 +0,0 @@

----
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: openebs-zfs-driver-registrar-role
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    name: openebs-zfs-node
-    release: openebs
-    app: openebs-zfs-node
-    openebs.io/component-name: openebs-zfs-node
-rules:
-- apiGroups:
-  - ''
-  resources:
-  - events
-  verbs:
-  - get
-  - list
-  - watch
-  - create
-  - update
-  - patch
-- apiGroups:
-  - ''
-  resources:
-  - persistentvolumes
-  - nodes
-  - services
-  verbs:
-  - get
-  - list
-- apiGroups:
-  - '*'
-  resources:
-  - zfsvolumes
-  - zfssnapshots
-  - zfsbackups
-  - zfsrestores
-  - zfsnodes
-  verbs:
-  - get
-  - list
-  - watch
-  - create
-  - update
-  - patch
-
--- HelmRelease: openebs-system/openebs ClusterRoleBinding: openebs-system/openebs-zfs-provisioner-binding

+++ HelmRelease: openebs-system/openebs ClusterRoleBinding: openebs-system/openebs-zfs-provisioner-binding

@@ -1,22 +0,0 @@

----
-kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: openebs-zfs-provisioner-binding
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    app: openebs-zfs-controller
-    release: openebs
-    component: openebs-zfs-controller
-    openebs.io/component-name: openebs-zfs-controller
-subjects:
-- kind: ServiceAccount
-  name: openebs-zfs-controller-sa
-  namespace: openebs-system
-roleRef:
-  kind: ClusterRole
-  name: openebs-zfs-provisioner-role
-  apiGroup: rbac.authorization.k8s.io
-
--- HelmRelease: openebs-system/openebs ClusterRoleBinding: openebs-system/openebs-zfs-snapshotter-binding

+++ HelmRelease: openebs-system/openebs ClusterRoleBinding: openebs-system/openebs-zfs-snapshotter-binding

@@ -1,22 +0,0 @@

----
-kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: openebs-zfs-snapshotter-binding
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    app: openebs-zfs-controller
-    release: openebs
-    component: openebs-zfs-controller
-    openebs.io/component-name: openebs-zfs-controller
-subjects:
-- kind: ServiceAccount
-  name: openebs-zfs-controller-sa
-  namespace: openebs-system
-roleRef:
-  kind: ClusterRole
-  name: openebs-zfs-snapshotter-role
-  apiGroup: rbac.authorization.k8s.io
-
--- HelmRelease: openebs-system/openebs ClusterRoleBinding: openebs-system/openebs-zfs-driver-registrar-binding

+++ HelmRelease: openebs-system/openebs ClusterRoleBinding: openebs-system/openebs-zfs-driver-registrar-binding

@@ -1,22 +0,0 @@

----
-kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: openebs-zfs-driver-registrar-binding
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    name: openebs-zfs-node
-    release: openebs
-    app: openebs-zfs-node
-    openebs.io/component-name: openebs-zfs-node
-subjects:
-- kind: ServiceAccount
-  name: openebs-zfs-node-sa
-  namespace: openebs-system
-roleRef:
-  kind: ClusterRole
-  name: openebs-zfs-driver-registrar-role
-  apiGroup: rbac.authorization.k8s.io
-
--- HelmRelease: openebs-system/openebs DaemonSet: openebs-system/openebs-zfs-localpv-node

+++ HelmRelease: openebs-system/openebs DaemonSet: openebs-system/openebs-zfs-localpv-node

@@ -1,147 +0,0 @@

----
-kind: DaemonSet
-apiVersion: apps/v1
-metadata:
-  name: openebs-zfs-localpv-node
-  namespace: openebs-system
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    name: openebs-zfs-node
-    release: openebs
-    app: openebs-zfs-node
-    openebs.io/component-name: openebs-zfs-node
-spec:
-  selector:
-    matchLabels:
-      name: openebs-zfs-node
-      release: openebs
-  updateStrategy:
-    rollingUpdate:
-      maxUnavailable: 100%
-    type: RollingUpdate
-  template:
-    metadata:
-      labels:
-        heritage: Helm
-        openebs.io/version: 2.9.0
-        role: openebs-zfs
-        name: openebs-zfs-node
-        release: openebs
-        app: openebs-zfs-node
-        openebs.io/component-name: openebs-zfs-node
-        openebs.io/logging: 'true'
-    spec:
-      priorityClassName: openebs-zfs-csi-node-critical
-      serviceAccountName: openebs-zfs-node-sa
-      hostNetwork: true
-      containers:
-      - name: csi-node-driver-registrar
-        image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
-        imagePullPolicy: IfNotPresent
-        args:
-        - --v=5
-        - --csi-address=$(ADDRESS)
-        - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
-        lifecycle:
-          preStop:
-            exec:
-              command:
-              - /bin/sh
-              - -c
-              - rm -rf /registration/zfs-localpv /registration/zfs-localpv-reg.sock
-        env:
-        - name: ADDRESS
-          value: /plugin/csi.sock
-        - name: DRIVER_REG_SOCK_PATH
-          value: /var/lib/kubelet/plugins/zfs-localpv/csi.sock
-        - name: KUBE_NODE_NAME
-          valueFrom:
-            fieldRef:
-              fieldPath: spec.nodeName
-        - name: NODE_DRIVER
-          value: openebs-zfs
-        volumeMounts:
-        - name: plugin-dir
-          mountPath: /plugin
-        - name: registration-dir
-          mountPath: /registration
-        resources: {}
-      - name: openebs-zfs-plugin
-        securityContext:
-          privileged: true
-          allowPrivilegeEscalation: true
-        image: docker.io/openebs/zfs-driver:2.9.0
-        imagePullPolicy: IfNotPresent
-        args:
-        - --nodename=$(OPENEBS_NODE_NAME)
-        - --endpoint=$(OPENEBS_CSI_ENDPOINT)
-        - --plugin=$(OPENEBS_NODE_DRIVER)
-        env:
-        - name: OPENEBS_NODE_NAME
-          valueFrom:
-            fieldRef:
-              fieldPath: spec.nodeName
-        - name: OPENEBS_CSI_ENDPOINT
-          value: unix:///plugin/csi.sock
-        - name: OPENEBS_NODE_DRIVER
-          value: agent
-        - name: OPENEBS_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        - name: ALLOWED_TOPOLOGIES
-          value: All
-        volumeMounts:
-        - name: plugin-dir
-          mountPath: /plugin
-        - name: device-dir
-          mountPath: /dev
-        - name: encr-keys
-          mountPath: /home/keys
-        - name: chroot-zfs
-          mountPath: /sbin/zfs
-          subPath: zfs
-        - name: host-root
-          mountPath: /host
-          mountPropagation: HostToContainer
-          readOnly: true
-        - name: pods-mount-dir
-          mountPath: /var/lib/kubelet/
-          mountPropagation: Bidirectional
-        resources: {}
-      volumes:
-      - name: device-dir
-        hostPath:
-          path: /dev
-          type: Directory
-      - name: encr-keys
-        hostPath:
-          path: /var/zfs
-          type: DirectoryOrCreate
-      - name: chroot-zfs
-        configMap:
-          defaultMode: 365
-          name: openebs-zfspv-bin
-      - name: host-root
-        hostPath:
-          path: /
-          type: Directory
-      - name: registration-dir
-        hostPath:
-          path: /var/lib/kubelet/plugins_registry/
-          type: DirectoryOrCreate
-      - name: plugin-dir
-        hostPath:
-          path: /var/lib/kubelet/plugins/zfs-localpv/
-          type: DirectoryOrCreate
-      - name: pods-mount-dir
-        hostPath:
-          path: /var/lib/kubelet/
-          type: Directory
-      tolerations:
-      - effect: NoSchedule
-        key: node-role.kubernetes.io/control-plane
-        operator: Exists
-
--- HelmRelease: openebs-system/openebs Deployment: openebs-system/openebs-localpv-provisioner

+++ HelmRelease: openebs-system/openebs Deployment: openebs-system/openebs-localpv-provisioner

@@ -31,13 +31,13 @@

         openebs.io/logging: 'true'
     spec:
       serviceAccountName: openebs-localpv-provisioner
       securityContext: {}
       containers:
       - name: openebs-localpv-provisioner
-        image: docker.io/openebs/provisioner-localpv:4.4.0
+        image: quay.io/openebs/provisioner-localpv:4.4.0
         imagePullPolicy: IfNotPresent
         resources: null
         env:
         - name: OPENEBS_NAMESPACE
           valueFrom:
             fieldRef:
--- HelmRelease: openebs-system/openebs Deployment: openebs-system/openebs-zfs-localpv-controller

+++ HelmRelease: openebs-system/openebs Deployment: openebs-system/openebs-zfs-localpv-controller

@@ -1,127 +0,0 @@

----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: openebs-zfs-localpv-controller
-  namespace: openebs-system
-  labels:
-    heritage: Helm
-    openebs.io/version: 2.9.0
-    role: openebs-zfs
-    app: openebs-zfs-controller
-    release: openebs
-    component: openebs-zfs-controller
-    openebs.io/component-name: openebs-zfs-controller
-spec:
-  selector:
-    matchLabels:
-      app: openebs-zfs-controller
-      release: openebs
-      component: openebs-zfs-controller
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        heritage: Helm
-        openebs.io/version: 2.9.0
-        role: openebs-zfs
-        app: openebs-zfs-controller
-        release: openebs
-        component: openebs-zfs-controller
-        openebs.io/component-name: openebs-zfs-controller
-        name: openebs-zfs-controller
-        openebs.io/logging: 'true'
-    spec:
-      priorityClassName: openebs-zfs-csi-controller-critical
-      serviceAccountName: openebs-zfs-controller-sa
-      containers:
-      - name: csi-resizer
-        image: registry.k8s.io/sig-storage/csi-resizer:v1.13.2
-        args:
-        - --v=5
-        - --csi-address=$(ADDRESS)
-        env:
-        - name: ADDRESS
-          value: /var/lib/csi/sockets/pluginproxy/csi.sock
-        imagePullPolicy: IfNotPresent
-        volumeMounts:
-        - name: socket-dir
-          mountPath: /var/lib/csi/sockets/pluginproxy/
-        resources: {}
-      - name: csi-snapshotter
-        image: registry.k8s.io/sig-storage/csi-snapshotter:v8.2.0
-        imagePullPolicy: IfNotPresent
-        args:
-        - --csi-address=$(ADDRESS)
-        env:
-        - name: ADDRESS
-          value: /var/lib/csi/sockets/pluginproxy/csi.sock
-        volumeMounts:
-        - name: socket-dir
-          mountPath: /var/lib/csi/sockets/pluginproxy/
-        resources: {}
-      - name: snapshot-controller
-        image: registry.k8s.io/sig-storage/snapshot-controller:v8.2.0
-        args:
-        - --v=5
-        imagePullPolicy: IfNotPresent
-        resources: {}
-      - name: csi-provisioner
-        image: registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
-        imagePullPolicy: IfNotPresent
-        args:
-        - --csi-address=$(ADDRESS)
-        - --v=5
-        - --feature-gates=Topology=true
-        - --strict-topology
-        - --enable-capacity=true
-        - --extra-create-metadata=true
-        - --default-fstype=ext4
-        env:
-        - name: ADDRESS
-          value: /var/lib/csi/sockets/pluginproxy/csi.sock
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        - name: POD_NAME
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.name
-        volumeMounts:
-        - name: socket-dir
-          mountPath: /var/lib/csi/sockets/pluginproxy/
-        resources: {}
-      - name: openebs-zfs-plugin
-        image: docker.io/openebs/zfs-driver:2.9.0
-        imagePullPolicy: IfNotPresent
-        env:
-        - name: OPENEBS_CONTROLLER_DRIVER
-          value: controller
-        - name: OPENEBS_CSI_ENDPOINT
-          value: unix:///var/lib/csi/sockets/pluginproxy/csi.sock
-        - name: OPENEBS_NAMESPACE
-          valueFrom:
-            fieldRef:
-              fieldPath: metadata.namespace
-        - name: OPENEBS_IO_INSTALLER_TYPE
-          value: zfs-localpv-helm
-        - name: OPENEBS_IO_ENABLE_ANALYTICS
-          value: 'false'
-        - name: OPENEBS_IO_ENABLE_BACKUP_GC
-          value: 'false'
-        args:
-        - --endpoint=$(OPENEBS_CSI_ENDPOINT)
-        - --plugin=$(OPENEBS_CONTROLLER_DRIVER)
-        volumeMounts:
-        - name: socket-dir
-          mountPath: /var/lib/csi/sockets/pluginproxy/
-        resources: {}
-      volumes:
-      - name: socket-dir
-        emptyDir: {}
-      tolerations:
-      - effect: NoSchedule
-        key: node-role.kubernetes.io/control-plane
-        operator: Exists
-
--- HelmRelease: openebs-system/openebs CSIDriver: openebs-system/zfs.csi.openebs.io

+++ HelmRelease: openebs-system/openebs CSIDriver: openebs-system/zfs.csi.openebs.io

@@ -1,10 +0,0 @@

----
-apiVersion: storage.k8s.io/v1
-kind: CSIDriver
-metadata:
-  name: zfs.csi.openebs.io
-spec:
-  attachRequired: false
-  podInfoOnMount: false
-  storageCapacity: true
-

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

--- kubernetes/apps/openebs-system/openebs/app Kustomization: openebs-system/openebs HelmRelease: openebs-system/openebs

+++ kubernetes/apps/openebs-system/openebs/app Kustomization: openebs-system/openebs HelmRelease: openebs-system/openebs

@@ -14,13 +14,13 @@

     name: openebs
   driftDetection:
     mode: enabled
   install:
     disableHooks: true
     remediation:
-      retries: 3
+      retries: -1
   interval: 1h
   upgrade:
     cleanupOnFail: true
     disableHooks: true
     remediation:
       retries: 3
@@ -28,23 +28,24 @@

     alloy:
       enabled: false
     engines:
       local:
         lvm:
           enabled: false
+        rawfile:
+          enabled: false
         zfs:
-          enabled: true
+          enabled: false
       replicated:
         mayastor:
           enabled: false
+    global:
+      imageRegistry: quay.io/
     localpv-provisioner:
       analytics:
         enabled: false
-      helperPod:
-        image:
-          registry: quay.io/
       hostpathClass:
         name: openebs-hostpath
       localpv:
         basePath: /var/openebs/local
         tolerations:
         - effect: NoSchedule
@@ -52,25 +53,27 @@

           operator: Exists
     loki:
       enabled: false
     lvm-localpv:
       enabled: false
     mayastor:
+      alloy:
+        enabled: false
       crds:
         enabled: false
       enabled: false
       etcd:
         enabled: false
         externalUrl: openebs-etcd:2379
       eventing:
         enabled: false
       io_engine:
         cpuCount: '1'
       localpv-provisioner:
         enabled: false
-      loki-stack:
+      loki:
         enabled: false
       obs:
         callhome:
           enabled: false
       storageClass:
         enabled: false
@@ -81,28 +84,11 @@

     minio:
       enabled: false
     openebs-crds:
       csi:
         volumeSnapshots:
           enabled: false
+    rawfile-localpv:
+      enabled: false
     zfs-localpv:
-      analytics:
-        enabled: false
-      crds:
-        csi:
-          volumeSnapshots:
-            enabled: false
-      enabled: true
-      zfs:
-        bin: /usr/local/sbin/zfs
-      zfsController:
-        tolerations:
-        - effect: NoSchedule
-          key: node-role.kubernetes.io/control-plane
-          operator: Exists
-      zfsNode:
-        encrKeysDir: /var/zfs
-        tolerations:
-        - effect: NoSchedule
-          key: node-role.kubernetes.io/control-plane
-          operator: Exists
+      enabled: false
 

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml (1)

28-31: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Set install remediation retries to -1.

This HelmRelease still caps install recovery at three attempts, so a transient failure can leave OpenEBS stuck until someone intervenes manually.

Suggested change
   install:
     disableHooks: true
     remediation:
-      retries: 3
+      retries: -1

Based on learnings: HelmRelease resources must set driftDetection.mode: enabled, install.remediation.retries: -1, and upgrade.cleanupOnFail: true.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml` around lines 28
- 31, The HelmRelease currently sets install.remediation.retries to 3; update
the HelmRelease resource (look for install.remediation.retries) to set retries:
-1, and also ensure the HelmRelease has driftDetection.mode: enabled and
upgrade.cleanupOnFail: true so installs never cap recovery attempts and failed
upgrades clean up; modify the HelmRelease spec accordingly (add or update
driftDetection.mode and upgrade.cleanupOnFail fields if missing).
🧹 Nitpick comments (1)
kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml (1)

61-62: Verify there are no remaining ZFS/rawfile consumers before disabling these provisioners.

This change turns off both subcharts and engines.local.{zfs,rawfile}. If any existing PVC/PV or StorageClass still points at those backends, new provisioning and recovery paths will fail after rollout. Please check repo manifests and in-cluster storage objects before merging.

Also applies to: 70-71, 107-110

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml` around lines 61
- 62, This change disables zfs-localpv and engines.local.{zfs,rawfile} which
will break provisioning/recovery if any existing StorageClass, PVC, or PV still
references those backends; before merging, search for and update or remove any
references to zfs-localpv, engines.local.zfs, and engines.local.rawfile in
cluster objects and repo manifests (StorageClass.resources,
PVC.spec.storageClassName, PV.spec.storageClassName) and either migrate bindings
to supported provisioners or retain the provisioners until migration completes;
also verify there are no in-cluster PVs/PVCs depending on those provisioners and
update the helm values consistently across the other occurrences noted (lines
around 70-71 and 107-110) to avoid partial disabling.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml`:
- Around line 28-31: The HelmRelease currently sets install.remediation.retries
to 3; update the HelmRelease resource (look for install.remediation.retries) to
set retries: -1, and also ensure the HelmRelease has driftDetection.mode:
enabled and upgrade.cleanupOnFail: true so installs never cap recovery attempts
and failed upgrades clean up; modify the HelmRelease spec accordingly (add or
update driftDetection.mode and upgrade.cleanupOnFail fields if missing).

---

Nitpick comments:
In `@kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml`:
- Around line 61-62: This change disables zfs-localpv and
engines.local.{zfs,rawfile} which will break provisioning/recovery if any
existing StorageClass, PVC, or PV still references those backends; before
merging, search for and update or remove any references to zfs-localpv,
engines.local.zfs, and engines.local.rawfile in cluster objects and repo
manifests (StorageClass.resources, PVC.spec.storageClassName,
PV.spec.storageClassName) and either migrate bindings to supported provisioners
or retain the provisioners until migration completes; also verify there are no
in-cluster PVs/PVCs depending on those provisioners and update the helm values
consistently across the other occurrences noted (lines around 70-71 and 107-110)
to avoid partial disabling.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0a6f9377-d69d-431b-bc1a-bc4c297d9383

📥 Commits

Reviewing files that changed from the base of the PR and between 928d5d7 and 1761fb0.

📒 Files selected for processing (1)
  • kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml

@jfroy jfroy force-pushed the storage-cleanup branch from 1761fb0 to c823891 Compare May 1, 2026 03:22
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml`:
- Around line 38-40: Remove the unsupported top-level setting
global.imageRegistry (delete the global.imageRegistry: quay.io/ entry) because
the OpenEBS 4.4.0 chart uses per-component image registry settings, and rename
the mayastor.loki key to mayastor.loki-stack (change mayastor.loki.enabled →
mayastor.loki-stack.enabled) so the Mayastor subchart correctly enables Loki;
update any other mayastor.loki references to mayastor.loki-stack to ensure
consistency.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5ed66446-2253-473b-b2ea-fe7ccc71cbc8

📥 Commits

Reviewing files that changed from the base of the PR and between 1761fb0 and c823891.

📒 Files selected for processing (1)
  • kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml

Comment on lines +38 to +40
global:
imageRegistry: quay.io/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

`For OpenEBS Helm chart version 4.4.0, confirm:

  1. whether global.imageRegistry should be quay.io or quay.io/ (trailing slash handling),
  2. whether the valid key is mayastor.loki.enabled or mayastor.loki-stack.enabled.
    Please provide the official values/schema reference.`

💡 Result:

For OpenEBS Helm chart version 4.4.0: 1. global.imageRegistry is present in subcharts like dynamic-localpv-provisioner (a dependency), where it supports both quay.io (without trailing slash) and quay.io/ (with trailing slash). The main openebs chart values.yaml does not define a default global.imageRegistry; image registries are set per-component (e.g., preUpgradeHook.image.registry: docker.io). No official requirement for quay.io specifically in the main chart. 2. The valid key is mayastor.loki-stack.enabled. This is evidenced in issues and upgrade job errors referencing mayastor.loki-stack.enabled=false, and Mayastor subchart (dependency via engines.replicated.mayastor) has loki.enabled but historical context confirms loki-stack nesting under mayastor. Official references: - Main chart values.yaml: https://github.com/openebs/openebs/blob/v4.4.0/charts/values.yaml (refers to subchart values) - Mayastor subchart values.yaml: https://github.com/openebs/mayastor-extensions/blob/develop/chart/values.yaml (loki.enabled: true) - ArtifactHub for 4.4.0: https://artifacthub.io/packages/helm/openebs/openebs/4.4.0 - Chart.yaml dependencies confirm mayastor from https://openebs.github.io/mayastor-extensions with condition engines.replicated.mayastor.enabled

Citations:


🏁 Script executed:

cat -n kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml | sed -n '35,95p'

Repository: jfroy/flatops

Length of output: 1643


Remove unsupported global.imageRegistry setting and correct mayastor.loki to mayastor.loki-stack.

Line 39 sets global.imageRegistry: quay.io/, but the OpenEBS 4.4.0 chart does not define this key at the top level; image registries are configured per-component instead. This setting will be ignored.

More critically, line 88 uses mayastor.loki.enabled which is incorrect. The valid key is mayastor.loki-stack.enabled (as confirmed by OpenEBS Mayastor subchart and documented in upgrade references). The current config will not enable Loki for Mayastor as intended.

Changes needed
  1. Remove lines 38-39 (global.imageRegistry setting)
  2. Rename mayastor.loki to mayastor.loki-stack on line 88
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@kubernetes/apps/openebs-system/openebs/app/helmrelease.yaml` around lines 38
- 40, Remove the unsupported top-level setting global.imageRegistry (delete the
global.imageRegistry: quay.io/ entry) because the OpenEBS 4.4.0 chart uses
per-component image registry settings, and rename the mayastor.loki key to
mayastor.loki-stack (change mayastor.loki.enabled → mayastor.loki-stack.enabled)
so the Mayastor subchart correctly enables Loki; update any other mayastor.loki
references to mayastor.loki-stack to ensure consistency.

@jfroy jfroy merged commit f754c34 into main May 1, 2026
7 checks passed
@jfroy jfroy deleted the storage-cleanup branch May 1, 2026 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant