victoria-metrics-stack
Installiert den victoria-metrics-stack.
- Grafana
- Benutzerdefinierte Dashboards (Optional: artifact Verzeichnis
block.config.grafana.custom_dashboards: true) - Benutzerdefinierte Dashboards (Im Block definierte Dashboards,
files/Verzeichnis) - promtail
- victoria metrics
- Service Scrape Objekte (velero, keydb, nginx)
block.config.mode
| Modus | Verhalten |
|---|---|
single |
Vollständiger Stack mit VMSingle (Standard). |
cluster |
Vollständiger Stack mit VMCluster. |
agent |
VMAgent / Operator ohne lokale Speicher-Workloads; typisch mit vm.additionalremotewrite.urls. |
crds |
Nur CRDs des Helm-Charts victoria-metrics-k8s-stack anwenden (server-side, force-conflicts), kein Stack-Release. Danach beendet sich das Playbook. |
grafana |
Nur eigenständiges Grafana per Grafana-Helm-Chart (block.config.chart.grafana.version Pflicht, grafana.admin_password Pflicht). Kein VictoriaMetrics-Stack. |
Für crds und grafana müssen install bzw. uninstall mit demselben mode in workspace.poly ausgeführt werden wie bei der Installation.
VictoriaMetrics-CRDs
- Upgrade / CRD-Sync: Entweder
mode: crdsundpolycrate run … installnutzen, oder manuell wie bisher:helm show crds vm/victoria-metrics-k8s-stack --version [CHART_VERSION] | kubectl apply -f - --server-side --force-conflictsSiehe Upstream CHANGELOG. - Standard-
uninstall: Entfernt nicht die VictoriaMetrics-CRDs (verhindert, dass alle VM-Custom Resources clusterweit verschwinden). uninstall-crds: Separate Action mit eigenem Playbook. Führthelm show crds … | kubectl delete -f -aus. Nur verwenden, wenn bewusst alle abhängigen CRs entfernt werden sollen.
Beispiele zum Hinzufügen von VMServiceScrape CRDs sind im Block unter
templates/vmservicescrape-*. Weitere Infos siehe: GitHub Issues - VMServiceScrape
Changelog
Moved to CHANGELOG.poly
actions
| Action | Beschreibung |
|---|---|
install |
Stack, CRDs-only oder Grafana-only je nach block.config.mode. |
uninstall |
Helm-Releases des Blocks entfernen; bei mode: crds nur CRD-Delete-Pfad; bei mode: grafana nur Grafana-Release. Kein CRD-Wipe im Standard-Modus. |
uninstall-crds |
Explizites Entfernen der VM-Stack-CRDs (gefährlich). |
install
Wenn
config.grafana.custom_dashboardsauftruegesetzt ist, werden alle Grafana Dashboards nach dem Namensschema[0-9a-zA-Z-].jsonim Verzeichnisartifacts/blocks/BLOCK_NAME/grafana_dashboards/installiert.
Konfigurationsbeispiele (vmsingle, vmsingle mit RemoteWrite ohne Grafana, Cluster-Mode, Agent-only, CRDs-only, Standalone-Grafana, Grafana mit OIDC/Keycloak, Grafana mit externem PostgreSQL/CNPG) siehe examples.poly:
polycrate block examples victoria-metrics-stack
Wenn mehrere Cluster denselben
remote_write-Endpunkt nutzen, muss dasmemory_limitdes vmsingle-Pods angepasst werden. Richtwert: 1GB + (300Mi * Anzahl Cluster-Nodes).VMAuth-Companion (
victoria-metrics-auth-Block): Für Remote-Read/-Write über mehrere Cluster hinweg wird dervmsingle/vminsert-Endpoint typischerweise über einenvictoria-metrics-auth-Block (VMAuth) miturl_prefix: ".../?extra_label=cluster=<name>"pro User exponiert, um Cluster-seitig zu scopen. Siehe README desvictoria-metrics-auth-Blocks.Hinweis (Grafana OIDC/Keycloak):
email_attribute_path: "email"ist für Keycloak zwingend erforderlich (ab Grafana 12). Ohne diesen Wert versucht Grafana einen separaten/userinfo/emails-Endpoint aufzurufen, den Keycloak nicht kennt.Provisionierte User:
login_attribute_path: "email"verknüpft OAuth-Logins mit per Polycrate-API angelegten Grafana-Usern (Login = E-Mail). Block-Default fürallow_sign_upistfalse. Für den ersten OAuth-Login API-provisionierter User muss im Workspaceoauth_allow_insecure_email_lookup: truegesetzt werden (Grafana matcht dann per E-Mail statt nur per bestehendemuser_auth-Eintrag).SSO-Settings-DB: Grafana 10+ speichert OAuth-Konfigurationen in einer internen Datenbank, die Vorrang vor
grafana.inihat. Werden OAuth-Einstellungen manuell im Grafana-UI geändert, überschreiben diese diegrafana.ini. Um auf diegrafana.inizurückzusetzen:curl -X DELETE -u admin:<password> https://<grafana-host>/api/v1/sso-settings/generic_oauthGrafana mit externem PostgreSQL-Backend (CloudNativePG): Der Block unterstützt ein externes PostgreSQL-Backend für Grafana via CloudNativePG-Secret. Das CNPG-Secret wird als Umgebungsvariablen in den Grafana-Pod gemountet;
grafana.inireferenziert diese direkt. Voraussetzung: ein CNPG-Cluster im gleichen Namespace wie Grafana (Standard:victoria-metrics-stack), dessen App-Secret die Standardkeys von CloudNativePG enthält (host,port,dbname,username,password).Grafana SMTP: Über
block.config.grafana.smtpwird[smtp]ingrafana.inigesetzt. Plain-Password inworkspace.poly— enthält es#oder;, wrapped der Block als"""…"""(Grafana-INI-Kommentarzeichen). Keine Triple-Quotes im Workspace setzen. Siehe Grafana SMTP Docs undpolycrate block examples victoria-metrics-stack(grafana-smtp).
mode: grafana(Standalone) benötigtblock.config.chart.grafana.version(sieheblock.poly) undgrafana.admin_password.
uninstall
Entfernt die Helm-Releases dieses Blocks (Stack oder nur Grafana), ohne im Standard-Modus die VictoriaMetrics-CRDs zu löschen.
polycrate run monitoring uninstall
uninstall-crds
Expliziter CRD-Abgleich mit dem Chart (löscht CRD-Definitionen und damit zugehörige CRs). Nur nach bewusster Prüfung ausführen.
polycrate run monitoring uninstall-crds
Upgrade Path
helm repo add vm https://victoriametrics.github.io/helm-charts/
- 0.22.1 -> 0.24.0 - CRD Upgrade
- helm show crds vm/victoria-metrics-k8s-stack --version 0.24.0 | kubectl diff -f -
- helm show crds vm/victoria-metrics-k8s-stack --version 0.24.0 | kubectl apply -f - --server-side
End: 0.47.1