AD

adk-deploy-guide

Deployment infrastructure guide for ADK agents, prioritizing Terraform-based production setups.

Install

mkdir -p .claude/skills/adk-deploy-guide && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/19142" && unzip -o skill.zip -d .claude/skills/adk-deploy-guide && rm skill.zip

Installs to .claude/skills/adk-deploy-guide

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

MUST READ before deploying any ADK agent to Google Cloud — covers Cloud Run, Agent Engine, Vertex AI, event-driven agents, and ADK CI/CD pipelines. Use when deploying ADK agents to production, not for agent code patterns (use google-adk) or project scaffolding.
261 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Deploy ADK agents to Google Cloud Run
  • Deploy ADK agents to Google Agent Engine
  • Configure secrets using Google Secret Manager
  • Set up CI/CD pipelines for ADK agents
  • Scaffold Terraform for GCP infrastructure
  • Verify deployment health check endpoints

How it works

The skill guides through deploying ADK agents to Google Cloud, either via Cloud Run or Agent Engine, by using Terraform for infrastructure, Secret Manager for credentials, and setting up CI/CD pipelines.

Inputs & outputs

You give it
ADK agent code and deployment configuration
You get back
Deployed ADK agent on Google Cloud Run or Agent Engine with configured CI/CD

When to use adk-deploy-guide

  • Deploying ADK agents
  • Planning GCP infrastructure
  • Configuring CI/CD pipelines

About this skill

ADK Deployment Guide

Scaffolded project? Use make commands — they wrap Terraform, Docker, and deployment.

No scaffold? See Quick Deploy below. For production infrastructure, see the /scaffold-adk command or load the architecture-design skill for infrastructure planning.

Iron Law

NEVER create GCP resources manually via gcloud for production. Define all infrastructure in Terraform. Exception: quick experimentation only — console or gcloud for throwaway resources is fine.


Reference Files

FileContents
reference/agent-engine.mdAdkApp pattern, deploy.py CLI, session/artifact services, CI/CD differences
reference/cloud-run.mdDockerfile, session types, scaling defaults, networking, ingress, IAP
reference/event-driven.mdPub/Sub, Eventarc, BigQuery Remote Function trigger patterns
reference/terraform-patterns.mdCustom resources, IAM bindings, state management, importing resources

For agent code patterns and testing strategies, see google-adk skill. For evaluations and observability, see adk-eval-guide and adk-observability-guide skills.


Deployment Target Decision Matrix

CriteriaAgent EngineCloud Run
DeploymentSource-based, no DockerDockerfile + container image
ScalingManaged auto-scalingFully configurable (min/max instances)
Session stateNative VertexAiSessionServiceIn-memory (dev), Cloud SQL, or Agent Engine backend
Event-drivenNot supportedPub/Sub, Eventarc, BigQuery Remote Function via /invoke
Cost modelvCPU-hours + memory-hours (not billed when idle)Per-instance-second + min instance costs
Setup complexityLower — managed, purpose-built for agentsMedium — Dockerfile, Terraform, networking
Best forMinimal ops, managed infrastructureEvent-driven workloads, full infrastructure control

Ask the user which target fits their needs before proceeding.


Quick Deploy (ADK CLI)

No Makefile, Terraform, or Dockerfile required.

# Cloud Run
adk deploy cloud_run --project=PROJECT --region=REGION path/to/agent/

# Agent Engine
adk deploy agent_engine --project=PROJECT --region=REGION path/to/agent/

Both support --with_ui to deploy the ADK dev UI. Cloud Run accepts extra gcloud flags after --.


Process

  1. Gather requirements — target (Agent Engine vs Cloud Run), project ID, region, secrets needed
  2. Choose target — use the decision matrix above; ask if unclear
  3. Scaffold or write Terraform — run /scaffold-adk or manually write deployment/terraform/
  4. Configure secrets — use Secret Manager, not env vars, for API keys and credentials
  5. Deploymake deploy (scaffolded) or adk deploy <target> (CLI)
  6. Verify — health check endpoint, test with curl or testing notebook, run load tests

Secret Manager

# Create
echo -n "YOUR_API_KEY" | gcloud secrets create MY_SECRET_NAME --data-file=-

# Update
echo -n "NEW_KEY" | gcloud secrets versions add MY_SECRET_NAME --data-file=-

# Agent Engine: pass at deploy time
make deploy SECRETS="API_KEY=my-api-key,DB_PASS=db-password:2"

Grant secretmanager.secretAccessor to app_sa (Cloud Run) or service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com (Agent Engine).


Documentation Sources

SourceURLPurpose
ADK Deploymenthttps://google.github.io/adk-docs/deploy/Official deployment docs
Cloud Runhttps://google.github.io/adk-docs/deploy/cloud-run/index.mdCloud Run specifics
Agent Enginehttps://google.github.io/adk-docs/deploy/agent-engine/index.mdAgent Engine specifics


Production Deployment — CI/CD Pipeline

Best for: Production applications, teams requiring staging → production promotion.

Prerequisites:

  1. Project must NOT be in a gitignored folder
  2. User must provide staging and production GCP project IDs
  3. GitHub repository name and owner

Steps:

  1. If prototype, first add Terraform/CI-CD files using the Agent Starter Pack CLI:

    uvx agent-starter-pack enhance . --cicd-runner github_actions -y -s
    
  2. Ensure you're logged in to GitHub CLI:

    gh auth login  # (skip if already authenticated)
    
  3. Run setup-cicd:

    uvx agent-starter-pack setup-cicd \
      --staging-project YOUR_STAGING_PROJECT \
      --prod-project YOUR_PROD_PROJECT \
      --repository-name YOUR_REPO_NAME \
      --repository-owner YOUR_GITHUB_USERNAME \
      --auto-approve \
      --create-repository
    
  4. Push code to trigger deployments

Key setup-cicd Flags

FlagDescription
--staging-projectGCP project ID for staging environment
--prod-projectGCP project ID for production environment
--repository-name / --repository-ownerGitHub repository name and owner
--auto-approveSkip Terraform plan confirmation prompts
--create-repositoryCreate the GitHub repo if it doesn't exist
--cicd-projectSeparate GCP project for CI/CD infrastructure. Defaults to prod project
--local-stateStore Terraform state locally instead of in GCS

Choosing a CI/CD Runner

RunnerProsCons
github_actions (Default)No PAT needed, uses gh auth, WIF-based, fully automatedRequires GitHub CLI authentication
google_cloud_buildNative GCP integrationRequires interactive browser authorization (or PAT + app installation ID for programmatic mode)

How Authentication Works (WIF)

Both runners use Workload Identity Federation (WIF) — GitHub/Cloud Build OIDC tokens are trusted by a GCP Workload Identity Pool, which grants cicd_runner_sa impersonation. No long-lived service account keys needed. Terraform in setup-cicd creates the pool, provider, and SA bindings automatically. If auth fails, re-run terraform apply in the CI/CD Terraform directory.

CI/CD Pipeline Stages

The pipeline has three stages:

  1. CI (PR checks) — Triggered on pull request. Runs unit and integration tests.
  2. Staging CD — Triggered on merge to main. Builds container, deploys to staging, runs load tests.

    Path filter: Staging CD uses paths: ['app/**'] — it only triggers when files under app/ change. If nothing happens after the first push after setup-cicd, this is why.

  3. Production CD — Triggered after successful staging deploy. May require manual approval before deploying to production.

    Approving: Go to GitHub Actions → the production workflow run → click "Review deployments" → approve the pending production environment. This is GitHub's environment protection rules.

IMPORTANT: setup-cicd creates infrastructure but doesn't deploy automatically. Push code to trigger the pipeline:

git add . && git commit -m "Initial agent implementation"
git push origin main

To approve production deployment:

# GitHub Actions: Approve via repository Actions tab (environment protection rules)

# Cloud Build: Find pending build and approve
gcloud builds list --project=PROD_PROJECT --region=REGION --filter="status=PENDING"
gcloud builds approve BUILD_ID --project=PROD_PROJECT

Service Account Architecture

Scaffolded projects use two service accounts:

  • app_sa (per environment) — Runtime identity for the deployed agent. Roles defined in deployment/terraform/iam.tf.
  • cicd_runner_sa (CI/CD project) — CI/CD pipeline identity (GitHub Actions / Cloud Build). Needs permissions in both staging and prod projects.

Troubleshooting

IssueSolution
Agent Engine deploy timeoutCheck if engine was created; manually populate deployment_metadata.json
403 on deploycicd_runner_sa missing deployment role or SA impersonation in target project
403 testing Cloud RunAdd Authorization: Bearer $(gcloud auth print-identity-token) header
Secret access deniedVerify secretAccessor granted to app_sa, not default compute SA
Cold starts slowSet min_instance_count > 0 in Cloud Run Terraform config
Resource already existsUse terraform import — see reference/terraform-patterns.md

When not to use it

  • When creating GCP resources manually via gcloud for production
  • When the task involves agent code patterns or project scaffolding
  • When the task is for evaluations and observability

Prerequisites

GitHub repository name and ownerStaging and production GCP project IDs

Limitations

  • It does not cover agent code patterns or testing strategies
  • It does not cover evaluations and observability
  • It requires Terraform for production infrastructure

How it compares

This skill provides a structured, Terraform-based approach to deploying ADK agents to GCP with CI/CD, contrasting with manual gcloud deployments.

Compared to similar skills

adk-deploy-guide side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
adk-deploy-guide (this skill)02moReviewAdvanced
terraform-module-library74moNo flagsAdvanced
azure-image-builder05moReviewIntermediate
senior-devops77moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

terraform-module-library

wshobson

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

759

azure-image-builder

hashicorp

Build Azure managed images and Azure Compute Gallery images with Packer. Use when creating custom images for Azure VMs.

02

senior-devops

davila7

Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup, infrastructure as code, deployment automation, and monitoring. Use when setting up pipelines, deploying applications, managing infrastructure, implementing monitoring, or optimizing deployment processes.

720

deployment-engineer

sickn33

Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.

418

devops

mrgoonie

Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm). Use for serverless, containers, CI/CD, GitOps, security audit.

216

genkit-infra-expert

jeremylongshore

Execute use when deploying Genkit applications to production with Terraform. Trigger with phrases like "deploy genkit terraform", "provision genkit infrastructure", "firebase functions terraform", "cloud run deployment", or "genkit production infrastructure". Provisions Firebase Functions, Cloud Run services, GKE clusters, monitoring dashboards, and CI/CD for AI workflows.

15

Search skills

Search the agent skills registry