mcpField
A
argocd-cluster-bootstrapping

argocd-cluster-bootstrapping

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

argocd-cluster-bootstrapping について

argocd-cluster-bootstrapping は、Kubernetes クラスターを ArgoCD 管理のマルチリポジトリ GitOps 環境に加えるスキルです。登録、ラベル、プロジェクト、ApplicationSet、運用確認を扱います。

主な機能

  1. 01ArgoCD へのクラスター登録
  2. 02クラスターシークレットのラベルとテンプレート
  3. 03ArgoCD Project の設定
  4. 04マルチソース ApplicationSet の構成
  5. 05接続と同期のトラブルシューティング

活用シーン

  1. 01新規プロビジョニングしたクラスターの追加
  2. 02既存クラスターのハブへの登録
  3. 03事業部門向けプロジェクトの設定
  4. 04クラスター接続や同期の問題調査

インストール

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

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill argocd-cluster-bootstrapping

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

同梱ファイル

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

ArgocdClusterBootstrapping/Workflows/
CreateRootApplication.md
DiagnoseSyncFailure.md
OnboardCluster.md
references/
architecture.md
guidance.md
project-structure.md
summary.md
tools.md
workflow.md
references/templates/
README.md
applicationset-cluster-generator.yaml
applicationset-matrix-generator.yaml
argocd-project.yaml
bootstrap-script.sh
cluster-secret.yaml
external-secret-store.yaml
values-base.yaml
values-dev.yaml
values-prd.yaml

詳細

ArgoCD クラスターブートストラップスキル

ArgoCD で管理されるマルチリポジトリ GitOps 環境に、新しい Kubernetes クラスターをブートストラップするための完全なガイドです。

このスキルを使用する場面

  • 新しい AKS/EKS/GKE クラスターをプロビジョニングし、ArgoCD と統合する場合
  • 既存のクラスターを ArgoCD ハブに登録する場合
  • ApplicationSet のターゲット指定に適したラベルを付けてクラスターシークレットを作成する場合
  • 新しいビジネスユニット向けに ArgoCD プロジェクトを設定する場合
  • 新しいクラスター向けにマルチソース ApplicationSet を設定する場合
  • クラスターの接続や同期に関する問題をトラブルシューティングする場合
  • マルチリポジトリ GitOps アーキテクチャを理解する場合

クイックスタート

1. 事前チェックリスト
# Verify ArgoCD CLI is installed
argocd version --client

# Verify kubectl access to hub cluster
kubectl config use-context aks-cafehyna-default
kubectl get nodes

# Verify access to target cluster
kubectl config use-context <new-cluster-context>
kubectl get nodes
2. クラスターを登録する(3 ステップ)
# Step 1: Add cluster to ArgoCD
argocd cluster add <cluster-context> --name <developer-friendly-name>

# Step 2: Create cluster secret with labels (GitOps)
# See templates/cluster-secret.yaml

# Step 3: Create ArgoCD Project (GitOps)
# See templates/argocd-project.yaml
3. 最初のアプリケーションをデプロイする
# Sync the master ApplicationSet to pick up new cluster
argocd app sync applicationset-master --resource-filter kind=ApplicationSet

アーキテクチャの概要

┌─────────────────────────────────────────────────────────────────────┐
│                        HUB CLUSTER                                  │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                    ArgoCD Server                             │   │
│  │  ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐│   │
│  │  │ApplicationSet│ │  Projects   │ │    Cluster Secrets     ││   │
│  │  │  Controller  │ │  (RBAC)     │ │  (Labels for targeting)││   │
│  │  └─────────────┘ └─────────────┘ └─────────────────────────┘│   │
│  └─────────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────────┘
         │                    │                    │
         ▼                    ▼                    ▼
┌─────────────┐      ┌─────────────┐      ┌─────────────┐
│ DEV Cluster │      │ HLG Cluster │      │ PRD Cluster │
│  (Spot OK)  │      │  (Staging)  │      │ (HA Config) │
└─────────────┘      └─────────────┘      └─────────────┘

リポジトリ構成

infra-team/                          # Infrastructure repository
├── applicationset/                  # ApplicationSet definitions
│   ├── kube-addons/                # Add-on ApplicationSets
│   └── applications/               # Business app ApplicationSets
├── argocd-clusters/                # Cluster registration secrets
├── argocd-projects/                # Project definitions (RBAC)
└── applicationset-templates/       # Reusable templates

argo-cd-helm-values/                # Values repository (separate security)
└── kube-addons/
    └── <component>/
        └── <cluster-name>/
            └── values.yaml         # Per-cluster overrides

主な概念

命名規則(重要)
コンテキスト開発者名Azure AKS 名
ArgoCDcafehyna-devaks-cafehyna-dev
シークレット開発者名を使用-
ラベル開発者名を使用-
クラスターラベル(必須)
labels:
  argocd.argoproj.io/secret-type: cluster
  environment: dev|hlg|prd|hub
  region: brazilsouth|eastus2
  cluster-name: <developer-friendly-name>
  node-type: spot|standard|mixed
  connection-type: internal|external
  tier: platform|application
環境の特性
環境同期ポリシーレプリカ数ノードの種類プルーニング
dev自動1スポット可あり
hlg手動2混在あり
prd手動3標準なし

参考ドキュメント

よくあるタスク

新しい開発クラスターを追加する
# Use the bootstrap script
./scripts/bootstrap-cluster.sh \
  --name cafehyna-dev-02 \
  --environment dev \
  --region brazilsouth \
  --node-type spot
接続をトラブルシューティングする
# Check cluster health
argocd cluster get <cluster-name>

# Verify secret labels
kubectl get secret -n argocd -l argocd.argoproj.io/secret-type=cluster

# Test ApplicationSet targeting
argocd appset get <appset-name> --show-params

安全ルール

  1. 管理対象クラスターでは kubectl apply を絶対に使用しないでください - すべての変更は Git 経由で行います
  2. コミット前に必ず検証してください - pre-commit run --all-files を実行します
  3. まず開発環境でテストしてください - hlg を経由してから prd に昇格します
  4. 既存のラベルを維持してください - ラベルは ApplicationSet のターゲット指定を制御します
  5. 認証情報にはシークレットを使用してください - values ファイルに直接記述しないでください

コメント