Skip to content

Observability install fails on fresh cluster: victoria-metrics-operator templates its CRDs, so VMAgent/VMCluster CRs fail validation #690

Description

@amd-ama10002-2

Summary

On a fresh cluster, install.sh's observability step (metrics enabled) fails because the VictoriaMetrics operator's CRDs are shipped as templates (not in a crds/ directory), so the sibling VMAgent / VMCluster custom resources are applied before their CRDs are registered and fail validation.

Release impact

Release blocker for the RC branch experimental/v1-ga-separation.
Target branch for the fix: experimental/v1-ga-separation.

Location

  • Umbrella: SaFE/charts/primus-safe-observability
  • Subchart: SaFE/charts/primus-safe-observability/charts/primus-robust-vm-operator (depends on victoria-metrics-operator 0.35.2)
  • The CRs live in charts/primus-robust-vmagent and charts/primus-robust-victoriametrics.

Symptom

helm upgrade --install primus-safe-observability ... fails with no matches for kind "VMAgent" / no matches for kind "VMCluster" (or a CR validation/ensure CRD is installed error) on a fresh cluster where the VM-operator CRDs do not yet exist.

Reproduction

  1. Fresh cluster (no VictoriaMetrics CRDs present).
  2. Run SaFE/bootstrap/install.sh with the metrics stack enabled (install SaFE observability metrics stack ? y).
  3. The observability release fails on the VM CRs.

Reproducible; unlike the OpenSearch/Fluent CRDs (which this umbrella already ships in its own crds/ dir and installs first), the VM-operator CRDs are templated by the upstream subchart and register after the CRs are applied.

Manual workaround used

Pre-install the 16 VM-operator CRDs, then relabel/annotate them for Helm adoption (meta.helm.sh/release-name, release-namespace, app.kubernetes.io/managed-by=Helm) before re-running install.sh.

Suggested fix

Ensure the VM-operator CRDs are installed before the CRs. Options:

  • Vendor the VM-operator CRDs into the umbrella SaFE/charts/primus-safe-observability/crds/ dir (same pattern already used for OpenSearch/Fluent CRDs), and disable the subchart's templated CRDs.
  • Or add a pre-install CRD apply step for the VM operator in install.sh's observability step.

Metadata

Metadata

Labels

No labels
No labels

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions