Skip to content

feat: add kro Capability, EKS API IP restriction, ALB inbound CIDR setup#1

Open
MatsuokaYuji wants to merge 4 commits intomainfrom
feat/kro-capability-and-ip-restriction
Open

feat: add kro Capability, EKS API IP restriction, ALB inbound CIDR setup#1
MatsuokaYuji wants to merge 4 commits intomainfrom
feat/kro-capability-and-ip-restriction

Conversation

@MatsuokaYuji
Copy link
Copy Markdown
Contributor

@MatsuokaYuji MatsuokaYuji commented May 6, 2026

概要

EKS Capabilities の kro (Kubernetes Resource Orchestrator) を導入し、Developer の認知負荷を削減するワークロード抽象化を実現しました。
従来の Kustomize 版も比較用に残しており、スクリプトで切り替えてデプロイできます。

変更内容

Terraform(インフラ)

  • kro Capability の追加(IAMロール + aws_eks_capability type=KRO + ClusterAdminPolicy)
  • EKS API エンドポイントの IP 制限(public_access_cidrs
  • NFM 条件分岐の修正(!= null に統一)

Platform リポジトリ(GitOps)

  • config/kro-definitions/webapp-rgd.yaml: WebApp ResourceGraphDefinition
    • Rollout (Blue/Green) + Service×2 + Ingress×2 を抽象化
    • ingressCidrs フィールドで ALB の IP 制限を Instance 側から指定可能
  • bootstrap/config-kro-definitions.yaml: ArgoCD ApplicationSet

Workload リポジトリ

  • bg-demo-kro/: kro 版(Developer は webapp-instance.yaml の1ファイルだけ書けばよい)
  • bg-demo-traditional/: 従来の Kustomize 版(比較用に残置)

スクリプト・ドキュメント

  • scripts/push-workload.sh [kro|traditional]: workload を CodeCommit に push(方式を引数で切り替え)
  • scripts/push-platform.sh: platform リポジトリを CodeCommit に push
  • repositories/workloads/README.md: 使い分け方・セットアップ手順・比較表

デプロイ方式の切り替え

# kro 版でデプロイ(Developer は1ファイルだけ書く)
./scripts/push-workload.sh kro

# 従来版でデプロイ(Kustomize + 生マニフェスト)
./scripts/push-workload.sh traditional

ArgoCD が CodeCommit 上の ex-app/bg-demo/dev を検出して自動 Sync します。
スクリプトは選択した方式のファイルを ex-app/bg-demo/ として CodeCommit に push します。

セキュリティ

  • 実 IP アドレスを含むファイル(terraform.tfvars, webapp-instance.yaml, ingress-cidrs.yaml)は .gitignore で除外
  • .example ファイルにプレースホルダーを記載

Developer 体験の変化

観点 Before (従来版) After (kro 版)
管理ファイル数 5ファイル 1ファイル
必要な知識 Rollout, Service, Ingress, Kustomize WebApp の spec のみ
構成変更の反映 各チームに展開依頼 RGD 更新で全 Instance に自動反映
前提 Argo Rollouts のみ kro Capability + RGD が必要

- Add WebApp ResourceGraphDefinition (Rollout + Service×2 + Ingress×2)
- Add ArgoCD ApplicationSet for kro-definitions
- Replace Kustomize base manifests with kro WebApp Instance
- webapp-instance.yaml is gitignored (contains real IPs)
- .example file provided with placeholders
- bg-demo-kro/: kro WebApp Instance (1 file)
- bg-demo-traditional/: Kustomize with raw manifests (Rollout, Service, Ingress)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant