Skip to content

chore(deps): update helm release longhorn to v1.12.1 - #165

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/longhorn-1.x
Open

chore(deps): update helm release longhorn to v1.12.1#165
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/longhorn-1.x

Conversation

@renovate

@renovate renovate Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
longhorn (source) patch 1.12.01.12.1

Release Notes

longhorn/charts (longhorn)

v1.12.1

Compare Source

Longhorn is a distributed block storage system for Kubernetes.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@github-actions

Copy link
Copy Markdown

Helm Template Diff — longhorn

1052 changed lines
--- /tmp/old.yaml	2026-08-28 08:03:35.812503814 +0000
+++ /tmp/new.yaml	2026-08-28 08:03:35.292502579 +0000
@@ -6,16 +6,178 @@
   name: "longhorn-critical"
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
 description: "Ensure Longhorn pods have the highest priority to prevent any unexpected eviction by the Kubernetes scheduler under node pressure"
 globalDefault: false
 preemptionPolicy: PreemptLowerPriority
 value: 1000000000
 
 ---
+# Source: longhorn/charts/longhorn/templates/network-policies/backing-image-data-source-network-policy.yaml
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: backing-image-data-source
+  namespace: longhorn
+spec:
+  podSelector:
+    matchLabels:
+      longhorn.io/component: backing-image-data-source
+  policyTypes:
+  - Ingress
+  ingress:
+  - from:
+    - podSelector:
+        matchLabels:
+          app: longhorn-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: instance-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: backing-image-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: backing-image-data-source
+
+---
+# Source: longhorn/charts/longhorn/templates/network-policies/backing-image-manager-network-policy.yaml
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: backing-image-manager
+  namespace: longhorn
+spec:
+  podSelector:
+    matchLabels:
+      longhorn.io/component: backing-image-manager
+  policyTypes:
+  - Ingress
+  ingress:
+  - from:
+    - podSelector:
+        matchLabels:
+          app: longhorn-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: instance-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: backing-image-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: backing-image-data-source
+
+---
+# Source: longhorn/charts/longhorn/templates/network-policies/instance-manager-networking.yaml
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: instance-manager
+  namespace: longhorn
+spec:
+  podSelector:
+    matchLabels:
+      longhorn.io/component: instance-manager
+  policyTypes:
+  - Ingress
+  ingress:
+  - from:
+    - podSelector:
+        matchLabels:
+          app: longhorn-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: instance-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: backing-image-manager
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: backing-image-data-source
+
+---
+# Source: longhorn/charts/longhorn/templates/network-policies/manager-network-policy.yaml
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: longhorn-manager
+  namespace: longhorn
+spec:
+  podSelector:
+    matchLabels:
+      app: longhorn-manager
+  policyTypes:
+  - Ingress
+  ingress:
+  - from:
+    - podSelector:
+        matchLabels:
+          app: longhorn-manager
+    - podSelector:
+        matchLabels:
+          app: longhorn-ui
+    - podSelector:
+        matchLabels:
+          app: longhorn-csi-plugin
+    - podSelector:
+        matchLabels:
+          longhorn.io/managed-by: longhorn-manager
+        matchExpressions:
+          - { key: recurring-job.longhorn.io, operator: Exists }
+    - podSelector:
+        matchExpressions:
+          - { key: longhorn.io/job-task, operator: Exists }
+    - podSelector:
+        matchLabels:
+          app: longhorn-driver-deployer
+
+---
+# Source: longhorn/charts/longhorn/templates/network-policies/recovery-backend-network-policy.yaml
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: longhorn-recovery-backend
+  namespace: longhorn
+spec:
+  podSelector:
+    matchLabels:
+      longhorn.io/recovery-backend: longhorn-recovery-backend
+  policyTypes:
+  - Ingress
+  ingress:
+  - from:
+    - podSelector:
+        matchLabels:
+          longhorn.io/component: share-manager
+    ports:
+    - protocol: TCP
+      port: 9503
+
+---
+# Source: longhorn/charts/longhorn/templates/network-policies/webhook-network-policy.yaml
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: longhorn-webhook
+  namespace: longhorn
+spec:
+  podSelector:
+    matchLabels:
+      longhorn.io/admission-webhook: longhorn-admission-webhook
+  policyTypes:
+  - Ingress
+  ingress:
+  - ports:
+    - protocol: TCP
+      port: 9501
+    - protocol: TCP
+      port: 9502
+
+---
 # Source: longhorn/charts/longhorn/templates/serviceaccount.yaml
 apiVersion: v1
 kind: ServiceAccount
