Skip to main content

GKE Cluster Requirements for CI/CD

Overview

The CI/CD pipeline requires GKE clusters to exist before deployment workflows can succeed. This document outlines the required clusters and how to create them.

Required Clusters

Preview Cluster

Name: preview-mcp-server-langgraph-gke Location: us-central1 Project: vishnu-sandbox-20250310 Type: GKE Autopilot (recommended) or Standard Creation via Terraform:
Manual Creation:

Production Cluster

Name: production-mcp-server-langgraph-gke Location: us-central1 Project: vishnu-sandbox-20250310 Type: GKE Autopilot Creation via Terraform:

CI/CD Workflow Dependencies

deploy-preview-gke.yaml

This workflow requires:
  • ✅ GKE cluster: preview-mcp-server-langgraph-gke in us-central1
  • ✅ Service account: github-actions-preview@vishnu-sandbox-20250310.iam.gserviceaccount.com
  • ✅ Artifact Registry: mcp-preview repository
  • ✅ GitHub variable: ENABLE_PREVIEW_AUTODEPLOY=true
Workflow Trigger:
  • Push to main branch (when ENABLE_PREVIEW_AUTODEPLOY=true)
  • Manual dispatch
Current Status:
  • ✅ Cluster created and operational
Resolution: Create the cluster using one of the methods above, then re-run the workflow.

deploy-production-gke.yaml

This workflow requires:
  • ⚠️ GKE cluster: production-mcp-server-langgraph-gke in us-central1
  • ✅ Service account: github-actions-production@vishnu-sandbox-20250310.iam.gserviceaccount.com
  • ✅ Artifact Registry: mcp-production repository
Workflow Trigger:
  • Manual dispatch (requires approval)
  • Release tags

Verification

After creating clusters, verify they’re accessible:

Terraform Module Reference

The GKE Autopilot module is located at: terraform/modules/gke-autopilot/ Features:
  • Autopilot mode (Google-managed nodes)
  • VPC-native networking
  • Workload Identity Federation support
  • Master authorized networks
  • Binary authorization (optional)
  • Backup agent integration
  • Config Connector support
Recent Fixes:
  • ✅ Duplicate lifecycle blocks merged (commit b6ac198)
  • ✅ Variable validation moved to lifecycle preconditions
  • ✅ Terraform validation added to pre-commit hooks

Troubleshooting

Error: Cluster not found

Symptom:
Solution: The cluster doesn’t exist. Create it using the methods above.

Error: Permission denied

Symptom:
Solution: Verify the service account has the container.developer role:

Error: Artifact Registry repository not found

Solution: Create the Artifact Registry repositories:

Auto-Deploy Configuration

The deployment workflows check repository variables to determine if auto-deploy is enabled:

Last Updated

2025-11-04 (Commit: b6ac198) Status:
  • Terraform module: ✅ Fixed and validated
  • Service accounts: ✅ Created and configured
  • Auto-deploy variables: ✅ Set
  • GKE clusters: ✅ Created (preview-mcp-server-langgraph-gke)