2026.03.20 - [프로젝트] - OpenCSP (1) 프로젝트 내용 정리
OpenCSP (1) 프로젝트 내용 정리
진행 중인 오픈소스 프로젝트 OpenCSP의 깃허브 문서가 영어로만 있어서 한글로도 정리해보고 싶어졌다. https://github.com/h001-lab/OpenCSP-corehttps://github.com/h001-lab/OpenCSP-moduleshttps://github.com/h001-lab/OpenCSP-
miiml.tistory.com
위 프로젝트 관련으로 k3s에 lago를 올리면서 삽질했던 내용을 정리해보려고 한다.
프로비저닝은 여러 방법이 있지만 프로젝트에선 flux를 사용해서 관리하니까 kustomization.yaml, lago에 필요한 helm values.yaml이 필요하다.
일단 차트의 최신 버전은 아래처럼 helm으로 찾아보면 나오고
miiml@miiml ~ % helm search repo lago
NAME CHART VERSION APP VERSION DESCRIPTION
lago/lago 1.27.1 1.32.4 the Lago open source billing app
lago/lago-config 0.4.0 A Helm chart for Kubernetes
lago/lago-data 0.4.0 A Helm chart for Kubernetes
lago/lago-data-api 0.4.0 0.1.0 A Helm chart for Kubernetes
lago/lago-data-config 0.4.0 A Helm chart for Kubernetes
lago/lago-data-forecasted-usage 0.4.0 0.1.0 A Helm chart for Kubernetes
lago/lago-data-worker 0.4.0 0.1.0 A Helm chart for Kubernetes
lago/lago-events-processor-worker 0.4.0 v1.41.2 A Helm chart for Kubernetes
lago/lago-front 0.4.0 v1.41.0 A Helm chart for Kubernetes
lago/lago-mcp-server 0.4.0 0.1.0 A Helm chart for Kubernetes
lago/lago-pdf 0.4.0 8 A Helm chart for the Lago PDF stack (Gotenberg ...
lago/lago-rails 0.4.0 v1.41.2 A Helm chart for Kubernetes
lago/lago-staging 0.4.0 A Helm chart for Kubernetes
release는 아래처럼 구성했는데, 코드 길어서 접어둠
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: lago
namespace: lago
spec:
interval: 30m
install:
remediation:
retries: 3
upgrade:
remediation:
retries: 3
remediateLastFailure: true
chart:
spec:
chart: lago
version: "1.27.1"
sourceRef:
kind: HelmRepository
name: lago
namespace: flux-system
dependsOn:
- name: cert-manager
namespace: flux-system
- name: lago-postgresql
namespace: lago
- name: lago-redis
namespace: lago
valuesFrom:
- kind: Secret
name: lago-chart-values
valuesKey: values.yaml
values:
apiUrl: "https://lago-api.domain.com"
frontUrl: "https://lago.domain.com
front:
service:
type: ClusterIP
port: 80
ingress:
enabled: false
resources:
requests:
cpu: 50m
memory: 64Mi
api:
service:
type: ClusterIP
port: 3000
ingress:
enabled: false
resources:
requests:
cpu: 100m
memory: 256Mi
worker:
resources:
requests:
cpu: 50m
memory: 128Mi
clockWorker:
resources:
requests:
cpu: 50m
memory: 128Mi
billingWorker:
resources:
requests:
cpu: 50m
memory: 128Mi
paymentWorker:
resources:
requests:
cpu: 50m
memory: 128Mi
webhookWorker:
resources:
requests:
cpu: 50m
memory: 128Mi
eventsWorker:
resources:
requests:
cpu: 50m
memory: 128Mi
pdfWorker:
resources:
requests:
cpu: 50m
memory: 128Mi
pdf:
resources:
requests:
cpu: 50m
memory: 128Mi
postgresql:
enabled: false
redis:
enabled: false
여기서 제일 많이 삽질했던건 postgres, redis 구성하고 lago랑 연결하는 부분이었다.
lago value를 찾아보면 postgresql.enabled: true 부분이 있어서 내부에서 서브차트 같은걸로 파드를 만들어 줄 거라고 생각했는데
서브차트는 없었고 저거 활성화해도 계속 DB 마이그레이션 Job이 실패만 반복한다 (연동 실패)
알고보니 구성을 별도로해줘야하고 공식 github의 Requirements 부분 보면 bitnami 차트를 사용한다고 되어있음
그래서 아래처럼 직접 정의해줬고
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: lago-postgresql
namespace: lago
spec:
interval: 30m
install:
remediation:
retries: 3
upgrade:
remediation:
retries: 3
chart:
spec:
chart: postgresql
version: "18.5.6"
sourceRef:
kind: HelmRepository
name: bitnami
namespace: flux-system
valuesFrom:
- kind: Secret
name: lago-chart-values
valuesKey: postgresql-values.yaml
values:
primary:
persistence:
enabled: true
size: 8Gi
연동에 필요한 정보들은 크레덴셜 값이라 + 프로젝트 특성상 Public 이어서 SOPS로 암호화해줬음 (이거는 https://miiml.tistory.com/5 여기에 정리해둠)
redis 도 같은 방식으로 구성하면 되고, 연동이 완료되면 아래처럼 여러 파드들이 뜨는걸 볼 수 있다.

front 접근하면 아래처럼 UI 나오고 Sign up해서 진행하면 됨

자세한 values.yaml 들은 아래 깃허브 링크 참조
https://github.com/h001-lab/OpenCSP-core/tree/main/cluster/infrastructure/lago
근데 반전

내 프로젝트에 필요한 기능들이 프리미엄 기능으로 다 막혀있다
| OpenCSP Console로 VM 생성해보기 (0) | 2026.03.28 |
|---|---|
| API 요청으로 PVE VM 생성하기 (0) | 2026.03.25 |
| API 요청으로 Terraform CR 생성하기 (0) | 2026.03.23 |
| k3s에 zitadel 올려보기 (0) | 2026.03.21 |
| k3s에 Teleport 올리고 리소스 연결하기 (0) | 2026.03.20 |