Portal Delivery Flow
Portal Delivery Flow
Section titled “Portal Delivery Flow”fractalops-portal source/build ownership lives in private repo
yamonco/fractalops-frontend. This control-plane repo keeps backend contracts,
runtime automation, and GitOps desired state only.
Canonical Flow
Section titled “Canonical Flow”yamonco/fractalops-frontend:portal변경- frontend repo quality/build 검증
- frontend repo portal image build/push
- frontend workflow opens/updates the control-plane GitOps pin change
- control-plane
main반영 Argo CD가 Git 변화를 감지하고 rollout
Local Commands
Section titled “Local Commands”Run frontend checks in yamonco/fractalops-frontend, not here:
pnpm run lint:frontend:cipnpm run portal:checkpnpm run portal:build
This repo has no local Portal release command. Normal promotion path is:
frontend main push -> frontend GitHub Actions -> control-plane GitOps pin commit -> Argo sync.
CI Flow
Section titled “CI Flow”GitHub Actions workflow:
yamonco/fractalops-frontend:.github/workflows/portal-gitops-release.yml
이 workflow는:
portal검사portal빌드- GHCR 이미지 push
- Helm
values.yamlimage pin (tag + digest) commit
즉 CI도 deploy 자체를 하지 않는다.
배포는 여전히 Argo CD 가 수행한다.
즉 사람은 kubectl apply 나 수동 rollout을 하지 않고, Git 변경만 만든다.
Design Rules
Section titled “Design Rules”deployment.yaml는 chart template 안에서 image values를 읽는다.- 실제 promotion pin은 Helm
values.yaml의tag + digest만 바꾼다. - tag는
YYYYMMDD-HHMM-<git-sha>형태의 source-correlated immutable tag를 쓴다. - digest는 CI가 실제 push 결과에서 회수한
sha256:...값을 기록한다. - local verification은
astro dev대신 production server entry로 확인한다. - image build는 multi-stage Dockerfile을 쓴다.
이 구조를 쓰면:
dev server와production server차이를 줄일 수 있고- image build 결과가 local/CI에서 같아지고
- GitOps drift를 줄이며
- 누가 봐도
Argo CD가 최종 deploy owner라는 사실이 명확해진다.