catalog: resources: {} ingress: enabled: true ingressClassName: "apisix" host: "lakekeeper.example.org" path: "/.*" annotations: cert-manager.io/cluster-issuer: root-ca-issuer cert-manager.io/duration: 8760h cert-manager.io/renew-before: 720h k8s.apisix.apache.org/use-regex: "true" k8s.apisix.apache.org/ssl-redirect: "true" tls: enabled: true secretName: "lakekeeper-tls" # keycloak 사설 인증서 사용 시 설정 extraEnv: - name: SSL_CERT_FILE value: "/tmp/ca.crt" extraVolumeMounts: - name: keycloak-tls mountPath: "/tmp/ca.crt" subPath: ca.crt readOnly: true extraVolumes: - name: keycloak-tls secret: secretName: root-ca-secret # lakekeeper DB — 내장 postgres 서브차트(groundhog2k/postgres) 대신 # cnpg-cluster(전용 인스턴스)를 외부 DB로 사용한다. # 사전 배포: helm install lakekeeper-db manifests/helm/cnpg-cluster/1.0.0 \ # -f manifests/helm/cnpg-cluster/1.0.0/custom-values.yaml \ # -f manifests/applicationset/lakekeeper/0.11.0/lakekeeper-db-values.yaml -n postgresql: enabled: false externalDatabase: type: postgres # cnpg-cluster의 -ro 서비스는 replica 파드에만 연결되는데, 권장 배포 기준인 # instances: 1(small 티어)에서는 replica가 없어 -ro가 엔드포인트 0개인 서비스가 # 된다 — lakekeeper의 read-connection이 영구히 재시도만 하며 멈춘다(배포 테스트로 실측). # -r은 인스턴스 수와 무관하게 항상 primary를 포함해 라운드로빈하므로 이 값을 쓴다. # instances를 3 이상으로 올려 실제 replica를 운용하는 경우에도 -r로 충분하다. host_read: "lakekeeper-db-r" host_write: "lakekeeper-db-rw" port: 5432 database: lakekeeper user: lakekeeper password: lakekeeper # OIDC 인증 auth: oauth2: providerUri: "https://keycloak.example.org/realms/paasup" audience: "lakekeeper" ui: clientID: "lakekeeper" scopes: "lakekeeper" authz: backend: "openfga" openfga: apiKey: "your-api-key" # openfga.authn.preshared.key에 정의된 값가 동일하게 설정. internalOpenFGA: true openfga: resources: {} # 테스트 환경 비활성화, authn을 oidc 타입으로 실행하기 위해서는 playground에서는 불가. playground: enabled: false authn: method: "preshared" preshared: # openssl rand -base64 32 keys: ["your-api-key"] postgresql: primary: resources: {} persistence: storageClass: "" size: 8Gi