- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환 - Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용 - pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관) - worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md) - D:\Rhino-MCP 경로 참조를 새 위치로 치환 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
88 lines
2.3 KiB
Plaintext
88 lines
2.3 KiB
Plaintext
# ArgoCD Application — Auto-generated by hmcmkit infra-architect
|
|
# GitOps: Git Repo → ArgoCD Sync → Kubernetes Apply
|
|
apiVersion: argoproj.io/v1alpha1
|
|
kind: Application
|
|
metadata:
|
|
name: ${project_name}-${environment}
|
|
namespace: argocd
|
|
labels:
|
|
app.kubernetes.io/managed-by: hmcmkit
|
|
finalizers:
|
|
- resources-finalizer.argocd.argoproj.io
|
|
spec:
|
|
project: default
|
|
source:
|
|
repoURL: ${git_repo_url}
|
|
targetRevision: ${target_branch}
|
|
path: infra/k8s/overlays/${environment}
|
|
helm:
|
|
valueFiles:
|
|
- values.yaml
|
|
destination:
|
|
server: https://kubernetes.default.svc
|
|
namespace: ${environment}
|
|
syncPolicy:
|
|
automated:
|
|
prune: true
|
|
selfHeal: true
|
|
allowEmpty: false
|
|
syncOptions:
|
|
- CreateNamespace=true
|
|
- PrunePropagationPolicy=foreground
|
|
retry:
|
|
limit: 3
|
|
backoff:
|
|
duration: 5s
|
|
factor: 2
|
|
maxDuration: 3m
|
|
---
|
|
# Argo Rollout for Canary Deploy (Production only)
|
|
apiVersion: argoproj.io/v1alpha1
|
|
kind: Rollout
|
|
metadata:
|
|
name: ${project_name}-api
|
|
namespace: ${environment}
|
|
spec:
|
|
replicas: 3
|
|
strategy:
|
|
canary:
|
|
steps:
|
|
- setWeight: 10
|
|
- pause: { duration: 2m }
|
|
- setWeight: 25
|
|
- pause: { duration: 2m }
|
|
- setWeight: 50
|
|
- pause: { duration: 5m }
|
|
- setWeight: 100
|
|
canaryService: ${project_name}-api-canary
|
|
stableService: ${project_name}-api-stable
|
|
analysis:
|
|
templates:
|
|
- templateName: success-rate
|
|
startingStep: 2
|
|
args:
|
|
- name: service-name
|
|
value: ${project_name}-api
|
|
selector:
|
|
matchLabels:
|
|
app: ${project_name}-api
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: ${project_name}-api
|
|
spec:
|
|
containers:
|
|
- name: api
|
|
image: ${ecr_registry}/${project_name}:latest
|
|
ports:
|
|
- containerPort: 3000
|
|
resources:
|
|
requests: { cpu: "250m", memory: "256Mi" }
|
|
limits: { cpu: "500m", memory: "512Mi" }
|
|
livenessProbe:
|
|
httpGet: { path: /health, port: 3000 }
|
|
initialDelaySeconds: 10
|
|
readinessProbe:
|
|
httpGet: { path: /ready, port: 3000 }
|
|
initialDelaySeconds: 5
|