diff --git a/MEMORY.md b/MEMORY.md index cc7f517..1aaa8c9 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -70,11 +70,18 @@ Dockerfile 은 그대로다(모듈 목록·패키지 목록을 전부 값으로 ### 별건으로 발견한 airflow 문제 2건 - **매니페스트가 비결정적이다.** `webserver-secret-key-secret.yaml` 이 `randAlphaNum` 으로 - 매 렌더마다 새 값을 만들어, repo-server 의 매니페스트 캐시가 날아갈 때마다(ArgoCD 재시작· - hard refresh) webserver 가 롤링되고 웹 세션이 끊긴다. reconcile 만으로는 재렌더가 일어나지 - 않아 상시 루프는 아니다(4시간 19분 동안 롤아웃 0회로 확인). `webserverSecretKey` 또는 - `webserverSecretKeySecretName` 을 지정하면 해소된다. 카탈로그 기본값에 없어 모든 테넌트가 - 해당된다. + 매 렌더마다 새 값을 만들어, repo-server 가 매니페스트를 다시 렌더할 때마다 Secret 과 + Deployment 의 체크섬 애노테이션이 함께 바뀌어 webserver 가 롤링되고 웹 세션이 끊긴다. + 캐시된 매니페스트를 그대로 쓰는 reconcile 만으로는 일어나지 않지만(4시간 19분 동안 롤아웃 + 0회), **일반 refresh 로도 일어난다**(hard refresh 나 ArgoCD 재시작에 한정되지 않는다 — + refresh 직후 새 ReplicaSet 생성을 실측). 카탈로그 기본값에 없어 모든 테넌트가 해당된다. + + 조치 방향은 정해졌고 **아직 커밋 전이다**: `dip-values.yaml` 에 + `webserverSecretKey: "$WEBSERVER_SECRET_KEY"` 를 두고, dip-console-api 의 + `catalog_airflow.go` `DeployPreInstall` 이 배포 시점에 난수로 치환한다. 차트 안에서는 못 + 고친다 — ArgoCD repo-server 는 클러스터 접근 없이 렌더하므로 `lookup` 이 항상 빈 값이고 + (실측), 릴리스명 기반 결정적 파생은 공개 정보라 세션 서명 키로 부적합하다. 이미 배포된 + 테넌트는 저장된 values 에 placeholder 가 없어 **재배포해야 적용된다**. - **migrations job 이 5분마다 재실행된다.** `migrateDatabaseJob.useHelmHooks: false` 로 hook 이 아닌 추적 리소스가 됐는데 `ttlSecondsAfterFinished: 300` 이 그대로라, TTL 삭제 → ArgoCD selfHeal 재생성이 반복된다. `ttlSecondsAfterFinished` 를 끄거나 hook 으로 되돌린다. @@ -218,9 +225,11 @@ SUSE BCI 고정 결정을 그대로 따랐고(ADR 자체는 미이관), 2026-08- 번호·후보 비교표)를 압축한 로컬 stub ADR 작성을 검토한다. **`doc/define-chart-resources.md` 에 신규 차트 3종(`cloudnative-pg`, `cnpg-cluster`, -`etcd`) 의 Small/Medium/Large 리소스 프로파일이 없다.** CLAUDE.md 의 "신규 차트 추가" -규칙(리소스 프로파일 필수)을 아직 못 지켰다 — custom-values.yaml 의 기존 -requests/limits/storage 값을 근거로 표를 추가하는 별도 작업으로 처리한다. +`etcd`) 의 전용 절이 없다 — 다만 리소스 프로파일 자체는 누락이 아니다.** 세 차트 모두 +`dip-resources-quotas.yaml` 에 small/medium/large 티어를 갖고 있고(차트 도입 커밋 6878b61 에 +함께 들어갔다), 다른 차트 절이 cnpg-cluster 를 외부 DB 로 쓸 때 그 파일을 가리킨다. 그래서 +CLAUDE.md 의 "신규 차트 추가" 규칙은 지켜진 상태다. 남은 건 이 문서만 보는 사람이 세 차트를 +찾지 못한다는 것뿐이라, 급하지 않다. **`SBOM_PIPELINE_IMAGE` 재빌드가 보류돼 있다.** 이 마이그레이션으로 빌드 컨텍스트 경로가 `doc/scripts/Dockerfile` → `scripts/pipeline/Dockerfile` 로 바뀌었다. Dockerfile 내용