mcpField
P
progressive-delivery

progressive-delivery

github.com/julianobarbosaクラウド・DevOps1457 回インストール2 日前に更新
リポジトリ

progressive-delivery について

Argo Rollouts と Kargo による Kubernetes の段階的デリバリーを解説するスキルガイドです。トラフィック制御や環境間の昇格、ArgoCD との役割分担を扱います。

主な機能

  1. 01カナリア・ブルーグリーン展開の解説
  2. 02メトリクスに基づく自動分析
  3. 03環境ステージ間の昇格
  4. 04ArgoCD 連携の説明

活用シーン

  1. 01ワークロードのトラフィック切り替えを計画
  2. 02dev から prod へのリリース昇格
  3. 03ステージ間の検証ゲートを設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill progressive-delivery

インストール後、Claude Code で/progressive-deliveryを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

References/
argo-rollouts.md
kargo.md
References/argo-rollouts/
analysis-metrics.md
cli-commands.md
deployment-strategies.md
examples.md
summary.md
References/kargo/
expressions.md
patterns.md
promotion-steps.md
security.md

詳細

プログレッシブデリバリー

Kubernetes 環境でバージョンを安全に移行するための、相互に補完する 2 つのツールです。

  • Argo Rollouts — Deployment を、カナリア、ブルーグリーン、メトリクスを条件とする自動分析に対応した Rollout CRD に置き換えます。クラスター/サービスメッシュ層でトラフィックを制御します。
  • 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 の Application CR を更新する権限が Kargo のコントローラーに必要です。 デフォルトのインストールではこの権限は付与されません。argocd.permissions の Helm values を確認してください。
  • 検証ステップはステージ内ではなく、ステージ間で実行されます。 検証に失敗しても前のステージはロールバックされず、次のステージへのプロモーションがブロックされます。ロールバックが必要な場合は、別途 Rollouts レベルの分析が必要です。

コメント