Skip to content

VMAgent and VPA: fails when .spec.shardCount is unset #2473

Description

@kharf

Problem

Using victoria-metrics-k8s-stack and enabling vpa for vmagent still produces an error that ".spec.shardCount" does not exist.

Versions

victoria-metrics-k8s-stack:0.88.0
vm-operator: v0.74.0

VPA

apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  labels:
    app.kubernetes.io/component: monitoring
    app.kubernetes.io/instance: victoriametrics-eu-west1
    app.kubernetes.io/name: vmagent
    managed-by: vm-operator
  name: victoriametrics-eu-west1
  namespace: monitoring
  ownerReferences:
  - apiVersion: operator.victoriametrics.com/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: VMAgent
    name: victoriametrics-eu-west1
spec:
  resourcePolicy:
    containerPolicies:
    - containerName: '*'
  targetRef:
    apiVersion: operator.victoriametrics.com/v1beta1
    kind: VMAgent
    name: victoriametrics-eu-west1
  updatePolicy:
    updateMode: InPlaceOrRecreate
status:
  conditions:
  - lastTransitionTime: "2026-08-04T09:55:44Z"
    message: 'Cannot read targetRef. Reason: unhandled targetRef operator.victoriametrics.com/v1beta1
      / VMAgent / victoriametrics-eu-west1, last error Internal error occurred: the
      spec replicas field ".spec.shardCount" does not exist'
    status: "True"
    type: ConfigUnsupported
  - lastTransitionTime: "2026-08-04T09:55:44Z"
    message: 'No recommendation provided from the recommendation engine: No pods found.'
    reason: 'No recommendation provided from the recommendation engine: No pods found.'
    status: "False"
    type: RecommendationProvided
  recommendation: {}

VMAgent

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAgent
metadata:
  annotations:
    meta.helm.sh/release-name: victoriametrics
    meta.helm.sh/release-namespace: monitoring
  labels:
    app.kubernetes.io/component: vmagent
    app.kubernetes.io/instance: victoriametrics
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: eu-west1
    app.kubernetes.io/version: v1.148.0
    helm.sh/chart: victoria-metrics-k8s-stack-0.88.0_216b0562e4f4
    helm.toolkit.fluxcd.io/name: victoriametrics
    helm.toolkit.fluxcd.io/namespace: monitoring
  name: victoriametrics-eu-west1
  namespace: monitoring
spec:
  externalLabels:
    cluster: eu-west1
  extraArgs:
    promscrape.streamParse: "true"
  image:
    tag: v1.148.0
  podDisruptionBudget:
    minAvailable: 1
  port: "8429"
  readinessProbe:
    initialDelaySeconds: 5
    periodSeconds: 10
    successThreshold: 1
    timeoutSeconds: 5
  remoteWrite:
  - url: http://vminsert-victoriametrics-eu-west4.monitoring.svc.clusterset.local:8480/insert/0/prometheus/api/v1/write
  - url: http://vminsert-victoriametrics-eu-west1.monitoring.svc.cluster.local:8480/insert/0/prometheus/api/v1/write
  replicaCount: 2
  resources:
    limits:
      memory: 700Mi
    requests:
      cpu: "0.2"
      memory: 700Mi
  scrapeInterval: 20s
  selectAllByDefault: true
  vpa:
    resourcePolicy:
      containerPolicies:
      - containerName: '*'
    updatePolicy:
      updateMode: InPlaceOrRecreate

.status.shards is 1

Description

so running kubectl get --raw /apis/operator.victoriametrics.com/v1beta1/namespaces/monitoring/vmagents/victoriametrics-eu-west1/scale gets
Error from server (InternalError): Internal error occurred: the spec replicas field ".spec.shardCount" does not exist

I have found issue #2229 related to this. With the newest update the target is now VMAgent, but still needing .spec.shardCount set.

Metadata

Metadata

Labels

bugSomething isn't workingwaiting for releaseThe change was merged to upstream, but wasn't released yet.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions