Files
obsidian/infra/platform/helm-charts.md

5.1 KiB

title, updated, tags
title updated tags
Helm 차트 관리 체계 2026-04-13
infra
k3s
helm
argocd
gitops

개요

K3s 클러스터의 모든 서비스를 Helm으로 관리. 자체 차트는 Gitea에 호스팅하고 ArgoCD로 GitOps 배포.

차트 저장소

항목
Git 레포 gitea.inouter.com/kaffa/helm-charts (private)
Helm 레지스트리 gitea.inouter.com/api/packages/kaffa/helm
ArgoCD 레포 시크릿 repo-helm-charts (argocd 네임스페이스)

BunnyCDN 캐시 바이패스

iron-git Pull Zone (ID 5584382)에 Edge Rule 적용:

  • 패턴: */api/packages/*
  • ActionType: 3 (OverrideCacheTime), 값: 0
  • 차트 업로드 후 index.yaml 캐시 문제 방지

자체 차트 구조

helm-charts/
├── charts/
│   ├── app/          # 범용 차트 (v0.4.0) — 단순 서비스용
│   ├── kroki/        # 전용 차트 — Kroki + Mermaid
│   ├── searxng/      # 전용 차트 — SearXNG + UA 패치 + TLS proxy CA
│   ├── outline/      # 전용 차트 — Outline Wiki + Redis
│   └── openmemory/   # 전용 차트 — MCP + UI + Qdrant
└── values/           # app 차트용 서비스별 values
    ├── juiceshop.yaml
    ├── cfb-manager.yaml
    ├── bunnycdn-mcp.yaml
    ├── smtp-relay.yaml
    ├── namecheap-api.yaml
    ├── vultr-api.yaml
    ├── pgcat.yaml        # sidecar(monitor) 포함
    ├── proxysql.yaml     # Galera 설정 포함
    ├── nas-proxy.yaml    # external service (Synology NAS)
    └── vault-mcp.yaml   # external service (Vault) + extraIngressRoutes

app 차트 기능 (v0.4.0)

  • Deployment + Service + IngressRoute 기본 구성
  • sidecars — 사이드카 컨테이너 지원
  • configMaps — multiline ConfigMap 생성
  • secrets — Secret 생성
  • external — selector 없는 Service + EndpointSlice (외부 서비스 프록시)
  • extraIngressRoutes — 복수 도메인 IngressRoute
  • probes — liveness/readiness probe

전체 Helm 릴리스 목록

공식/외부 차트 (20개)

릴리스 네임스페이스 차트
apisix apisix apisix
apisix-ingress-controller apisix apisix-ingress-controller
argocd argocd argo-cd
cert-manager cert-manager cert-manager
external-secrets external-secrets external-secrets
gitea gitea gitea
longhorn longhorn-system longhorn
metallb metallb-system metallb
n8n n8n n8n
nfs-provisioner nfs-provisioner nfs-subdir-external-provisioner
nocodb tools zekker6/nocodb
portainer portainer portainer
reflector kube-system reflector
safeline safeline safeline
sftpgo sftpgo sftpgo
sshpiper sshpiper sshpiper
synology-iscsi democratic-csi democratic-csi
teleport-cluster teleport teleport-cluster
traefik kube-system traefik
vector logging vector
vlogs logging victoria-logs-single
vm-stack monitoring victoria-metrics-k8s-stack

자체 app 차트 (10개, ArgoCD 관리)

릴리스 네임스페이스 비고
juiceshop juiceshop
cfb-manager tools SSH key 마운트
bunnycdn-mcp mcp IngressRoute: bunny.inouter.com
smtp-relay mail Mailgun relay
namecheap-api api
vultr-api api
pgcat db monitor sidecar 포함
proxysql db Galera hostgroup 설정
nas-proxy tools external → 192.168.9.100:5000
vault-mcp tools external → 10.253.101.58, hcv.inouter.com + vault-mcp.inouter.com

전용 차트 (4개, ArgoCD 관리)

릴리스 네임스페이스 구성
kroki kroki kroki + mermaid sidecar
searxng searxng UA 패치, TLS proxy CA, Google proxy
outline outline outline + redis + PVC + IngressRoute
openmemory openmemory MCP + UI + Qdrant + PVC 2개

Operator 관리 (ArgoCD/Helm 외)

서비스 네임스페이스 관리 방식
rabbitmq-cluster-operator rabbitmq-system 직접 매니페스트
rabbitmq-server mq RabbitmqCluster CRD → Operator

ArgoCD 앱 목록

14개 Application, 모두 automated + prune + selfHeal:

juiceshop, cfb-manager, bunnycdn-mcp, smtp-relay, namecheap-api, vultr-api,
pgcat, proxysql, nas-proxy, vault-mcp, kroki, searxng, outline, openmemory

주의사항

  • EndpointSlice는 ArgoCD 제외 대상discovery.k8s.io 그룹이 argocd-cm에서 제외됨. external service의 EndpointSlice는 수동 관리 필요
  • ArgoCD 앱 소스는 Gitea helm-charts 레포의 charts/ 경로 참조

배포 워크플로우

1. charts/ 또는 values/ 수정
2. helm template 로 렌더링 확인
3. git push → Gitea helm-charts
4. ArgoCD 자동 sync (또는 hard refresh)
5. 동작 확인

관련 문서