Files
wbsong111 1084713614 airflow applicationset: dip-values / dip-questions 추가
flowise/6.0.0 의 dip-values.yaml + dip-questions.yaml 스키마를 airflow 에 적용했다.
doc1 은 cnpg-cluster(airflow-db), doc2 는 airflow 본체다.

dip-values.yaml
- bootstrap.initdb 의 database/owner 는 airflow-db-values.yaml 과 맞춘 airflow.
- databases[] 도 airflow/airflow. 차트 기본값인 appdb/appuser 를 쓰면 appuser
  롤이 생성되지 않아 Database CR reconcile 이 실패한다.
- bootstrap.initdb 에는 ensure/reclaimPolicy 를 넣지 않았다. cnpg-cluster 의
  cluster.yaml 이 읽지 않는 databases[] 전용 키다.
- postgresql.enabled: false. 내장 bitnami 대신 syncWave 0 의 cnpg 를 쓴다.
- metadataConnection.host 는 "{{ .Name }}-airflow-db-rw". dip 배포는 cnpg
  릴리스명에 테넌트 접두사를 붙여 나간다(관측: instance=demo01-air-airflow-db).
  flowise 의 externalPostgresql.host 와 같은 규칙이다.

dip-questions.yaml
- git-sync 는 GIT_SYNC_*/GITSYNC_* 네 키를 모두 선언한다. 차트가 네 개를 각각
  secretKeyRef 로 잡아서 하나라도 없으면 파드가 기동되지 않는다.
- connection 기본값 호스트는 $CATALOG_NAME-airflow-db-rw.$CATALOG_NAME.
  차트가 data.metadataSecretName 의 connection 키를
  AIRFLOW__DATABASE__SQL_ALCHEMY_CONN 에 그대로 주입하므로 이 값이 유일한 실효 값이다.

두 파일의 토큰 형식 차이는 의도한 것이다 — dip-questions 는 $CATALOG_NAME,
dip-values 는 {{ .Name }} 가 각 파일의 기존 관례다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 15:38:33 +09:00

58 lines
2.1 KiB
YAML

questions:
# --- DAG git-sync ---
- variable: "$dags.gitSync.repo"
label: Git Repo URL
type: string
required: true
default: "https://git-url/org/repo.git"
- variable: infisical.GIT_SYNC_USERNAME
label: Git username
type: string
required: true
default: ""
- variable: infisical.GIT_SYNC_PASSWORD
label: Git password
type: password
required: true
default: ""
# git-sync v4 는 GITSYNC_* 를, 차트는 두 이름 모두를 secretKeyRef 로 참조한다.
# 네 키가 모두 없으면 scheduler/webserver 파드가 기동되지 않는다.
- variable: infisical.GITSYNC_USERNAME
label: Git username
type: hidden
default: "${infisical.GIT_SYNC_USERNAME}"
- variable: infisical.GITSYNC_PASSWORD
label: Git password
type: hidden
default: "${infisical.GIT_SYNC_PASSWORD}"
# --- Web admin ---
- variable: "$webserver.defaultUser.password"
label: Web admin password
type: password
required: true
default: ""
# --- cnpg-cluster(airflow-db) 자격증명 ---
# bootstrap.initdb.secretName 이 참조하는 시크릿. cnpg 는 username/password 키를 요구한다
# (kubernetes.io/basic-auth). 값은 doc1 의 bootstrap.initdb.owner 와 일치해야 한다.
- variable: infisical.username
label: DB Username
type: hidden
default: "airflow"
- variable: infisical.password
label: DB Password
type: hidden
default: ""
# data.metadataSecretName 이 참조하는 같은 시크릿의 connection 키 — 전체 DSN.
# 차트는 이 문자열을 AIRFLOW__DATABASE__SQL_ALCHEMY_CONN 에 그대로 주입한다.
# dip-values.yaml 의 data.metadataConnection 은 무시되므로 여기가 유일한 실효 값이다.
#
# 호스트에 $CATALOG_NAME 접두사가 반드시 있어야 한다. dip 배포는 cnpg 릴리스명에
# 테넌트 접두사를 붙여 나가므로(관측: instance=demo01-air-airflow-db) 실제 서비스는
# airflow-db-rw 가 아니라 $CATALOG_NAME-airflow-db-rw 다.
- variable: infisical.connection
label: postgres connection
type: hidden
default: "postgresql://airflow:${infisical.password}@$CATALOG_NAME-airflow-db-rw.$CATALOG_NAME:5432/airflow?sslmode=disable"