progressive-delivery について
Argo Rollouts と Kargo による Kubernetes の段階的デリバリーを解説するスキルガイドです。トラフィック制御や環境間の昇格、ArgoCD との役割分担を扱います。
主な機能
- 01カナリア・ブルーグリーン展開の解説
- 02メトリクスに基づく自動分析
- 03環境ステージ間の昇格
- 04ArgoCD 連携の説明
活用シーン
- 01ワークロードのトラフィック切り替えを計画
- 02dev から prod へのリリース昇格
- 03ステージ間の検証ゲートを設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill progressive-deliveryインストール後、Claude Code で/progressive-deliveryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
References/argo-rollouts.mdkargo.mdReferences/argo-rollouts/analysis-metrics.mdcli-commands.mddeployment-strategies.mdexamples.mdsummary.mdReferences/kargo/expressions.mdpatterns.mdpromotion-steps.mdsecurity.md詳細
プログレッシブデリバリー
Kubernetes 環境でバージョンを安全に移行するための、相互に補完する 2 つのツールです。
- Argo Rollouts —
Deploymentを、カナリア、ブルーグリーン、メトリクスを条件とする自動分析に対応したRolloutCRD に置き換えます。クラスター/サービスメッシュ層でトラフィックを制御します。 - Kargo — GitOps にプロモーションロジックを追加します。
Freight(バージョン管理されたアーティファクトのバンドル)を追跡し、Warehouses(ソース)と検証ステップを通じて、Stages(dev → staging → prod)へプロモーションします。
ArgoCD は従来どおり、望ましい状態をクラスターに同期します。Rollouts は、単一のデプロイ中のトラフィック分割を決定します。Kargo は、次のステージに新しいバージョンを適用するタイミングを決定します。
スコープの振り分け
| 必要な内容 | 参照先 |
|---|---|
| 単一のワークロードのカナリア/ブルーグリーン/メトリクスを条件とするデプロイ | References/argo-rollouts.md + References/argo-rollouts/ |
| 手動または自動のゲートを使った、dev → stg → prod へのバージョンのプロモーション | References/kargo.md + References/kargo/ |
| 両方(Kargo が管理するプロモーション内のデプロイ戦略としての Rollouts) | 両方を参照してください。Kargo は ArgoCD を呼び出し、Rollout をデプロイします。 |
メンタルモデル
Kargo: Freight v1.2.3 -> [dev stage] -> verify -> [stg stage] -> verify -> [prod stage]
|
v
ArgoCD: syncs Rollout manifest
|
v
Rollouts: canary @ 10% -> analysis -> 50% -> 100%
使用しないケース
- トラフィック制御や分析ゲートが不要な単純な
Deploymentのロールアウト — 標準の Kubernetes Deployment で十分です。 - 対象リビジョンを編集する PR による手動プロモーション — これはこのスキルではなく、
argocdスキルの対象です。 - アプリ内での機能フラグや実行時のパーセンテージロールアウト — これはデプロイではなく、アプリケーションに関するものです(LaunchDarkly、Unleash など)。
注意点
- Rollouts は Deployment を置き換えるものであり、追加するものではありません。 既存のアプリを移行するには、リソースの種類を変更する必要があります。kubectl-argo-rollouts の変換を使わずに移行する場合は、1 リビジョン分のダウンタイムを想定してください。
- AnalysisTemplate のメトリクスクエリは、Rollouts コントローラーの権限の範囲内で実行されます。 Prometheus が別の名前空間にある場合、コントローラーに RBAC またはサービスアカウントトークンが必要です。
- Kargo Freight は不変です。 生成後に編集することはできず、新しい Freight を生成します。Stage の現在の Freight を「パッチ」しようとするのはアンチパターンです。
- Kargo と ArgoCD の統合には、ArgoCD の
ApplicationCR を更新する権限が Kargo のコントローラーに必要です。 デフォルトのインストールではこの権限は付与されません。argocd.permissionsの Helm values を確認してください。 - 検証ステップはステージ内ではなく、ステージ間で実行されます。 検証に失敗しても前のステージはロールバックされず、次のステージへのプロモーションがブロックされます。ロールバックが必要な場合は、別途 Rollouts レベルの分析が必要です。
コメント
Markdown 対応