Install Jenkins on Kubernetes with Helm

This guide walks you through installing Jenkins in a Kubernetes cluster using Helm, with:

  • A pre-created PersistentVolumeClaim (PVC)
  • Custom admin credentials
  • Traefik Ingress for public access
  • Persistent data even after reinstallation

Prerequisites

  • Kubernetes cluster (self-managed or on AWS EC2)
  • helm and kubectl installed
  • Traefik and StorageClass (e.g., ebs-sc) already set up
  • DNS pointing jenkins.maksonlee.com to your cluster
  • Namespace jenkins not yet used

  1. Create a PersistentVolumeClaim

Save this as jenkins-pvc.yaml:

# jenkins-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-pvc
  namespace: jenkins
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  storageClassName: ebs-sc

Apply it:

kubectl create namespace jenkins
kubectl apply -f jenkins-pvc.yaml

  1. Prepare Helm values.yaml

Save this as jenkins-values.yaml:

controller:
  initializeOnce: true

  admin:
    username: "admin"
    password: "admin123"
    createSecret: true

  additionalPlugins:
    - credentials-binding
    - cloudbees-folder

  ingress:
    enabled: true
    annotations:
      traefik.ingress.kubernetes.io/router.entrypoints: websecure
      traefik.ingress.kubernetes.io/router.tls: "true"
      traefik.ingress.kubernetes.io/router.tls.certresolver: dns
    hostName: jenkins.maksonlee.com
    tls:
      - hosts:
          - jenkins.maksonlee.com

persistence:
  existingClaim: jenkins-pvc

  1. Install Jenkins via Helm

Add the Jenkins chart repo:

helm repo add jenkins https://charts.jenkins.io
helm repo update

Install:

helm install jenkins jenkins/jenkins \
  -n jenkins \
  -f jenkins-values.yaml

  1. Access Jenkins

Once deployed, visit: https://jenkins.maksonlee.com


  1. Reinstall Without Data Loss

If you uninstall Jenkins:

helm uninstall jenkins -n jenkins

Your PVC (jenkins-pvc) will still remain. Reinstall using the same steps to retain all your data.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top