@@ -24,10 +186,10 @@
   namespace: longhorn
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
 
 ---
 # Source: longhorn/charts/longhorn/templates/serviceaccount.yaml
@@ -38,10 +200,10 @@
   namespace: longhorn
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
 
 ---
 # Source: longhorn/charts/longhorn/templates/serviceaccount.yaml
@@ -52,10 +214,10 @@
   namespace: longhorn
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
 ---
 # Source: longhorn/charts/longhorn/templates/default-resource.yaml
 apiVersion: v1
@@ -65,10 +227,10 @@
   namespace: longhorn
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
 data:
   default-resource.yaml: |-
     backup-target: cifs://erolas.elda/k8s-prod-longhorn-backup
@@ -83,10 +245,10 @@
   namespace: longhorn
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
 data:
   default-setting.yaml: |-
     replica-auto-balance: ""
@@ -106,10 +268,10 @@
   namespace: longhorn
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
 data:
   storageclass.yaml: |
     kind: StorageClass
@@ -235,10 +397,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: backingimagedatasources.longhorn.io
 spec:
@@ -375,10 +537,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: backingimagemanagers.longhorn.io
 spec:
@@ -519,10 +681,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: backingimages.longhorn.io
 spec:
@@ -705,10 +867,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: backupbackingimages.longhorn.io
 spec:
@@ -879,10 +1041,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: backups.longhorn.io
 spec:
@@ -1072,10 +1234,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: backuptargets.longhorn.io
 spec:
@@ -1216,10 +1378,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: backupvolumes.longhorn.io
 spec:
@@ -1365,10 +1527,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: enginefrontends.longhorn.io
 spec:
@@ -1610,10 +1772,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: engineimages.longhorn.io
 spec:
@@ -1765,10 +1927,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: engines.longhorn.io
 spec:
@@ -2150,10 +2312,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: instancemanagers.longhorn.io
 spec:
@@ -2219,6 +2381,20 @@
                 properties:
                   v2:
                     properties:
+                      cpuIsolationEnabled:
+                        description: |-
+                          CPUIsolationEnabled overrides the cluster-wide
+                          data-engine-cpu-isolation-enabled setting for this instance manager.
+                          "true"  -> pass --enable-irq-affinity and --enable-workqueue-affinity
+                                     to start-spdk-tgt (steer host IRQs and unbound kernel
+                                     workqueues away from the SPDK reactor CPUs).
+                          "false" -> do not pass the flags.
+                          ""      -> inherit the global setting value.
+                        enum:
+                        - ""
+                        - "true"
+                        - "false"
+                        type: string
                       cpuMask:
                         type: string
                     type: object
@@ -2300,6 +2476,9 @@
                 properties:
                   v2:
                     properties:
+                      cpuCoreNumber:
+                        format: int64
+                        type: integer
                       cpuMask:
                         type: string
                       interruptModeEnabled:
@@ -2536,6 +2715,154 @@
                   type: object
                 nullable: true
                 type: object
