GKE + Helm + ArgoCD is the de facto GitOps stack for production Kubernetes. This article walks through the full setup, the App of Apps pattern, Workload Identity, and Sealed Secrets with working examples.
Developer
|
git push (Helm Chart / values)
|
v
GitHub Repository ← ArgoCD が Sync (pull)
|
v
GKE Cluster (Prod)
|
v
Pods (Helm Chart 展開)gcloud container clusters create-auto prod-cluster \ --region=asia-northeast1 \ --release-channel=stable \ --enable-private-nodes gcloud container clusters get-credentials prod-cluster \ --region=asia-northeast1
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# UI アクセス (Port Forward)
kubectl port-forward svc/argocd-server -n argocd 8080:443
# 初期パスワード取得
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -dmy-app/
├── Chart.yaml
├── values.yaml
├── values-prod.yaml
├── values-staging.yaml
└── templates/
├── deployment.yaml
├── service.yaml
├── ingress.yaml
├── hpa.yaml
├── serviceaccount.yaml # Workload Identity 用 Annotation
└── _helpers.tpl# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels: { app: {{ .Release.Name }} }
template:
metadata:
labels: { app: {{ .Release.Name }} }
spec:
serviceAccountName: {{ .Release.Name }}
containers:
- name: app
image: {{ .Values.image.repo }}:{{ .Values.image.tag }}
resources:
requests: { cpu: {{ .Values.resources.cpu }}, memory: {{ .Values.resources.memory }} }
---
# templates/serviceaccount.yaml (Workload Identity)
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Release.Name }}
annotations:
iam.gke.io/gcp-service-account: {{ .Values.gsaEmail }}# argocd/applications/my-app-prod.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app-prod
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/my-org/k8s-config.git
targetRevision: HEAD
path: charts/my-app
helm:
valueFiles: [values-prod.yaml]
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- PrunePropagationPolicy=foreground# argocd/root-app.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: root
namespace: argocd
spec:
source:
repoURL: https://github.com/my-org/k8s-config.git
path: argocd/applications/
targetRevision: HEAD
destination:
server: https://kubernetes.default.svc
namespace: argocd
syncPolicy:
automated: { prune: true, selfHeal: true }
# 全 App が applications/ 配下から自動同期# Sealed Secrets Controller インストール helm install sealed-secrets sealed-secrets/sealed-secrets -n kube-system # Secret を Sealed Secret に変換 kubectl create secret generic db-pass --from-literal=password=secret -o yaml --dry-run=client | \ kubeseal -o yaml > db-pass-sealed.yaml # 結果: Git に commit 可能な暗号化 YAML # 復号鍵はクラスタ内のみ存在
# GSA 作成 gcloud iam service-accounts create my-app-gsa # Role 付与 gcloud projects add-iam-policy-binding PROJECT \ --member=serviceAccount:[email protected] \ --role=roles/cloudsql.client # KSA ↔ GSA 紐づけ gcloud iam service-accounts add-iam-policy-binding \ [email protected] \ --role=roles/iam.workloadIdentityUser \ --member="serviceAccount:PROJECT.svc.id.goog[production/my-app]" # Helm values gsaEmail: [email protected]
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-app
spec:
strategy:
canary:
steps:
- setWeight: 20
- pause: { duration: 5m }
- setWeight: 50
- pause: { duration: 10m }
- setWeight: 100
selector: { matchLabels: { app: my-app } }
template: ... # Deployment と同じHelm or Kustomize: which should I use?
Use Helm for templating and complex configuration, and Kustomize for simple environment overlays. Combining both (rendering a Helm chart and overlaying with Kustomize) is also common.
ArgoCD or Cloud Deploy: which one should I pick?
Pick ArgoCD for GitOps and multi-cluster management, and Cloud Deploy for managed Canary/Blue-Green rollouts. You can also combine them (ArgoCD feeding into Cloud Deploy).
How do I install ArgoCD?
Run <code>kubectl create ns argocd && kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml</code>, or install via the official Helm chart.
What are the benefits of GitOps?
Git becomes the single source of truth, reviews, audit, and rollback all happen in Git, drift detection is automatic, and the declarative style guarantees reproducibility.
What is the App of Apps pattern?
An ArgoCD pattern where you create an 'app that manages apps', letting you control every Application across the organization from a single Git repo. The standard approach when you need to scale.
How should I manage Helm chart values?
Use a base values.yaml plus per-environment files (values-prod.yaml, values-staging.yaml). Encrypt secrets with Sealed Secrets, SOPS, or External Secrets.
How does this integrate with Workload Identity?
Annotate the ServiceAccount in your Helm chart with the GSA email and point the Pod at that SA. Workload Identity transparently maps KSA to GSA, so no service account keys are needed.
What are the alternatives?
Flux CD (ArgoCD's main competitor), Jenkins X, Spinnaker, and Cloud Build + Cloud Deploy. In the GitOps space, ArgoCD and Flux are the dominant choices.
Related Articles: Kubernetes / GitOps
GitHub Actions + GCP CI/CD 完全ガイド|Workload Identity・Cloud Run/GKE デプロイ (2026)
GitHub Actions で GCP CI/CD を構築する完全ガイド。Workload Identity Federation、setup-gcloud、Cloud Run / GKE デプロイ、Cloud Build 連携、Reusable Workflow、Self-hosted Runner、Secrets 管理を 2026 年最新版で網羅。
Terraform on GCP 完全ガイド|IaC・Provider・Workload Identity・GitHub Actions (2026)
Google Cloud で Terraform を使う IaC 完全ガイド。Google Cloud Provider / Beta、State 管理 (gcs バックエンド)、Workload Identity Federation、Module 設計、GitHub Actions CI、Infracost、Config Connector を 2026 年最新版で網羅。
Google Cloud (GCP) 認定資格ロードマップ 2026 完全版|全 15 試験を体系化
Google Cloud 認定資格 全 15 試験 (Foundational 2 + Associate 3 + Professional 10) の 2026 年版ロードマップ。14/15 試験が日本語対応、Generative AI Leader (2025-05 新)・PMLE 2026-06 新版、AWS/Azure/GCP シェア比較、役割別ルートを日本語で整理。
GKE Autopilot vs Standard 徹底比較|Google Kubernetes Engine の選び方と料金
Google Kubernetes Engine (GKE) の Autopilot モードと Standard モードを徹底比較。料金体系、機能差、Cloud Run との使い分け、Workload Identity、GKE Enterprise (旧 Anthos) も解説。
Google Cloud is a trademark of Google LLC; the Argo Project and Helm belong to the CNCF. For the latest details, see the official ArgoCD docs.
Practice with certification-focused question sets
Browse GCP exam prepNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Google Cloud Certification Roadmap (2026)
Choose your GCP certification path — Foundational, Associate...
CDL Cloud Digital Leader: Complete Exam Guide (2026)
Pass the Cloud Digital Leader exam — cloud business value, G...
GAIL Generative AI Leader: Complete Exam Guide (2026)
Pass the Generative AI Leader exam — Gemini, Vertex AI, Work...
Vertex AI Fundamentals for GCP Certs (2026)
Vertex AI basics every cert candidate needs — Workbench, Pip...
Associate Cloud Engineer (ACE): Complete Guide (2026)
Pass the Associate Cloud Engineer exam — Console, gcloud, pr...