Documentation Index Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
After configuring our cloudbuild.yaml to build, push, and deploy the Docker image to a GKE cluster via gke.yaml, we can automate the entire CI/CD workflow with a Cloud Build trigger. Once this file is committed to GitHub, the pipeline performs the following steps:
Step Builder Purpose 1 gcr.io/cloud-builders/docker Build the container image 2 gcr.io/cloud-builders/docker Push the image to Container Registry 3 gcr.io/cloud-builders/gke-deploy Deploy the image to our GKE cluster
steps :
- name : "gcr.io/cloud-builders/docker"
args :
- "build"
- "-t"
- "gcr.io/$PROJECT_ID/gcpdevops"
- "."
- name : "gcr.io/cloud-builders/docker"
args :
- "push"
- "gcr.io/$PROJECT_ID/gcpdevops"
- name : "gcr.io/cloud-builders/gke-deploy"
args :
- run
- --filename=gke.yaml
- --image=gcr.io/$PROJECT_ID/gcpdevops
- --location=us-central1-c
- --cluster=gke-gcp-devops
- --namespace=gcp-devops-prod
Commit, Push, and Open a Pull Request
Use the following commands to stage, commit, and push your changes:
git add cloudbuild.yaml gke.yaml
git commit -m "Update deployment code"
git push origin < branch-nam e >
Then, navigate to GitHub, select your feature branch, and click Contribute → Open pull request . After reviewing the diff, click Create pull request and then Merge .
Monitoring the Build in Google Cloud Console
Once merged into main, the configured Cloud Build trigger executes our pipeline. Monitor progress under Cloud Build → History :
Step #0: Downloading MarkupSafe-2.1.2...
Step #0: Successfully installed ...
Step #1: Pushing layers...
Step #0: Built 83c1e572684d
Step #0: Tagged gcr.io/kodekloud-gcp-training/gcpdevops:latest
...
The deployment step failed because the specified GKE cluster name does not exist. Always verify that --cluster matches your actual cluster in the correct zone or region.
Inspecting the logs reveals an IAM binding that references a non-existent cluster:
gcloud projects add-iam-policy-binding kodekloud-gcp-training \
--member=serviceAccount:248675367976-compute@cloudbuild.gserviceaccount.com \
--role=roles/container.developer
ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=404, message=Not found: projects/kodekloud-gcp-training/zones/us-central1-c/clusters/gke-gcp-devops.
Verifying Your GKE Clusters
Check your actual cluster names and locations in the Kubernetes Engine section:
If you need to list clusters via the CLI, use: gcloud container clusters list --zone us-central1-c
Correcting the Cluster Reference
Update the cloudbuild.yaml to use the correct cluster name:
steps :
- name : "gcr.io/cloud-builders/docker"
args : [ "build" , "-t" , "gcr.io/$PROJECT_ID/gcpdevops" , "." ]
- name : "gcr.io/cloud-builders/docker"
args : [ "push" , "gcr.io/$PROJECT_ID/gcpdevops" ]
- name : "gcr.io/cloud-builders/gke-deploy"
args :
- run
- --filename=gke.yaml
- --image=gcr.io/$PROJECT_ID/gcpdevops
- --location=us-central1-c
- --cluster=gcp-devops-project
- --namespace=gcp-devops-prod
After committing and merging these changes, the deployment will succeed.
Links and References