august0490
august0490

Reputation: 884

Execute Skaffold deployment using Google Cloud Build?

I developed the yaml files for kubernetes and skaffold and the dockerfile. My deployment with Skaffold work well in my local machine.

Now I need to implement the same deployment in my k8s cluster in my Google Cloud project, triggered by new tags in a GitHub repository. I found that I have to use Google Cloud Build, but I don't know how to execute Skaffold from the cloudbuild.yaml file.

Upvotes: 1

Views: 1708

Answers (2)

Derrick Wong
Derrick Wong

Reputation: 36

You can use this image gcr.io/k8s-skaffold/skaffold

eg:

steps:
- name: 'gcr.io/k8s-skaffold/skaffold:v2.9.0'
  args: ['skaffold', 'build']

Upvotes: 0

g_lasso
g_lasso

Reputation: 161

There is a skaffold image in https://github.com/GoogleCloudPlatform/cloud-builders-community

To use it, follow the following steps:

  • Clone the repository
git clone https://github.com/GoogleCloudPlatform/cloud-builders-community
  • Go to the skaffold directory
cd cloud-builders-community/skaffold
  • Build the image:
gcloud builds submit --config cloudbuild.yaml .

Then, in your cloudbuild.yaml, you can add a step based on this one:

- id: 'Skaffold run'
  name: 'gcr.io/$PROJECT_ID/skaffold:alpha' # https://github.com/GoogleCloudPlatform/cloud-builders-community/tree/master/skaffold
  env:
  - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
  - 'CLOUDSDK_CONTAINER_CLUSTER=[YOUR_CLUSTER_NAME]'
  entrypoint: 'bash'
  args:
    - '-c'
    - |
      gcloud container clusters get-credentials [YOUR_CLUSTER_NAME] --region us-central1-a --project [YAOUR_PROJECT_NAME]
      if [ "$BRANCH_NAME" == "master" ]
      then
        skaffold run
      fi

Upvotes: 5

Related Questions