"Google Cloud Platform CLI - manage GCP resources including Compute Engine, Cloud Run, GKE, Cloud Functions, Storage, BigQuery, and more."
Install
npx skillscat add dicklesworthstone/agent-flywheel-clawdbot-skills-and-integrations/gcloud Install via the SkillsCat registry.
GCloud Skill
Use the gcloud CLI to manage Google Cloud Platform resources and services.
Authentication
Check current auth:
gcloud auth listLogin interactively:
gcloud auth loginLogin with service account:
gcloud auth activate-service-account --key-file=key.jsonApplication default credentials:
gcloud auth application-default loginProject & Configuration
List projects:
gcloud projects listSet default project:
gcloud config set project PROJECT_IDShow current config:
gcloud config listCreate named configuration:
gcloud config configurations create my-config
gcloud config configurations activate my-configSet default region/zone:
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-aCompute Engine (VMs)
List instances:
gcloud compute instances listCreate instance:
gcloud compute instances create my-vm \
--zone=us-central1-a \
--machine-type=e2-medium \
--image-family=debian-12 \
--image-project=debian-cloudSSH to instance:
gcloud compute ssh my-vm --zone=us-central1-aStop/start instance:
gcloud compute instances stop my-vm --zone=us-central1-a
gcloud compute instances start my-vm --zone=us-central1-aDelete instance:
gcloud compute instances delete my-vm --zone=us-central1-aCloud Run
List services:
gcloud run services listDeploy from source:
gcloud run deploy my-service --source . --region=us-central1Deploy container:
gcloud run deploy my-service \
--image=gcr.io/PROJECT/IMAGE \
--region=us-central1 \
--allow-unauthenticatedView logs:
gcloud run services logs read my-service --region=us-central1Update traffic split:
gcloud run services update-traffic my-service \
--to-revisions=LATEST=100 \
--region=us-central1Cloud Functions
List functions:
gcloud functions listDeploy function (2nd gen):
gcloud functions deploy my-function \
--gen2 \
--runtime=nodejs20 \
--region=us-central1 \
--trigger-http \
--entry-point=handler \
--source=.View logs:
gcloud functions logs read my-function --region=us-central1Delete function:
gcloud functions delete my-function --region=us-central1Google Kubernetes Engine (GKE)
List clusters:
gcloud container clusters listGet credentials for kubectl:
gcloud container clusters get-credentials my-cluster \
--zone=us-central1-aCreate cluster:
gcloud container clusters create my-cluster \
--zone=us-central1-a \
--num-nodes=3Resize node pool:
gcloud container clusters resize my-cluster \
--node-pool=default-pool \
--num-nodes=5 \
--zone=us-central1-aCloud Storage
List buckets:
gcloud storage buckets listCreate bucket:
gcloud storage buckets create gs://my-bucket --location=us-central1List objects:
gcloud storage ls gs://my-bucket/Copy files:
# Upload
gcloud storage cp local-file.txt gs://my-bucket/
# Download
gcloud storage cp gs://my-bucket/file.txt ./
# Recursive
gcloud storage cp -r ./local-dir gs://my-bucket/Sync directory:
gcloud storage rsync -r ./local-dir gs://my-bucket/remote-dirCloud SQL
List instances:
gcloud sql instances listCreate instance:
gcloud sql instances create my-instance \
--database-version=POSTGRES_15 \
--tier=db-f1-micro \
--region=us-central1Connect via proxy:
gcloud sql connect my-instance --user=postgresCreate database:
gcloud sql databases create mydb --instance=my-instanceBigQuery
List datasets:
bq lsRun query:
bq query --use_legacy_sql=false 'SELECT * FROM dataset.table LIMIT 10'Create dataset:
bq mk --dataset my_datasetLoad data:
bq load --source_format=CSV my_dataset.my_table gs://bucket/data.csvPub/Sub
List topics:
gcloud pubsub topics listCreate topic:
gcloud pubsub topics create my-topicPublish message:
gcloud pubsub topics publish my-topic --message="Hello"Create subscription:
gcloud pubsub subscriptions create my-sub --topic=my-topicPull messages:
gcloud pubsub subscriptions pull my-sub --auto-ackSecret Manager
List secrets:
gcloud secrets listCreate secret:
echo -n "my-secret-value" | gcloud secrets create my-secret --data-file=-Access secret:
gcloud secrets versions access latest --secret=my-secretAdd new version:
echo -n "new-value" | gcloud secrets versions add my-secret --data-file=-IAM
List service accounts:
gcloud iam service-accounts listCreate service account:
gcloud iam service-accounts create my-sa \
--display-name="My Service Account"Create key:
gcloud iam service-accounts keys create key.json \
--iam-account=my-sa@PROJECT.iam.gserviceaccount.comAdd IAM binding:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:my-sa@PROJECT.iam.gserviceaccount.com" \
--role="roles/storage.admin"Cloud Build
Submit build:
gcloud builds submit --tag gcr.io/PROJECT/IMAGEList builds:
gcloud builds listView build logs:
gcloud builds log BUILD_IDArtifact Registry
List repositories:
gcloud artifacts repositories listConfigure Docker:
gcloud auth configure-docker us-central1-docker.pkg.devLogging
Read logs:
gcloud logging read "resource.type=cloud_run_revision" --limit=50Tail logs:
gcloud logging tail "resource.type=gce_instance"App Engine
Deploy app:
gcloud app deployView logs:
gcloud app logs tailBrowse app:
gcloud app browseUseful Flags
Format as JSON:
gcloud compute instances list --format=jsonFormat as table with specific columns:
gcloud compute instances list --format="table(name,zone,status)"Filter results:
gcloud compute instances list --filter="status=RUNNING"Quiet mode (no prompts):
gcloud compute instances delete my-vm --quietCheat Sheet
Quick reference:
gcloud cheat-sheetInteractive shell:
gcloud interactive