GCP CLI#

The gcloud CLI manages authentication, local configuration, developer workflow, and Google Cloud API interaction.

Basics#

$ gcloud version                                              # version, info, components
$ gcloud info
$ gcloud components list
$ gcloud init                                                 # init profile (opens OpenID URL)
$ gcloud compute zones list                                   # list all zones
$ gcloud components update                                    # upgrade local SDK
$ gcloud components update --version 219.0.1

Buckets#

$ gsutil ls                                                   # list all buckets and files
$ gsutil ls -lh gs://<bucket-name>
$ gsutil cp gs://<bucket-name>/<dir>/package-1.1.tgz .        # download file
$ gsutil cp <filename> gs://<bucket-name>/<directory>/        # upload file
$ gsutil cat gs://<bucket-name>/<filepath>                    # cat file
$ gsutil rm gs://<bucket-name>/<filepath>                     # delete file
$ gsutil mv <src> gs://<bucket-name>/<dir>/<dest>             # move file
$ gsutil cp -r ./conf gs://<bucket-name>/                     # copy folder
$ gsutil du -h gs://<bucket-name>/<directory>                 # disk usage
$ gsutil mb gs://<bucket-name>                                # create bucket
$ gsha1sum <file>                                             # calculate file sha1sum
$ gsutil help, gsutil help cp, gsutil help options

Project#

$ gcloud config list                                          # list projects
$ gcloud config list project
$ gcloud compute project-info describe                        # project info
$ gcloud config set project <project-id>                      # switch project

GKE#

$ gcloud auth list                                            # credentialed accounts
$ gcloud config set account <ACCOUNT>                         # set active account
$ gcloud container clusters get-credentials <cluster-name>    # set kubectl context
$ gcloud config set compute/region us-west                    # change region
$ gcloud config set compute/zone us-west1-b                   # change zone
$ gcloud container clusters list                              # list clusters

IAM#

$ gcloud auth activate-service-account --key-file <key-file>  # authenticate
$ gcloud auth list                                            # credentialed accounts
$ gcloud config set account <ACCOUNT>
$ gcloud auth configure-docker                                # auth to GCR
$ gcloud auth print-access-token                              # print access token
$ gcloud auth print-refresh-token
$ gcloud auth <application-default> revoke                    # revoke credential

Bucket security#

$ gsutil -m acl set -R -a public-read gs://<bucket-name>/     # make readable
$ gsutil config -a                                            # config auth
$ gsutil iam ch user:denny@gmail.com:objectCreator,objectViewer gs://<bucket-name>
$ gsutil iam ch -d user:denny@gmail.com:objectCreator,objectViewer gs://<bucket-name>

Instance#

$ gcloud compute instances list
$ gcloud compute instance-templates list
$ gcloud compute instances describe "<name>" --project "<project>" --zone "us-west2-a"
$ gcloud compute instances stop instance-2
$ gcloud compute instances start instance-2
$ gcloud compute instances create vm1 --image image-1 --tags test --zone "<zone>" --machine-type f1-micro
$ gcloud compute ssh --project "<project>" --zone "<zone>" "<name>"
$ gcloud compute copy-files example-instance:~/REMOTE-DIR ~/LOCAL-DIR --zone us-central1-a
$ gcloud compute copy-files ~/LOCAL-FILE-1 example-instance:~/REMOTE-DIR --zone us-central1-a

Disks and volumes#

$ gcloud compute disks list
$ gcloud compute disk-types list
$ gcloud compute snapshots list
$ gcloud compute disks snapshot <disk> --snapshot-names <n1> --zone $zone

Network#

$ gcloud compute networks list
$ gcloud compute networks describe <network-name> --format json
$ gcloud compute networks create <network-name>
$ gcloud compute networks subnets create subnet1 --network net1 --range 10.5.4.0/24
$ gcloud compute addresses create --region us-west2-a vpn-1-static-ip
$ gcloud compute addresses list
$ gcloud compute addresses describe <ip-name> --region us-central1
$ gcloud compute routes list

DNS#

$ gcloud dns record-sets list --zone my_zone
$ gcloud dns record-sets list --zone my_zone --limit=10

Firewall#

$ gcloud compute firewall-rules list
$ gcloud compute forwarding-rules list
$ gcloud compute firewall-rules describe <rule>
$ gcloud compute firewall-rules create my-rule --network default --allow tcp:9200 tcp:3306
$ gcloud compute firewall-rules update default --network default --allow tcp:9200 tcp:9300

Images and containers#

$ gcloud compute images list
$ gcloud container clusters list
$ gcloud container clusters get-credentials <cluster-name>

RDS#

$ gcloud sql instances list

Services#

$ gcloud compute backend-services list
$ gcloud compute http-health-checks list
$ gcloud compute url-maps list

References#