Skip to content

DevSecOpsSamples/gke-jenkins

Repository files navigation

Jenkins on GKE

Build Quality Gate Status Lines of Code

Overview

Build Jenkins with plugins on GKE. Refer to the Pipelines with podTemplate in https://github.com/DevSecOpsSamples/jenkins-pipeline.

Prerequisites

Installation

Set environment variables

COMPUTE_ZONE="us-central1"
PROJECT_ID="sample-project" # replace with your project

Set GCP project

gcloud config set project ${PROJECT_ID}
gcloud config set compute/zone ${COMPUTE_ZONE}

Step1: Create a GKE cluster

Create an Autopilot GKE cluster. It may take around 9 minutes.

gcloud container clusters create-auto jenkins-dev --region=${COMPUTE_ZONE}
gcloud container clusters get-credentials jenkins-dev

Step2: Deploy jenkins-master

Create and deploy K8s Deployment, Service, Volume, Ingress, and GKE BackendConfig using a template file.

sed -e "s|<project-id>|${PROJECT_ID}|g" jenkins-master-template.yaml > jenkins-master.yaml
cat jenkins-master.yaml

kubectl apply -f jenkins-master.yaml

Confirm Jenkins credential from logs:

kubectl describe pods jenkins-master
kubectl logs -l app=jenkins-master

Connect to Jenkins

LB_IP_ADDRESS=$(gcloud compute forwarding-rules list | grep jenkins-master | awk '{ print $2 }')
echo ${LB_IP_ADDRESS}
curl http://${LB_IP_ADDRESS}/

Cleanup

kubectl delete -f jenkins-master.yaml
docker system prune -a

References