# 현재 상태 · 미결 작업을 이어받을 때 여기서 시작한다. - 프로젝트 개요·설계 원칙 → [CLAUDE.md](CLAUDE.md) - SBOM·CVE 게이트 메커니즘 → [doc/sbom-pipeline.md](doc/sbom-pipeline.md) 최종 갱신 · 점검: 2026-08-19 --- ## 이 파일의 유지 규칙 **지금 시점의 상태와 다음에 할 일만 담는다.** 완료된 작업의 경위는 담지 않는다 — 커밋 메시지·PR 설명·`images//README.md` 가 이미 권위 있는 기록이고, 복사본을 두면 나중에 어느 쪽이 맞는지가 새 문제가 된다. 항목이 "다음에 할 일" 이 아니게 되면 **셋 중 하나로 내보내고 여기서 지운다.** | 성격 | 목적지 | |---|---| | 추적·논의·배정이 필요한 미결 | GitHub 이슈 — 여기엔 **한 줄 링크만** | | 재발 방지 교훈 | `.claude/pitfalls.md` · `.claude/image-authoring.md` · 해당 skill | | 단순 완료 기록 | 삭제 | 트리거는 시간이 아니라 **상태**다. 다만 놓친 것을 걷어내기 위해 **월 1회 점검**한다 — 30일 넘게 남아 있는 항목이 있으면 위 셋 중 하나로 보내고 위의 "점검" 날짜를 갱신한다. --- ## 열린 이슈 | # | 내용 | 상태 | |---|---|---| | [#42](https://github.com/paasup/dip-catalog/issues/42) | `applicationset` 참조 values 의 이미지 태그가 차단 CVE 태그(`20260803`)에 멈춰 있다 | dip-console 이 이 값을 어떻게 쓰는지 확인이 선행 | | [#38](https://github.com/paasup/dip-catalog/issues/38) | airflow fernet key 비결정 — #29 와 같은 구조, 체크섬에 없어 시한폭탄 | sync 반복 시 값이 바뀌는지 **실측 미완** | | [#37](https://github.com/paasup/dip-catalog/issues/37) | 게이트는 판정만 하고 제안하지 않는다 — 대응 레버 1번에 도구 지원 0 | 실증 완료, 구현 미착수 | | [#32](https://github.com/paasup/dip-catalog/issues/32) | adc 이미지 배포 검증 미완료 (게이트만 PASS) | apisix-ingress-controller 와 함께 배포 필요 | | [#19](https://github.com/paasup/dip-catalog/issues/19) | 카탈로그 CVE 트리아지 기준선 | 게이트 강제 전환의 선행 조건 | | [#7](https://github.com/paasup/dip-catalog/issues/7) | CVE 조치 파이프라인 (상위 추적 이슈) | 게이트 강제력 전환 결정이 여기 있다 | | [#3](https://github.com/paasup/dip-catalog/issues/3) · [#9](https://github.com/paasup/dip-catalog/issues/9) | SBOM 파이프라인 도입 · postgresql-ha 대체 | 본문상 완결로 보인다 — **닫을지 확인 필요** | ## 진행 중 없다. 열린 PR 0건. ## 아직 이슈로 만들지 않은 것 - **`imagePullPolicy: Always` 를 values 에 적용하지 않았다** — 결정은 [#31](https://github.com/paasup/dip-catalog/issues/31) 에 남기고 닫았지만 반영은 안 됐다. 대상 7곳, `apisix/2.16.0` 은 명시적 `IfNotPresent` 라 뒤집어야 한다. - **`argo-cd/7.8.11` 삭제 여부** — 카탈로그 차단 CVE 239건이 전부 이 동결 버전 몫이고, 지우면 게이트가 PASS 로 떨어진다. 직전 버전을 없애는 결정이라 PR #28 에서 보류했다. - **자체 빌드 이미지의 정식 반영 경로** — argocd 는 로컬에서 빌드·push 했다. CI `build-image.yml`(`workflow_dispatch`)로 다시 태울지, 로컬 push 로 끝낼지. - **레포 분리 시점의 두 작업** — ① `catalog.env` 의 카탈로그 매핑(`CHART_DIRS`·`TAG_STYLE`· `TAG_BLOCK`)을 카탈로그 자산으로 떼어내고 `catalog-tag-update.yml` 로 반영, ② 게이트를 composite action 으로(`workflow_call` 아님 — 스캔과 같은 job 에서 `$OUT_DIR` 공유가 필요하다). 결합점 전체는 `.claude/image-authoring.md` "레포 분리 후 무엇이 끊기는가". - **워크플로 결함 3건** — `cve-edge-post.yml` 이 게이트를 안 부른다(판정기 두 벌) · 인증 스텝이 `sbom.yml` 과 diff 0 으로 복붙 · `scripts/pipeline/Dockerfile` 을 빌드하는 워크플로가 없다(손으로 push). - **`doc/define-chart-resources.md` 에 cloudnative-pg·cnpg-cluster·etcd 전용 절이 없다** — 리소스 프로파일 자체는 각 차트의 `dip-resources-quotas.yaml` 에 있으므로 누락은 아니다. 이 문서만 보는 사람이 세 차트를 못 찾는 것뿐이라 급하지 않다. ## 알아둘 현재 상태 - **게이트는 warn-only 다.** `sbom.yml` 이 `cve-gate.py --warn-only` 로 실행해 실패해도 워크플로·PR 을 막지 않는다. 강제 전환은 #19 → #7 순으로 간다. - **CI 는 PR 을 자동 생성할 수 없다.** 조직 정책상 `GITHUB_TOKEN` 으로 PR 을 못 연다 (실측 확정). 워크플로는 브랜치 push + Job Summary 의 compare 링크까지만 자동화한다.