Files
2nd/10_Wiki/Topic_Programming/Coding/DevOps_Spinnaker_Tekton.md
T
Antigravity Agent 9148c358d0 docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를
Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류.

- 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로
  자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거,
  동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거.
- 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming,
  Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business,
  Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로,
  나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는
  title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백).
  원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지.
- 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서.
- 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는
  지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지.
- Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경.
- 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
2026-07-05 00:33:48 +09:00

5.1 KiB

id, title, category, status, source_trust_level, verification_status, created_at, updated_at, tags, tech_stack, applied_in, aliases
id title category status source_trust_level verification_status created_at updated_at tags tech_stack applied_in aliases
devops-spinnaker-tekton Spinnaker / Tekton — modern CI/CD pipelines Coding draft B conceptual 2026-05-09 2026-05-09
devops
cicd
vibe-coding
language applicable_to
YAML
DevOps
Spinnaker
Tekton
CI/CD pipeline
multi-cloud
continuous delivery
Netflix
K8s pipeline

Spinnaker / Tekton

Modern CI/CD beyond Jenkins. Spinnaker (multi-cloud), Tekton (K8s-native).

📖 핵심 개념

  • Spinnaker: Netflix 의 multi-cloud CD.
  • Tekton: K8s-native pipeline.
  • 매 stage = container.
  • GitOps 친화.

💻 코드 패턴

Spinnaker pipeline (UI / JSON)

{
  "name": "Deploy",
  "stages": [
    { "type": "bake", "package": "my-app", "baseOs": "ubuntu" },
    { "type": "deploy", "clusters": [{ "account": "aws", "region": "us-east-1" }] },
    { "type": "manualJudgment", "message": "Approve prod?" },
    { "type": "deploy", "clusters": [{ "account": "aws-prod" }] }
  ]
}

→ Multi-cloud (AWS, GCP, Azure, K8s).

Spinnaker 의 강점

- Multi-cloud (이주 cluster).
- Canary (Kayenta automated analysis).
- Manual judgment (approval).
- Trigger (Jenkins, Docker, cron).
- Audit / RBAC.

Tekton (K8s-native)

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-deploy
spec:
  tasks:
    - name: build
      taskRef: { name: build-image }
    - name: deploy
      runAfter: [build]
      taskRef: { name: deploy-app }
apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: build-image
spec:
  steps:
    - name: build
      image: gcr.io/kaniko-project/executor
      args: [--dockerfile=./Dockerfile, --destination=my-image]

→ 매 task = pod.

PipelineRun

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: pr-1
spec:
  pipelineRef: { name: build-deploy }

→ Trigger.

Tekton Triggers

apiVersion: triggers.tekton.dev/v1beta1
kind: EventListener
metadata:
  name: github-listener
spec:
  triggers:
    - name: github-push
      interceptors:
        - ref: { name: 'github' }
      bindings:
        - ref: { name: github-binding }
      template:
        ref: build-deploy-template

→ GitHub webhook 가 PipelineRun.

vs Jenkins

Jenkins:
- Mature.
- Plugin 큰 ecosystem.
- Java VM.
- 큰 server.

Spinnaker:
- Multi-cloud first.
- Canary / blue-green.
- Netflix scale.

Tekton:
- K8s-native.
- 작은 (pod 별).
- GitOps.

→ K8s = Tekton. Multi-cloud / 큰 enterprise = Spinnaker. Legacy = Jenkins.

vs GitHub Actions

GitHub Actions:
- GitHub 친화.
- Action marketplace.
- 작은-중간 project.

Tekton:
- K8s-native (자체 cluster).
- 큰 organization.

→ Modern startup = GHA.
큰 enterprise + K8s = Tekton.

vs Argo Workflows

Argo Workflows:
- K8s-native (Tekton 와 비슷).
- DAG-based.
- 더 popular (Argo ecosystem).

Tekton:
- Linear pipeline.
- More 작은 + simpler.

→ Argo 가 더 powerful.
Tekton 가 더 simple.

Spinnaker canary (Kayenta)

{
  "stages": [
    {
      "type": "kayentaCanary",
      "canaryConfig": {
        "metricsAccountName": "datadog",
        "scoreThresholds": { "marginal": 75, "pass": 95 }
      }
    }
  ]
}

→ Datadog metrics 가 canary 의 OK / abort.

Tekton + ArgoCD

1. PR merge → Tekton build image.
2. Tekton update Helm chart (git).
3. ArgoCD detect change → deploy.

→ Build (Tekton) + Deploy (ArgoCD).

Spinnaker + ArgoCD

Spinnaker = orchestrator.
ArgoCD = K8s sync.

→ Spinnaker 가 multi-cluster orchestrate.

Production

  • Netflix: Spinnaker 의 creator.
  • Google: 자체 (similar to Tekton).
  • Capital One: Spinnaker.
  • IBM: Tekton 의 contributor.

When NOT?

Spinnaker:
- 작은 team (overkill).
- Single cloud (simpler tool).

Tekton:
- 작은 / non-K8s.
- GitHub-only (GHA 충분).

Cost

Spinnaker: free (open) + 큰 운영 cost.
Tekton: free + K8s cost.
GitHub Actions: per-use.
Jenkins: free + 운영.

→ 운영 cost 가 큰 factor.

Monitoring

- Pipeline duration.
- Failure rate.
- Queue depth.
- Stage-level metric.

→ Datadog / Prometheus.

Best practice

1. Pipeline as code (git).
2. 매 stage 의 timeout.
3. Auto-rollback.
4. Manual approval (production).
5. Canary / blue-green.
6. Audit log.

🤔 의사결정 기준

상황 추천
K8s-native Tekton / Argo Workflows
Multi-cloud Spinnaker
GitHub project GitHub Actions
Legacy enterprise Jenkins
작은 startup GHA / GitLab CI
Canary auto-analysis Spinnaker (Kayenta)

안티패턴

  • Spinnaker on single cloud: overkill.
  • Tekton + non-K8s: 잘못 선택.
  • 모든 거 manual approval: slow.
  • No timeout: hang.
  • No audit: incident response 어려움.

🤖 LLM 활용 힌트

  • Spinnaker = multi-cloud + Netflix-scale.
  • Tekton = K8s-native pipeline.
  • Argo Workflows = Tekton 의 popular alternative.
  • GitOps + Spinnaker / Tekton = production.

🔗 관련 문서