gitops-workflow は何をしますか?
ArgoCDとFluxを使用してGitOpsワークフローを実装し、自動化された宣言的なKubernetesデプロイメントと継続的な調整を実現します。GitOpsプラクティスの実装、Kubernetesデプロイメントの自動化、宣言的なインフラ管理の設定を行う際に使用します。
概要
GitOpsは、Gitリポジトリをクラスタ状態の信頼できる唯一の情報源(Single Source of Truth)として使用する運用モデルです。このスキルは、以下の主要なGitOpsツールを使用してワークフローを設定するのに役立ちます:
- ArgoCD: 宣言的なGitOps CDツール(Kubernetesネイティブ)
- Flux: Kubernetes向けのGitOpsオペレーター
前提条件
- 動作中のKubernetesクラスタ(v1.20+)
kubectlが設定されていること- Gitリポジトリへのアクセス権があること
- 基本的なKubernetesの概念の理解
ワークフロー
- Kubernetesマニフェスト(またはHelmチャート、Kustomizeテンプレート)をGitリポジトリに保存します。
- GitリポジトリをArgoCD/Fluxのターゲットとして設定します。
- ツールは変更を自動的にクラスタに調整します。
- PRベースの更新を通じてロールバックと変更管理を行います。
標準ディレクトリ構成
cluster/
production/
kustomization.yaml
deployment.yaml
service.yaml
staging/
kustomization.yaml
deployment.yaml
service.yaml
はじめ方
ArgoCDを使用する場合
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Fluxを使用する場合
brew install fluxcd/tap/flux
flux bootstrap github \
--owner=$GITHUB_USER \
--repository=fleet-infra \
--branch=main \
--path=./cluster \
--personal
セキュリティと認証情報
シークレットは暗号化して保存するか、外部のシークレットストア(External Secrets Operator、Sealed Secrets、SOPS)を使用してください。生のシークレットをGitにコミットしないでください。
サポートされているプラットフォーム
- Kubernetes(任意のディストリビューション)
- OpenShift
- マネージドK8sサービス(EKS、AKS、GKE)