cloudposse/jenkins

Chart version: 0.1.2
Api version: v1
App version: n/a
A Jenkins Helm chart for Kubernetes
application
Chart Type
Active
Status
Unknown
License
578
Downloads
https://charts.cloudposse.com/incubator
Set me up:
helm repo add center https://repo.chartcenter.io
Install Chart:
helm install jenkins center/cloudposse/jenkins
Versions (0)

Jenkins Helm Chart

Jenkins master and slave cluster utilizing the Jenkins Kubernetes plugin

Credit

This Chart was forked from https://github.com/kubernetes/charts/blob/master/stable/jenkins/ in order to provide the Cloud Posse flavor of CI/CD for Kubernetes. It’s based largely on the effort of Lachlan Evenson, Vic Iglesias to produce the original Chart, who were inspired by the awesome work of Carlos Sanchez carlos@apache.org.

Chart Details

This chart will do the following:

  • 1 x Jenkins Master with port 8080 exposed on an external LoadBalancer
  • All using Kubernetes Deployments

Installing the Chart

To install the chart with the release name my-release:

$ helm install --name my-release cloudposse-incubator/jenkins

Configuration

The following tables lists the configurable parameters of the Jenkins chart and their default values.

Jenkins Master

Parameter Description Default
Master.Name Jenkins master name jenkins-master
Master.Image Master image name cloudposse/jenkins
Master.ImageTag Master image tag v0.1.0
Master.ImagePullPolicy Master image pull policy Always
Master.Component k8s selector key jenkins-master
Master.Cpu Master requested cpu 200m
Master.Memory Master requested memory 256Mi
Master.ServicePort k8s service port 8080
Master.ContainerPort Master listening port 8080
Master.SlaveListenerPort Listening port for agents 50000

Jenkins Agent

Parameter Description Default
Agent.Image Agent image name jenkinsci/cloudposse-slave
Agent.ImageTag Agent image tag 2.52
Agent.ImagePullPolicy Agent image pull policy Always
Agent.Cpu Agent requested cpu 200m
Agent.Memory Agent requested memory 256Mi

Github OAuth

Parameter Description Default
Github.OAuth.ClientID GitHub OAuth Client ID REQUIRED
Github.OAuth.ClientSecret GitHub OAuth Client Secret REQUIRED
Github.Organization Github Organization REQUIRED
Github.Admins Github Usernames for Jenkins Admin REQUIRED

Ingress

Parameter Description Default
DNS.Hostname Hostname to associate with Service REQUIRED
DNS.TTL Time-to-Live 300
DNS.Type Resource Record Type CNAME

Specify each parameter using the --set key=value[,key=value] argument to helm install.

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

$ helm install --name my-release -f values.yaml stable/jenkins

Tip: You can use the default values.yaml

Persistence

The Jenkins image stores persistence under /var/jenkins_home path of the container. A Persistent Volume Claim is used to keep the data across deployments. This is known to work in GCE, AWS, and minikube.

Todo

  • Enable Docker-in-Docker or Docker-on-Docker support on the Jenkins agents