Files
service-catalog/manifests/applicationset/victoria-metrics/1.0.0/applicationset.yaml
T
wbsong111 d1f7c77201 Adjust VM ApplicationSet for test env + per-URL tenant routing rationale
- applicationset: ns argocd→platform, repoURL service-catalog/tenant-catalog @master
- vmagent custom-values/CUSTOM-README: per-URL 채택 근거 정정(인라인 가능하나 보안·격리 위해 per-URL)
- architecture doc: §5.1 테넌트 라우팅 결정 기록 + monitoring 배포 테스트 문서

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

109 lines
4.5 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: victoria-metrics
namespace: platform
spec:
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- list:
# 각 element: 차트 경로 + 베이스값(카탈로그 custom-values 재사용) + 환경 오버레이(값 repo) + syncWave
elements:
# ── syncWave 0: 저장소·무의존 ────────────────────────────────────
- name: vmcluster
chartPath: manifests/helm/victoria-metrics-cluster/0.43.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/vmcluster-values.yaml
syncWave: "0"
- name: vlogs
chartPath: manifests/helm/victoria-logs-cluster/0.1.5
baseValues: custom-values.yaml
valuesPath: victoria-metrics/vlogs-values.yaml
syncWave: "0"
- name: kube-state-metrics
chartPath: manifests/helm/kube-state-metrics/7.4.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/kube-state-metrics-values.yaml
syncWave: "0"
- name: node-exporter
chartPath: manifests/helm/prometheus-node-exporter/4.55.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/node-exporter-values.yaml
syncWave: "0"
- name: alertmanager
chartPath: manifests/helm/alertmanager/1.37.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/alertmanager-values.yaml
syncWave: "0"
# ── syncWave 1: 저장소·alertmanager 의존 ─────────────────────────
- name: vmauth
chartPath: manifests/helm/victoria-metrics-auth/0.33.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/vmauth-values.yaml
syncWave: "1"
- name: vmagent
chartPath: manifests/helm/victoria-metrics-agent/0.40.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/vmagent-values.yaml
syncWave: "1"
- name: otelcol
chartPath: manifests/helm/opentelemetry-collector/0.156.2
baseValues: custom-values.yaml
valuesPath: victoria-metrics/otelcol-values.yaml
syncWave: "1"
- name: otelcol-events
chartPath: manifests/helm/opentelemetry-collector/0.156.2
baseValues: custom-values-events.yaml
valuesPath: victoria-metrics/otelcol-events-values.yaml
syncWave: "1"
- name: vmalert
chartPath: manifests/helm/victoria-metrics-alert/0.41.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/vmalert-values.yaml
syncWave: "1"
# ── syncWave 2: vmauth 의존 ──────────────────────────────────────
- name: perses
chartPath: manifests/helm/perses/0.21.0
baseValues: custom-values.yaml
valuesPath: victoria-metrics/perses-values.yaml
syncWave: "2"
template:
metadata:
name: "{{ .name }}"
namespace: platform
annotations:
argocd.argoproj.io/sync-wave: "{{ .syncWave }}"
spec:
project: default
sources:
# Source 1: 카탈로그 repo (Helm 차트)
- repoURL: https://gitea.example.org/dip/service-catalog
targetRevision: master
path: "{{ .chartPath }}"
helm:
releaseName: "{{ .name }}"
valueFiles:
- "{{ .baseValues }}" # 카탈로그 차트의 정적 베이스값(custom-values)
- $values/{{ .valuesPath }} # Source 2의 환경 오버레이 (나중 = 우선)
# Source 2: 값(values) repo — dip-console이 렌더한 환경별 값
- repoURL: https://gitea.example.org/dip/tenant-catalog
targetRevision: master
ref: values
destination:
server: https://kubernetes.default.svc
namespace: monitoring
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
retry:
limit: 5
backoff:
duration: 10s
factor: 2
maxDuration: 3m