Files
wbsong111 6290322f1b Add VictoriaMetrics observability stack + sync catalog for monitoring test
- VM stack 10 charts: victoria-metrics-cluster/auth, victoria-logs-cluster,
  victoria-metrics-agent/alert, opentelemetry-collector, kube-state-metrics,
  prometheus-node-exporter, alertmanager, perses (JWT/OIDC, Infisical-ready)
- ArgoCD ApplicationSet (syncWave) + per-chart dip-values overlays
- doc/victoria-metrics-architecture.md, define-chart-resources updates
- includes pending working-tree changes (mlflow, kubeflow, apisix, CLAUDE.md)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 11:10:51 +09:00

2.4 KiB

VictoriaMetrics 스택 ArgoCD ApplicationSet

VM 옵저버빌리티 스택(10개 차트)을 ArgoCD ApplicationSet으로 배포한다. 전체 아키텍처는 doc/victoria-metrics-architecture.md 12장 참조.

구성

  • applicationset.yaml — list generator로 10개 Application 생성. element마다 chartPath/baseValues/valuesPath/syncWave.
  • *-values.yaml — 차트별 환경 오버레이 템플릿. dip-console이 $VAR(도메인/Keycloak/Infisical)를 렌더해 값 repo(dip/values-*)의 victoria-metrics/<chart>-values.yaml로 커밋한다.

값 적용 순서 (2단)

각 Application은 두 values 파일을 병합한다(나중 파일 우선).

  1. 베이스: 카탈로그 차트의 custom-values.yaml(또는 otelcol-events는 custom-values-events.yaml) — 큰 정적 설정(스크레이프/파이프라인/알림 규칙 등) 재사용.
  2. 환경 오버레이: $values/victoria-metrics/<chart>-values.yaml — 도메인/시크릿/issuer 등 환경 고유값만.

Helm 병합 규칙: map은 병합, 배열은 교체. 그래서 config.users(vmauth)·oidc(perses)·extraSecretMounts(alertmanager)처럼 배열을 바꿀 땐 오버레이에 해당 배열 전체를 재정의한다.

syncWave 순서

wave 차트
0 vmcluster, vlogs, kube-state-metrics, node-exporter, alertmanager
1 vmauth, vmagent, otelcol, otelcol-events, vmalert
2 perses

사전 준비 (배포 전, ArgoCD 밖)

  • dip-console: Keycloak(vm-access scope, perses/perses-vmauth client) · Infisical 시크릿($INFISICAL_*) · root-ca-cert 복사 · vmagent-relabel-configs 테넌트 ConfigMap.
  • 플랫폼 기본: StorageClass(longhorn), Ingress controller + cert-manager(root-ca-issuer), DNS.
  • GitOps: ArgoCD에 카탈로그 repo·값 repo 등록, 값 repo에 렌더된 victoria-metrics/*-values.yaml.
  • 대시보드: perses 대시보드 ConfigMap은 별도 경로 소스로 적용(아래).

perses 대시보드

manifests/helm/perses/0.21.0/files/perses-dashboards.yaml(정적 대시보드 ConfigMap)를 별도 ArgoCD Application(directory 소스)으로 배포하면 사이드카가 자동 로드한다. 데이터소스/시크릿(perses-provisioning.yaml의 datasource/secret)은 환경별이라 dip-console/Infisical로 관리한다.