자체 빌드 이미지 레포명을 security-images에서 hardened-containers로 정정한다

실제 레포명은 hardened-containers인데 이관 커밋 이후 문서·워크플로·차트 주석에
잘못된 이름 security-images가 남아 있었다. 텍스트 참조 전체를 정정하고
doc/migrations/의 이관 핸드오프 문서도 파일명까지 리네임했다. env var/secret
이름(SECURITY_IMAGES_REPO, SECURITY_IMAGES_DISPATCH_TOKEN)은 GitHub Secret
재등록이 필요한 별도 운영 작업이라 이번 텍스트 정정 범위에서 제외했다.

덧붙여 scripts/build/patch-catalog-tag.py의 docstring이 삭제된 build-image.yml을
호출자로 여전히 가리키고 있던 것도 실제 호출 경로(check-rebuild-needed.py /
apply-published-tags.py → catalog-tag-update.yml)로 고쳤다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
wbsong111
2026-08-26 08:16:37 +09:00
parent 7746570ec0
commit 9e5b6633db
24 changed files with 86 additions and 85 deletions
+3 -3
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env python3
"""apply-published-tags.py — security-images 의 `published.json` 을 읽어 카탈로그
"""apply-published-tags.py — hardened-containers 의 `published.json` 을 읽어 카탈로그
values 의 자체 빌드 이미지 태그를 갱신한다.
카탈로그와 security-images(자체 빌드 이미지 레포)의 계약은 `published.json` 파일
카탈로그와 hardened-containers(자체 빌드 이미지 레포)의 계약은 `published.json` 파일
스키마 하나뿐이다 — 그 레포는 게이트 PASS + push 가 실제로 일어났을 때만 이 파일을
갱신한다. 이 스크립트는 그 파일과 `catalog/image-map/<image>.env`(어느 차트의 어느
필드를 갱신할지)를 대조해 `custom-values.yaml`/`dip-values.yaml` 을 패치한다.
@@ -105,7 +105,7 @@ def apply_for_image(image, new_ref, dry_run):
def main():
ap = argparse.ArgumentParser(description=__doc__)
ap.add_argument("--published", required=True, metavar="FILE",
help="security-images 의 published.json (로컬 경로 — 원격 조회는 호출자가 한다)")
help="hardened-containers 의 published.json (로컬 경로 — 원격 조회는 호출자가 한다)")
ap.add_argument("--image", default="", help="이 이미지만 반영 (기본: published.json 의 전체)")
ap.add_argument("--dry-run", action="store_true", help="무엇이 바뀔지 보고만 하고 파일은 건드리지 않는다")
ap.add_argument("--json-out", metavar="FILE", help="변경 목록을 JSON 으로 이 파일에 쓴다")
+5 -5
View File
@@ -38,10 +38,10 @@
레포 분리 이후 — 이 스크립트는 절반이다
----------------------------------------
커스텀 이미지는 security-images(별도 레포)로 나갔다. "무엇을 배포 중인가"는 이 카탈로그가
알고, "그 이미지를 어떻게 만드는가"(핀 판단·재빌드)는 security-images 가 안다. 이 스크립트는
커스텀 이미지는 hardened-containers(별도 레포)로 나갔다. "무엇을 배포 중인가"는 이 카탈로그가
알고, "그 이미지를 어떻게 만드는가"(핀 판단·재빌드)는 hardened-containers 가 안다. 이 스크립트는
**탐지만** 한다 — 재빌드가 필요하다고 판단되면 `self-build-drift-check.yml` 이
security-images 의 `build-image.yml` 을 `workflow_dispatch` 로 부른다. 핀을 무엇으로
hardened-containers 의 `build-image.yml` 을 `workflow_dispatch` 로 부른다. 핀을 무엇으로
올릴지는 그 레포의 `suggest-go-upgrades.py --apply` 가 한다.
사용
@@ -201,7 +201,7 @@ def render_md(results):
out.append(f"배포 중인 자체 빌드 이미지 {len(ok)}개에 차단 CVE 가 없다.")
if rebuild:
out += [f"**{len(rebuild)}개 이미지가 재빌드 대상이다.** 차단 CVE 에 수정 버전이 있다 "
"security-images 레포에서 재빌드하면 해소될 가능성이 높다. 핀 조정이 "
"hardened-containers 레포에서 재빌드하면 해소될 가능성이 높다. 핀 조정이 "
"필요한지는 그 레포의 `suggest-go-upgrades.py` 가 판단한다.", "",
"| 이미지 | 현재 ref | 차단 | 수정 가능 | 패키지 |",
"|---|---|---:|---:|---|"]
@@ -228,7 +228,7 @@ def render_md(results):
out += ["", "</details>"]
out += ["", "> 판정 기준은 게이트와 같다 — 실효 등급 `max(벤더, NVD)` · 승인 예외 적용 · "
"기본 HIGH 이상. 재빌드는 security-images 레포의 `build-image.yml` 을 "
"기본 HIGH 이상. 재빌드는 hardened-containers 레포의 `build-image.yml` 을 "
"`workflow_dispatch` 로 부른다.", ""]
return "\n".join(out)
+2 -1
View File
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
"""카탈로그 values 파일의 자체 빌드 이미지 태그를 갱신한다.
build-image.yml 이 호출한다. 카탈로그가 실제로 쓰는 두 표기 스타일을 지원한다:
check-rebuild-needed.py / apply-published-tags.py 가 `catalog-tag-update.yml` 경유로
호출한다. 카탈로그가 실제로 쓰는 두 표기 스타일을 지원한다:
- imageName: 단일 필드 문자열 (cnpg-cluster 유형 — `imageName: "repo:tag"`)
- split: image:/initImage: 등 블록 아래 registry/repository/tag 세 필드로 분리
(cloudnative-pg, etcd 유형)