+              instanceShardGroups:
+                additionalProperties:
+                  properties:
+                    spec:
+                      properties:
+                        dataEngine:
+                          type: string
+                        name:
+                          type: string
+                      type: object
+                    status:
+                      properties:
+                        activePath:
+                          type: string
+                        conditions:
+                          additionalProperties:
+                            type: boolean
+                          nullable: true
+                          type: object
+                        endpoint:
+                          type: string
+                        errorMsg:
+                          type: string
+                        frontend:
+                          type: string
+                        listen:
+                          type: string
+                        paths:
+                          items:
+                            properties:
+                              anaState:
+                                type: string
+                              engineName:
+                                type: string
+                              nguid:
+                                type: string
+                              nqn:
+                                type: string
+                              targetIP:
+                                type: string
+                              targetPort:
+                                type: integer
+                            type: object
+                          type: array
+                        portEnd:
+                          format: int32
+                          type: integer
+                        portStart:
+                          format: int32
+                          type: integer
+                        preferredPath:
+                          type: string
+                        resourceVersion:
+                          format: int64
+                          type: integer
+                        state:
+                          type: string
+                        targetPortEnd:
+                          format: int32
+                          type: integer
+                        targetPortStart:
+                          format: int32
+                          type: integer
+                        type:
+                          type: string
+                        ublkID:
+                          format: int32
+                          type: integer
+                        uuid:
+                          type: string
+                      type: object
+                  type: object
+                nullable: true
+                type: object
+              instanceShards:
+                additionalProperties:
+                  properties:
+                    spec:
+                      properties:
+                        dataEngine:
+                          type: string
+                        name:
+                          type: string
+                      type: object
+                    status:
+                      properties:
+                        activePath:
+                          type: string
+                        conditions:
+                          additionalProperties:
+                            type: boolean
+                          nullable: true
+                          type: object
+                        endpoint:
+                          type: string
+                        errorMsg:
+                          type: string
+                        frontend:
+                          type: string
+                        listen:
+                          type: string
+                        paths:
+                          items:
+                            properties:
+                              anaState:
+                                type: string
+                              engineName:
+                                type: string
+                              nguid:
+                                type: string
+                              nqn:
+                                type: string
+                              targetIP:
+                                type: string
+                              targetPort:
+                                type: integer
+                            type: object
+                          type: array
+                        portEnd:
+                          format: int32
+                          type: integer
+                        portStart:
+                          format: int32
+                          type: integer
+                        preferredPath:
+                          type: string
+                        resourceVersion:
+                          format: int64
+                          type: integer
+                        state:
+                          type: string
+                        targetPortEnd:
+                          format: int32
+                          type: integer
+                        targetPortStart:
+                          format: int32
+                          type: integer
+                        type:
+                          type: string
+                        ublkID:
+                          format: int32
+                          type: integer
+                        uuid:
+                          type: string
+                      type: object
+                  type: object
+                nullable: true
+                type: object
               ip:
                 type: string
               ownerID:
@@ -2560,10 +2887,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: nodes.longhorn.io
 spec:
@@ -2696,6 +3023,8 @@
                   type: object
                 nullable: true
                 type: array
+              cpuPolicy:
+                type: string
               diskStatus:
                 additionalProperties:
                   properties:
@@ -2849,10 +3178,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: orphans.longhorn.io
 spec:
@@ -2975,10 +3304,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: recurringjobs.longhorn.io
 spec:
@@ -3119,10 +3448,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: replicas.longhorn.io
 spec:
@@ -3249,6 +3578,11 @@
                   later than the corresponding entry in an engine's replicaTransitionTimeMap because it is set when the volume
                   controller acknowledges the change.
                 type: string
+              linkedCloneSrcReplicaName:
+                description: |-
+                  LinkedCloneSrcReplicaName is the name of the src replica this clone replica is parented to.
+                  Immutable once set. Non-empty only for linked-clone replicas.
+                type: string
               logRequested:
                 type: boolean
               migrationEngineName:
@@ -3353,10 +3687,10 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
     app.kubernetes.io/managed-by: Helm
     app.kubernetes.io/instance: longhorn
-    app.kubernetes.io/version: v1.12.0
+    app.kubernetes.io/version: v1.12.1
     longhorn-manager: ""
   name: settings.longhorn.io
 spec:
@@ -3436,10 +3770,447 @@
     controller-gen.kubebuilder.io/version: v0.19.0
   labels:
     app.kubernetes.io/name: longhorn
-    helm.sh/chart: longhorn-1.12.0
+    helm.sh/chart: longhorn-1.12.1
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/instance: longhorn
+    app.kubernetes.io/version: v1.12.1
+    longhorn-manager: ""
+  name: shardgroups.longhorn.io
+spec:
+  group: longhorn.io
+  names:
+    kind: ShardGroup
+    listKind: ShardGroupList
+    plural: shardgroups
+    shortNames:
+    - lhsg
+    singular: shardgroup
+  scope: Namespaced
+  versions:
+  - additionalPrinterColumns:
+    - description: The volume that owns this ShardGroup
+      jsonPath: .spec.volumeName
+      name: Volume
+      type: string
+    - description: The aggregate health state of the EC array
+      jsonPath: .status.state
+      name: State
+      type: string
+    - description: The node hosting the ShardGroup process (typically co-located with
+        the engine)
+      jsonPath: .spec.nodeID
+      name: Node
+      type: string
+    - description: The number of failed slots
+      jsonPath: .status.failedCount
+      name: Failed
+      type: integer
+    - jsonPath: .metadata.creationTimestamp
+      name: Age
+      type: date
+    name: v1beta2
+    schema:
+      openAPIV3Schema:
+        description: ShardGroup is where Longhorn stores ShardGroup object.
+        properties:
+          apiVersion:
+            description: |-
+              APIVersion defines the versioned schema of this representation of an object.
+              Servers should convert recognized schemas to the latest internal value, and
+              may reject unrecognized values.
+              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+            type: string
+          kind:
+            description: |-
+              Kind is a string value representing the REST resource this object represents.
+              Servers may infer this from the endpoint the client submits requests to.
+              Cannot be updated.
+              In CamelCase.
+              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+            type: string
+          metadata:
+            type: object
+          spec:
+            description: ShardGroupSpec defines the desired state of the Longhorn
+              ShardGroup
+            properties:
+              creationSize:
+                description: |-
+                  CreationSize is the volume size in bytes when the lvstore is first
+                  created. The lvstore metadata region is sized from it and never grows,
+                  so in-place expansion is limited to EcLvstoreMaxGrowthFactor (10x) of
+                  this size. Zero means the lvstore does not exist yet; the creation cap
+                  applies instead. Immutable once set.
+                format: int64
+                type: integer
+                x-kubernetes-validations:
+                - message: CreationSize is immutable once set
+                  rule: oldSelf == 0 || self == oldSelf
+              dataChunks:
+                description: DataChunks is the k parameter of the EC array. Immutable
+                  after creation.
+                minimum: 1
+                type: integer
+              nodeID:
+                description: |-
+                  NodeID identifies the node hosting the long-lived ShardGroup process that owns the
+                  EC volume's bdev_ec, lvol store, head lvol, and NVMe-oF export. It is typically equal
+                  to Engine.Spec.NodeID for engine-process co-location. The Volume controller is the
+                  sole writer and sets this field at first attach. NodeID is NOT cleared on volume
+                  detach (the ShardGroup process keeps running across detach to preserve the lvstore
+                  and head lvol on the encoded shard blocks for fast re-attach); it only changes on
+                  engine-node failover or volume deletion.
+                type: string
+              parityChunks:
+                description: |-
+                  ParityChunks is the m parameter of the EC array. The ShardGroup tolerates up to m
+                  simultaneous shard failures. Immutable after creation.
+                minimum: 1
+                type: integer
+              stripSizeKB:
+                description: |-
+                  StripSizeKB is the EC chunk size in KiB. Must be a power of two in the range [4, 1024].
+                  Immutable after creation.
+                maximum: 1024
+                minimum: 4
+                type: integer
+              volumeName:
+                description: VolumeName is the name of the owning Volume CR. Immutable
+                  after creation.
+                type: string
+            type: object
+          status:
+            description: ShardGroupStatus defines the observed state of the Longhorn
+              ShardGroup
+            properties:
+              conditions:
+                description: |-
+                  Conditions holds the latest observations of the ShardGroup's state, such as a
+                  degraded read that returned EIO.
+                items:
+                  properties:
+                    lastProbeTime:
+                      description: Last time we probed the condition.
+                      type: string
+                    lastTransitionTime:
+                      description: Last time the condition transitioned from one status
+                        to another.
+                      type: string
+                    message:
+                      description: Human-readable message indicating details about
+                        last transition.
+                      type: string
+                    reason:
+                      description: Unique, one-word, CamelCase reason for the condition's
+                        last transition.
+                      type: string
+                    status:
+                      description: |-
+                        Status is the status of the condition.
+                        Can be True, False, Unknown.
+                      type: string
+                    type:
+                      description: Type is the type of the condition.
+                      type: string
+                  type: object
+                nullable: true
+                type: array
+              ecShardAddressMap:
+                additionalProperties:
+                  type: string
+                description: |-
+                  ECShardAddressMap maps shard slot index (as string) to the NVMe-oF address ("ip:port")
+                  of each healthy shard instance (ShardStateNormal with a non-empty StorageIP and Port).
+                  It is the base-bdev list for the ShardGroup process's EC array, and acts as the readiness
+                  gate (together with every Shard CR being in ShardStateNormal) before the ShardGroup
+                  process is provisioned.
+                nullable: true
+                type: object
+              evictingSlots:
+                description: |-
+                  EvictingSlots is the ordered list of slot indices currently in the eviction
+                  pipeline (old Shard CR deleted, replacement not yet rebuilt). Tracked in
+                  status so VolumeEvictionController can observe progress without annotation parsing.
+                items:
+                  type: integer
+                nullable: true
+                type: array
+              failedCount:
+                description: |-
+                  FailedCount is the number of slots currently in the failed state. Slots being replaced
+                  (ShardStateReplacing) are not counted; an active rebuild is tracked separately via
+                  RebuildInProgress.
+                type: integer
+              growInProgress:
+                description: GrowInProgress indicates whether a capacity expansion
+                  is currently running.
+                type: boolean
+              headLvolUUID:
+                description: |-
+                  HeadLvolUUID is the UUID of the head lvol on the ShardGroup-process-owned lvol
+                  store. Surfaced for observability and debugging only.
+                type: string
+              instanceManagerName:
+                description: |-
+                  InstanceManagerName is the InstanceManager currently hosting the ShardGroup process,
+                  set during provisioning and cleared on teardown. During a re-bind to a new node it may
+                  still reference the previous InstanceManager until teardown completes, so consumers must
+                  validate it against Spec.NodeID before trusting the endpoint above.
+                type: string
+              intentionalDeleteSlots:
+                description: |-
+                  IntentionalDeleteSlots is the list of slot indices whose old Shard CR was
+                  deleted intentionally (admin kubectl delete, eviction, drain). The replacement
+                  Shard CR's failure-recovery debounce is bypassed for these slots so the
+                  replace+rebuild sequence runs immediately rather than after the full
+                  replica-replenishment-wait-interval. Cleared once the replacement reaches
+                  ShardStateNormal with StorageIP set, and defensively cleared on ShardGroup
+                  process re-bind.
+                items:
+                  type: integer
+                nullable: true
+                type: array
+              lvstoreUUID:
+                description: |-
+                  LvstoreUUID is reserved for the UUID of the lvol store created on bdev_ec inside the
+                  ShardGroup process. It is currently unpopulated: the ShardGroup instance does not surface
+                  the lvstore UUID over the instance-manager proto yet. Kept for forward-compatible
+                  observability; not on the engine data path.
+                type: string
+              nqn:
+                description: NQN is the NVMe-oF subsystem NQN of the ShardGroup process's
+                  exposed head lvol.
+                type: string
+              ownerID:
+                description: OwnerID is the ID of the node that owns this ShardGroup.
+                type: string
+              port:
+                description: Port is the NVMe-oF port allocated for the ShardGroup
+                  process's exposed head lvol.
+                format: int32
+                type: integer
+              processState:
+                description: ProcessState is the runtime state of the ShardGroup process
+                  owned by this CR.
+                type: string
+              rebuildInProgress:
+                description: RebuildInProgress indicates whether a background shard
+                  rebuild is currently running.
+                type: boolean
+              scrubInProgress:
+                description: ScrubInProgress indicates whether a background scrub
+                  is currently running.
+                type: boolean
+              shardRefs:
+                description: ShardRefs is an ordered list of Shard CR names, where
+                  the list index equals the EC slot index.
+                items:
+                  type: string
+                nullable: true
+                type: array
+              state:
+                description: State is the aggregate health state of the EC array.
+                enum:
+                - healthy
+                - degraded
+                - offline
+                - rebuilding
+                - growing
+                - ""
+                type: string
+              storageIP:
+                description: |-
+                  StorageIP is the storage-network IP of the InstanceManager pod hosting the ShardGroup
+                  process. Combined with Port and NQN, it forms the NVMe-oF endpoint that an EC volume's
+                  engine attaches to.
+                type: string
+              wibDirtyRegion:
+                description: WIBDirtyRegion is the number of dirty WIB regions reported
+                  by the EC bdev.
+                type: integer
+            type: object
+        type: object
+    served: true
+    storage: true
+    subresources:
+      status: {}
+
+---
+# Source: longhorn/charts/longhorn/templates/crds.yaml
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  annotations:
+    controller-gen.kubebuilder.io/version: v0.19.0
+  labels:
+    app.kubernetes.io/name: longhorn
+    helm.sh/chart: longhorn-1.12.1
+    app.kubernetes.io/managed-by: Helm
+    app.kubernetes.io/instance: longhorn
+    app.kubernetes.io/version: v1.12.1
+    longhorn-manager: ""
+  name: shards.longhorn.io
+spec:
+  group: longhorn.io
+  names:
+    kind: Shard
+    listKind: ShardList
+    plural: shards
+    shortNames:
+    - lhsd
+    singular: shard
+  scope: Namespaced
+  versions:
+  - additionalPrinterColumns:
+    - description: The ShardGroup that owns this Shard
+      jsonPath: .spec.shardGroupName
+      name: ShardGroup
+      type: string
+    - description: The EC slot index of this Shard
+      jsonPath: .spec.slotIndex
+      name: Slot
+      type: integer
+    - description: The node that the shard instance runs on
+      jsonPath: .spec.nodeID
+      name: Node
+      type: string
+    - description: The health state of this shard slot
+      jsonPath: .status.state
+      name: State
+      type: string
+    - description: The EC role of this shard slot (data or parity)
+      jsonPath: .status.role
+      name: Role
+      type: string
+    - jsonPath: .metadata.creationTimestamp
+      name: Age
+      type: date
+    name: v1beta2
+    schema:
+      openAPIV3Schema:
+        description: Shard is where Longhorn stores Shard object.
... (truncated, diff exceeds 1000 lines)

lunarys commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Renovate Review: longhorn 1.12.0 → 1.12.1 (patch, longhorn app)

Risk: 🟡 MEDIUM

Check Result
Inputs Degraded — PR body has a ### Release Notes heading but no actual entries, just chart boilerplate ("Longhorn is a distributed block storage system for Kubernetes."). No categorized breaking-change/fix list to cross-reference; falling back to raw version-number comparison only. One matching diff comment (03-apps-apps-longhorn) is present.
Description vs. diff File-scope consistent — only 03_apps/apps/longhorn/Chart.yaml changed (dependencies[0].version: 1.12.0 → 1.12.1), matches the PR table. But the magnitude of what actually changed is out of proportion to a "patch" label — see Rendered diff.
Rendered diff Truncated at the 1000-line cap (summary reports 1052 changed lines) — incomplete visibility. The visible portion is not cosmetic-only: it adds 6 new NetworkPolicy resources (backing-image-data-source, backing-image-manager, and others) and a brand-new CustomResourceDefinition shards.longhorn.io (erasure-coding "Shard" tracking, group longhorn.io). The cut happens mid-schema inside that new CRD, so content past that point (possibly more resources, possibly RBAC) is unverified.
RBAC No Role/ClusterRole/RoleBinding/ClusterRoleBinding diff lines appear in the visible ~1000 lines, but given the truncation above this cannot be confirmed for the remaining ~52+ lines.
Changelog vs. config No real changelog text exists to cross-reference (see Inputs). Checked 03_apps/apps/longhorn/values.yaml, values-prod.yaml, values-test.yaml for any networkPolic*/crd* override that might explain the new resources conditionally appearing — none found, so these are new unconditional chart defaults in 1.12.1, not something toggled by this repo.

Details:

  • 03_apps/apps/longhorn/values.yaml sets defaultSettings, persistence, csi, ingress, defaultBackupStore, etc. — nothing there references shard/erasure-coding or network-policy settings, so no live override intersects the new content.
  • Grepped the repo outside 03_apps/apps/longhorn/ for longhorn.io in apiVersion:/provisioner fields: one hit, 03_apps/apps/cloudnative-pg/resources.disabled/storageclass.yaml, which is a disabled reference file referencing the Longhorn storage-class provisioner, not a CR of the new Shard CRD — no intersection.

Worth noting (non-blocking):

  • 03_apps/apps/longhorn/values.yaml carries three pre-existing TODOs (csi-pod Argo tracking, "longhorn system backup?", "restore-volume-recurring-jobs") — unrelated to this bump, not resolved by it.

Why MEDIUM: truncated diff (line-cap, can't rule out content past the cut), a real changelog is missing so breaking changes can't be cross-checked, and the rendered diff shows a new CRD plus six new NetworkPolicy resources under a bump labeled "patch" — each independently a Medium trigger, though nothing found rises to a confirmed High.


Generated by Claude Code

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant