Skip to content

name of volumeMount in vmstorage StatefulSet does not follow name of volumeClaimTemplate #344

@umezawatakeshi

Description

@umezawatakeshi

For example, when I give a VMCluster like:

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMCluster
metadata:
  name: example-cluster
  namespace: monitoring
spec:
  vmstorage:
    storage:
      volumeClaimTemplate:
        metadata:
          name: foo-db    # THIS!!
        spec:
          storageClassName: ceph-hdd-block
          resources:
            requests:
              storage: 3Gi

  vmselect:
    replicaCount: 1

  vminsert:
    replicaCount: 1

... the resulting StatefulSet for vmstorage becomes:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: vmstorage-example-cluster
  namespace: monitoring
spec:
  template:
    spec:
      containers:
        - args:
          (snip)
          volumeMounts:
            - mountPath: vmstorage-data
              name: vmstorage-db    # XXX
  volumeClaimTemplates:
    - apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: foo-db    # The name given in VMCluster.spec.vmstorage.storage.volumeClaimTemplate.metadata.name
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 3Gi
        storageClassName: ceph-hdd-block
        volumeMode: Filesystem
      status:
        phase: Pending

... and StatefulSet controller cannot create Pods due to volume name mismatch.

According to https://github.com/VictoriaMetrics/operator/blob/v0.19.1/controllers/factory/alertmanager.go#L571 , it seems that the operator allows renaming volumeClaimTemplate. However, .spec.template.spec.containers[0].volumeMounts[0].name of the resulting StatefulSet does not follow the volumeClaimTemplate's name. I think it is a problem.

VMSelect and VMAlertmanager, which also create StatefulSets, may have the same problem but I don't have checked them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions