From adk-deployment
Use this skill to deploy an ADK 2.0 agent to Google Kubernetes Engine (GKE). Triggers on: "deploy ADK to GKE", "ADK Kubernetes", "ADK k8s manifest", "ADK GKE Autopilot", "agent on Kubernetes", "ADK deployment yaml", "scale ADK with HPA". Generates Deployment, Service, HPA, ConfigMap, and ServiceAccount manifests plus the kubectl/helm commands to roll out.
How this skill is triggered — by the user, by Claude, or both
Slash command
/adk-deployment:gke-deployerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Deploy an ADK 2.0 agent to GKE (standard or Autopilot). Use when you need finer control than Cloud Run gives — sidecars, GPUs, persistent volumes, custom networking.
Deploy an ADK 2.0 agent to GKE (standard or Autopilot). Use when you need finer control than Cloud Run gives — sidecars, GPUs, persistent volumes, custom networking.
| Need | GKE | Cloud Run |
|---|---|---|
| GPU for local model inference | yes | limited |
| Sidecars (proxies, agents) | easy | not supported |
| StatefulSets, persistent volumes | yes | no |
| Long-running streaming connections | yes | yes (with limits) |
| Min ops overhead | no | yes |
deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: adk-agent
labels: { app: adk-agent }
spec:
replicas: 2
selector: { matchLabels: { app: adk-agent } }
template:
metadata:
labels: { app: adk-agent }
spec:
serviceAccountName: adk-agent-sa
containers:
- name: agent
image: gcr.io/$PROJECT/adk-agent:latest
ports: [{ containerPort: 8080 }]
env:
- name: GOOGLE_GENAI_USE_VERTEXAI
value: "true"
- name: GOOGLE_CLOUD_PROJECT
valueFrom: { configMapKeyRef: { name: adk-config, key: project } }
- name: GOOGLE_CLOUD_LOCATION
valueFrom: { configMapKeyRef: { name: adk-config, key: location } }
resources:
requests: { cpu: "500m", memory: "1Gi" }
limits: { cpu: "2", memory: "2Gi" }
readinessProbe:
httpGet: { path: /health, port: 8080 }
initialDelaySeconds: 5
livenessProbe:
httpGet: { path: /health, port: 8080 }
initialDelaySeconds: 30
service.yaml:
apiVersion: v1
kind: Service
metadata: { name: adk-agent, labels: { app: adk-agent } }
spec:
type: ClusterIP
selector: { app: adk-agent }
ports: [{ port: 80, targetPort: 8080 }]
hpa.yaml:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata: { name: adk-agent }
spec:
scaleTargetRef: { apiVersion: apps/v1, kind: Deployment, name: adk-agent }
minReplicas: 2
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
target: { type: Utilization, averageUtilization: 60 }
PROJECT=my-project
NAMESPACE=default
KSA=adk-agent-sa
GSA=adk-agent@$PROJECT.iam.gserviceaccount.com
gcloud iam service-accounts create adk-agent --project=$PROJECT
gcloud projects add-iam-policy-binding $PROJECT \
--member="serviceAccount:$GSA" --role="roles/aiplatform.user"
kubectl create serviceaccount $KSA
gcloud iam service-accounts add-iam-policy-binding $GSA \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:$PROJECT.svc.id.goog[$NAMESPACE/$KSA]"
kubectl annotate serviceaccount $KSA \
iam.gke.io/gcp-service-account=$GSA
gcloud builds submit --tag gcr.io/$PROJECT/adk-agent:latest
kubectl apply -f deployment.yaml -f service.yaml -f hpa.yaml
kubectl rollout status deployment/adk-agent
Use a Gateway or Ingress resource with TLS via google-managed-cert.
kubectl get pods — all adk-agent-* Runningkubectl logs -l app=adk-agent — no auth errorscurl <ingress>/health returns ok over HTTPScloud-run-deployer for simpler serverless optionagent-runtime-config for tuning ADK runtime paramsnpx claudepluginhub healthcare-ai-consulting-llc/adk-2-toolkit --plugin adk-deploymentProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.