refactor(cli): 엔진 전역화(.yakcloud 다운로드 소스) + 스캐폴드 최소화 + shared 기본 — 0.18.0
엔진(deploy/ctl/dev.py)은 install.sh 가 ~/.config/yakcloud/lib 로 설치, CLI 가 전역 실행. project init 스캐폴드 = 앱+매니페스트+얇은 .gitea CI 만. 데이터소스 기본 shared. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -17,22 +17,19 @@ environments:
|
||||
val: { cluster: my-val-cluster } # promote --to val
|
||||
prod: { cluster: my-prod-cluster, domains: [] } # promote --to prod (domains 예: [app.example.com])
|
||||
|
||||
# 필요한 데이터 소스(논리 이름). 없으면 [] 로 둬도 됨.
|
||||
# type ∈ postgresql·mysql·mariadb·mongodb·redis·minio·rabbitmq·solr·oracle, plan ∈ small·medium·large
|
||||
# ⚠ 이름이 클러스터의 기존 READY 소스와 일치하면 스킵·바인딩.
|
||||
# - 인클러스터(local) 소스: 배포 토큰에 생성 권한이 있으면 자동 프로비저닝(없으면 405 → 콘솔에서 먼저 만들고 이 name 사용).
|
||||
# - 공유 외부(shared) 소스(소용량 S 클러스터용): 아래처럼 mode: shared 로 선언(또는 'yakcloud source add <name> mongodb --shared').
|
||||
# 배포 시 백엔드가 클러스터별 격리 DB/계정을 민팅(인클러스터 StatefulSet 불필요). 콘솔/API 등록도 가능. 예:
|
||||
# - { name: appdb, type: mongodb, mode: shared }
|
||||
# ('yakcloud project check' 로 미리 확인·리스팅)
|
||||
# 필요한 데이터 소스(논리 이름). 없으면 [] 로. 기본 = **공유(shared)** — 이미 있는 공유 소스에 연결 + 격리 DB 민팅.
|
||||
# type ∈ postgresql·mysql·mariadb·mongodb·redis·minio·rabbitmq·solr·oracle
|
||||
# - 기본(shared, mode 생략): 공유 외부 서버에 클러스터/프로젝트별 **격리 DB·계정** 민팅(인클러스터 리소스 생성 없음).
|
||||
# - 인클러스터(옵션): 정말 전용 인스턴스가 필요할 때만 `mode: local, plan: small|medium|large`.
|
||||
# - 이름이 클러스터의 기존 READY 소스와 일치하면 스킵·바인딩. ('yakcloud project check' 로 미리 확인)
|
||||
requires:
|
||||
- { name: appdb, type: postgresql, plan: small }
|
||||
- { name: appdb, type: postgresql } # 기본 shared. 전용 인스턴스는 { …, mode: local, plan: small }
|
||||
|
||||
# 워크로드(앱 컨테이너). CI 는 각 workload.build 를 도커 빌드해 image 로 push 한다(${TAG}=릴리스 태그).
|
||||
workloads:
|
||||
- name: web
|
||||
- name: my-app # 배포(워크로드)명 = 프로젝트명(권장). 'project init <name>' 이 프로젝트명으로 설정.
|
||||
build: ./ # 도커 빌드 컨텍스트(Dockerfile 위치). 예: ./ 또는 ./api
|
||||
image: gitea.yakenator.io/CHANGE_ME_GITEA_USER/my-app-web:${TAG}
|
||||
image: gitea.yakenator.io/CHANGE_ME_GITEA_USER/my-app:${TAG}
|
||||
port: 8080
|
||||
replicas: 2 # ≥2 → 무중단 롤링(readiness 게이트)
|
||||
health: /healthz
|
||||
|
||||
Reference in New Issue
Block a user