feat(cli): 0.20.0 — dev=로컬 kind 기본(project deploy 자동 생성), promote=관리형(build+push)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -269,9 +269,19 @@ def bind_env(alias: str, conn: dict) -> dict:
|
||||
|
||||
# ── 워크로드: 빌드 + kind load + Deployment/Service/Ingress ─────────────────────
|
||||
def _effective_image(image: str) -> str:
|
||||
"""podman 은 레지스트리(도메인) 미지정 이미지에 'localhost/' 를 붙여 저장한다 → kind load·Deployment 이름 불일치.
|
||||
podman 이고 첫 컴포넌트가 레지스트리(도메인 '.'·포트 ':' 포함 또는 'localhost')가 아니면 localhost/ 를 붙여 일치시킨다.
|
||||
docker 는 그대로(무영향). 레지스트리 지정 이미지(gitea.yakenator.io/…)는 두 런타임 모두 그대로."""
|
||||
"""로컬 dev 는 레지스트리에 push 하지 않고 kind-load 하므로 이미지명은 '유효한 로컬 태그'면 된다.
|
||||
- repo(레지스트리/경로)는 소문자여야 빌드된다(docker/podman 공통) → 미설정 CHANGE_ME_GITEA_USER 같은
|
||||
대문자 placeholder 도 로컬 빌드되게 repo 만 소문자화(태그는 대소문자 보존).
|
||||
- podman 은 레지스트리 미지정 이미지에 'localhost/' 를 붙여 저장 → kind load·Deployment 이름 일치를 위해 맞춘다
|
||||
(docker 무영향). 레지스트리 지정 이미지(gitea.yakenator.io/…)는 그대로."""
|
||||
# 1) repo 소문자화(마지막 '/' 뒤에 ':' 가 있으면 그게 태그 구분자 → 태그 보존).
|
||||
slash = image.rfind("/")
|
||||
if ":" in image[slash + 1:]:
|
||||
repo, tag = image.rsplit(":", 1)
|
||||
image = repo.lower() + ":" + tag
|
||||
else:
|
||||
image = image.lower()
|
||||
# 2) podman localhost/ 보정.
|
||||
if RUNTIME != "podman":
|
||||
return image
|
||||
first = image.split("/", 1)[0]
|
||||
|
||||
Reference in New Issue
Block a user