How victoriametrics/helm-charts works
Purpose and entry points
This repository publishes Helm charts for deploying the VictoriaMetrics observability ecosystem on Kubernetes: metrics, logs, traces, alerting, auth, collectors, MCP services, and an operator-based stack. Each charts/<name>/Chart.yaml is an independently installable entry point; its values.yaml drives rendering of Kubernetes manifests. Repository-level catalog metadata is in artifacthub-repo.yml.
Helm chart composition boundary
Charts follow the Helm model: values and chart dependencies are resolved from Chart.yaml/Chart.lock, then templates produce cluster resources. Templates commonly expose Services, ingress/route, network policies, service accounts/RBAC, monitoring CRs, autoscaling, and optional user-supplied extra objects.
Paths: charts/victoria-metrics-single/Chart.yaml, charts/victoria-metrics-single/values.yaml, charts/victoria-metrics-single/templates/server.yaml.
Metrics deployment topologies
Metrics has single-node, cluster, agent, alerting, gateway, auth, and distributed deployment charts. Cluster mode partitions the runtime into ingest (vminsert), query (vmselect), and durable storage (vmstorage), optionally fronted by vmauth; the equivalent single chart deploys one server with optional persistent storage and scrape/relabel configuration.
Paths: charts/victoria-metrics-cluster/templates/vminsert-server.yaml, charts/victoria-metrics-cluster/templates/vmselect-server.yaml, charts/victoria-metrics-cluster/templates/vmstorage-server.yaml; charts/victoria-metrics-single/templates/pvc.yaml.
Logs and traces pipelines
Logs and traces charts similarly offer single-node and horizontally separated cluster forms. Cluster traffic enters insert services, is stored by storage services, and is queried through select services; auth is an optional boundary. Logs additionally includes agent/collector charts and Vector configuration for collection/forwarding.
Paths: charts/victoria-logs-cluster/templates/vlinsert-server.yaml, charts/victoria-logs-cluster/templates/vlstorage-server.yaml, charts/victoria-logs-cluster/templates/vlselect-server.yaml; charts/victoria-traces-cluster/templates/vtinsert-server.yaml, charts/victoria-logs-collector/templates/server.yaml.
Operator and integrated stack
The operator chart installs the VictoriaMetrics Operator runtime, RBAC, webhook, and CRD delivery machinery. The k8s-stack chart composes operator-managed custom resources for metrics, logs, traces, alerting, auth, and Grafana integration, making the Kubernetes API/CRDs the control-plane boundary rather than directly creating every workload.
Paths: charts/victoria-metrics-operator/templates/server.yaml, charts/victoria-metrics-operator/templates/webhook.yaml, charts/victoria-metrics-operator/charts/crds/templates/job.yaml; charts/victoria-metrics-k8s-stack/templates/victoria-metrics-operator/vmcluster/vmcluster.yaml.
Shared and external integrations
victoria-metrics-common supplies reusable Helm template primitives consumed as a chart dependency. Deployment targets Kubernetes and may integrate with Grafana, Prometheus-style scraping/ServiceMonitor resources, OpenShift Routes, ingress controllers, persistent volumes, and Kubernetes autoscalers. The distributed chart adds per-availability-zone topologies and separate read/write auth proxies.
Paths: charts/victoria-metrics-common/templates/_pod.tpl, charts/victoria-metrics-distributed/templates/vmauth-read.yaml, charts/victoria-metrics-distributed/templates/per-az/vmcluster.yaml.
Release and validation flow
GitHub Actions runs linting, testing, documentation, releases, and release synchronization. Helm-template snapshot tests live within charts, while Go integration tests exercise chart behavior across the catalog. The Go sync-job is a separate runnable utility for synchronizing dashboards and rules into the stack.
Paths: .github/workflows/release.yaml, test/main_test.go, hack/sync-job/main.go, charts/victoria-metrics-k8s-stack/templates/sync-job/job.yaml.
Main entry points: Chart.yaml Independent Helm charts · values.yaml Chart values · templates/server.yaml Single-node metrics · templates/server.yaml VictoriaMetrics Operator
Components 24
Chart Catalog
- Artifact Hub metadata
artifacthub-repo.yml - Independent Helm charts · Each chart is separately installable.
charts/victoria-metrics-single/Chart.yaml - Chart values · Values select optional resources and runtime topology.
charts/victoria-metrics-single/values.yaml - Common template library
charts/victoria-metrics-common/templates/_pod.tpl
Metrics Runtime
- Single-node metrics · One server with optional storage and scrape configuration.
charts/victoria-metrics-single/templates/server.yaml - Metrics persistent volume
charts/victoria-metrics-single/templates/pvc.yaml - vminsert
charts/victoria-metrics-cluster/templates/vminsert-server.yaml - vmselect
charts/victoria-metrics-cluster/templates/vmselect-server.yaml - vmstorage
charts/victoria-metrics-cluster/templates/vmstorage-server.yaml - Distributed metrics topology · Adds per-zone clusters and separate read/write auth.
charts/victoria-metrics-distributed/templates/per-az/vmcluster.yaml - Read auth proxy
charts/victoria-metrics-distributed/templates/vmauth-read.yaml
Logs & Traces
- Logs collector · Supports collector and forwarding configuration.
charts/victoria-logs-collector/templates/server.yaml - vlinsert
charts/victoria-logs-cluster/templates/vlinsert-server.yaml - vlstorage
charts/victoria-logs-cluster/templates/vlstorage-server.yaml - vlselect
charts/victoria-logs-cluster/templates/vlselect-server.yaml - vtinsert
charts/victoria-traces-cluster/templates/vtinsert-server.yaml
Operator Stack
- VictoriaMetrics Operator · Reconciles VictoriaMetrics custom resources.
charts/victoria-metrics-operator/templates/server.yaml - Operator webhook
charts/victoria-metrics-operator/templates/webhook.yaml - CRD delivery
charts/victoria-metrics-operator/charts/crds/templates/job.yaml - Kubernetes stack CRs · Composes metrics, logs, traces, alerting, auth, and Grafana resources.
charts/victoria-metrics-k8s-stack/templates/victoria-metrics-operator/vmcluster/vmcluster.yaml - Dashboard and rule sync job
hack/sync-job/main.go
Release & Validation
- Release automation · Runs release and synchronization workflows.
.github/workflows/release.yaml - Catalog integration tests
test/main_test.go
Other components
- Kubernetes cluster
Connections 22
- Artifact Hub metadata → Independent Helm charts: catalogs
- Independent Helm charts → Chart values: configures
- Independent Helm charts → Common template library: depends on
- Chart values → Single-node metrics: renders
- Single-node metrics → Metrics persistent volume: optionally uses
- Single-node metrics → Kubernetes cluster: deploys to
- Chart values → vminsert: renders cluster mode
- vminsert → vmstorage: writes
- vmselect → vmstorage: queries
- Distributed metrics topology → Read auth proxy: fronted by
- Distributed metrics topology → Kubernetes cluster: deploys multi-AZ
- Logs collector → vlinsert: forwards logs
- vlinsert → vlstorage: writes
- vlselect → vlstorage: queries
- vtinsert → Kubernetes cluster: ingests traces in
- CRD delivery → Kubernetes cluster: installs CRDs
- VictoriaMetrics Operator → Kubernetes cluster: reconciles in
- Operator webhook → VictoriaMetrics Operator: supports
- Kubernetes stack CRs → VictoriaMetrics Operator: submits custom resources to
- Dashboard and rule sync job → Kubernetes stack CRs: synchronizes dashboards and rules
- Release automation → Catalog integration tests: runs
- Catalog integration tests → Independent Helm charts: validates