Skip to content

reclaimPolicy retain is not being honored in ClickHouseKeeperInstallation and ClickHouseInstallation #1619

@nitishkumar71

Description

@nitishkumar71

Hi Team

I was testing clickhouse in my local minikube setup. Even though I have setup reclaimPolicy attribute on both keeper and clickhouse, still volume get deleted when i delete cluster. Below is yaml for same

apiVersion: "clickhouse-keeper.altinity.com/v1"
kind: "ClickHouseKeeperInstallation"
metadata:
  name: demo-keeper-cluster
  namespace: "clickhouse"
spec:
  configuration:
    clusters:
      - name: "demo-keeper"
        layout:
          replicasCount: 3
        templates:
          podTemplate: default
          volumeClaimTemplate: default
  templates:
    podTemplates:
      - name: default
        spec:
          containers:
            - name: clickhouse-keeper
              imagePullPolicy: IfNotPresent
              image: "clickhouse/clickhouse-keeper:24.8.11.5"
              resources:
                requests:
                  memory: "256M"
                  cpu: "1"
                limits:
                  memory: "4Gi"
                  cpu: "2"
          securityContext:
            fsGroup: 101
    volumeClaimTemplates:
      - name: default
        spec:
          reclaimPolicy: Retain
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 1Gi
---
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
metadata:
  name: "demo-cluster"
  namespace: "clickhouse"
spec:
  configuration:
    users:
      # hex value for 'password'
      admin/password_sha256_hex: 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
      admin/networks/ip:
        - "127.0.0.1"
      admin/access_management: 1
    zookeeper:
      nodes:
        - host: chk-demo-keeper-cluster-demo-keeper-0-0
          port: 2181
        - host: chk-demo-keeper-cluster-demo-keeper-0-1
          port: 2181
        - host: chk-demo-keeper-cluster-demo-keeper-0-2
          port: 2181
    clusters:
      - name: "demo-cluster"
        layout:
          shardsCount: 1
          replicasCount: 1
        templates:
          podTemplate: default
          volumeClaimTemplate: default
  templates:
    podTemplates:
      - name: default
        spec:
          containers:
            - name: clickhouse
              imagePullPolicy: IfNotPresent
              image: "clickhouse/clickhouse-server:24.8.11.5"
    volumeClaimTemplates:
      - name: default
        spec:
          reclaimPolicy: Retain
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 1Gi

Here is the generated yaml for clickhouse cluster PVC. In which there is not persistentVolumeReclaimPolicy set to Retain. Also the clickhouse.altinity.com/reclaimPolicy label has value set to Delete.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: k8s.io/minikube-hostpath
    volume.kubernetes.io/storage-provisioner: k8s.io/minikube-hostpath
  creationTimestamp: "2025-01-16T20:41:17Z"
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    clickhouse.altinity.com/app: chop
    clickhouse.altinity.com/chi: demo-cluster
    clickhouse.altinity.com/cluster: demo-cluster
    clickhouse.altinity.com/namespace: clickhouse
    clickhouse.altinity.com/object-version: 2f9c980b940cdaa035222f6bdd04f1eee45e57e0
    clickhouse.altinity.com/reclaimPolicy: Delete
    clickhouse.altinity.com/replica: "0"
    clickhouse.altinity.com/shard: "0"
  name: default-chi-demo-cluster-demo-cluster-0-0-0
  namespace: clickhouse
  resourceVersion: "20238"
  uid: 2a2c1c97-b6f0-493e-ba4c-342a21359ac6
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: standard
  volumeMode: Filesystem
  volumeName: pvc-2a2c1c97-b6f0-493e-ba4c-342a21359ac6
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  phase: Bound

Although, the PVC yaml is similar for ClickHouseKeeperInstallation too but the PVC do not get deleted in the case of keeper.

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