Use Codefresh GKE plugin to create GKE Kubernetes cluster for integration tests
- set GOOGLE_SERVICE_ACCOUNT_KEY to the Google Service Account Key value
- Service account should have enough permissions to create and operate GKE Cluster: Kubernetes Engine Admin or subset of privileges from GKE Developer+clusterAdmin
-
GOOGLE_SERVICE_ACCOUNT_KEY - Google Service Account Key value, mandatory
-
CLOUDSDK_COMPUTE_ZONE - one of valid Google Compute zones - see https://cloud.google.com/compute/docs/regions-zones/
-
CLOUDSDK_COMPUTE_REGION - one of valid Google Compute regions. If both CLOUDSDK_COMPUTE_ZONE and CLOUDSDK_COMPUTE_REGION are not set, default is us-central1
-
GKE_CLUSTER_NAME - name of gke cluster to create
-
Codefresh variables: https://docs.codefresh.io/docs/variables
-
gke-create
- creates GKE cluster on Google Cloud project defined by GOOGLE_SERVICE_ACCOUNT_KEYgcloud container clusters create <GKE_CLUSTER_NAME> <optional parameters>
- sets kubectl current context to the newly created cluster for futher pipeline steps
-
gke-delete
- deletes GKE Cluster by name on Google Cloud project defined by GOOGLE_SERVICE_ACCOUNT_KEY -
kubectl
- you can use it to operate on the created cluster -
gcloud
--zone=<zone>
or --region=<region>
parameters are mandatory for gcloud container clusters ...
commands
By default we are using default zone of us-central1 region
You can change it by specifying yours --zone= | --region=
or using CLOUDSDK_COMPUTE_ZONE | CLOUDSDK_COMPUTE_ZONE
env vars
If you specified --zone= | --region=
for gke-create
you must specify the same zone/region parameters for gke-delete
Set the environment variables and add the following step to your Codefresh pipeline:
---
version: '1.0'
steps:
#
create-cluster:
image: codefreshplugins/plugin-gke
commands:
- gke-create gke-test-cluster-1 --zone=us-central1-a --num-nodes 2 --machine-type n1-standard-2
deploy-my-service:
image: codefreshplugins/plugin-gke
commands:
- kubectl get pods --all-namespaces -owide
# - deploy.sh
# - kubectl run --image mytestimage
# - check-status.sh
clean:
image: codefreshplugins/plugin-gke
commands:
- gke-delete gke-test-cluster-1 --zone=us-central1-a