Cloud Computing, DevOps

5 Mins Read

The Complete Guide to Deploying Jenkins on Kubernetes with Helm

Voiced by Amazon Polly

Introduction

Jenkins has been a cornerstone of CI/CD pipelines for DevOps engineers for over a decade. Even with the rise of managed CI platforms, Jenkins continues to power mission-critical automation workflows due to its flexibility, extensibility, and massive plugin ecosystem.

As organizations increasingly adopt Kubernetes for running production workloads, deploying Jenkins on traditional virtual machines introduces scalability, availability, and maintenance challenges. Kubernetes solves many of these problems, but only if Jenkins itself is deployed correctly.

This blog explores how DevOps engineers can deploy, configure, and manage Jenkins on Kubernetes using Helm, enabling a repeatable, scalable, and production-ready CI/CD platform. We’ll also cover best practices, common pitfalls, and security considerations to ensure your Jenkins deployment aligns with modern DevOps standards.

Pioneers in Cloud Consulting & Migration Services

  • Reduced infrastructural costs
  • Accelerated application deployment
Get Started

Why Run Jenkins on Kubernetes?

Running Jenkins on Kubernetes offers multiple operational advantages compared to VM-based deployments:

  • High Availability: Kubernetes automatically restarts failed Jenkins pods.
  • Scalability: Jenkins agents can be dynamically created as Kubernetes pods.
  • Resource Efficiency: Containers use resources more efficiently than long-running VMs.
  • Declarative Management: Jenkins infrastructure can be defined as code.

However, manually deploying Jenkins using raw Kubernetes manifests can quickly become complex and error-prone. This is where Helm becomes essential.

What Is Helm and Why Use It for Jenkins?

Helm is Kubernetes’ package manager that simplifies application deployment using reusable templates called charts.

Using Helm for Jenkins deployment provides several benefits:

  • Consistency across environments (dev, QA, prod)
  • Centralised configuration through a single values.yaml file
  • Simplified upgrades and rollbacks
  • GitOps compatibility
  • Reduced manual configuration errors

For DevOps teams managing multiple clusters, Helm dramatically reduces operational overhead.

Prerequisites

Before deploying Jenkins using Helm, ensure the following prerequisites are met:

  • A running Kubernetes cluster
  • kubectl configured with cluster access
  • Helm v3 or later installed
  • Cluster permissions to create namespaces, services, and persistent volumes

Step 1: Adding the Jenkins Helm Repository

The first step is to add the official Jenkins Helm chart repository and update the local index:

step1

This ensures you’re working with the latest and officially maintained Jenkins chart.

Step 2: Configuring Jenkins using values.yaml

Helm allows you to customise Jenkins behaviour using a configuration file called values.yaml. This file acts as the single source of truth for your Jenkins deployment.

Key Configuration Areas

  1. Admin Credentials: Define the Jenkins admin username and password during deployment to avoid manual unlocking steps.
  2. Service Exposure

Choose how Jenkins should be exposed:

  • NodePort – suitable for non-production or lab environments
  • LoadBalancer – recommended for production on cloud platforms
  • Ingress – ideal for domain-based access with TLS
  1. Persistent Storage: Enable persistent volumes to ensure Jenkins data (jobs, configs, plugins) survives pod restarts.
  2. Resource Allocation: Set CPU and memory requests and limits to prevent performance bottlenecks or pod evictions.
  3. Plugin Installation: Pre-define Jenkins plugins to ensure consistency across environments and reduce manual setup.

Step 3: Installing Jenkins Using Helm

Once the values.yaml file is ready, Jenkins can be deployed using a single command:

step3

step3b

This command:

  • Creates a dedicated Jenkins namespace
  • Deploys the Jenkins controller

step3c

  • Installs required plugins
  • Applies persistence and service configurations

Within a few minutes, Jenkins will be up and running.

Step 4: Verifying the Jenkins Deployment

Check whether the Jenkins pod is running:

step4

Next, verify the service configuration:

Depending on the service type, note the NodePort, external IP, or ingress hostname.

Step 5: Accessing the Jenkins UI

You can access Jenkins using one of the following methods:

Since admin credentials are already defined in values.yaml, there is no need to retrieve the initial admin password manually.

Automating Jenkins Plugin Management

Managing Jenkins plugins manually often leads to plugin drift, where different environments run different plugin versions. This causes inconsistent pipeline behavior and hard-to-debug failures.

Helm solves this by allowing plugins to be declared upfront in the values.yaml file. Jenkins installs the required plugins automatically during startup, ensuring consistency across deployments.

Key benefits include:

  • Consistent Jenkins behavior across all environments
  • Faster recovery during cluster rebuilds or failures
  • Elimination of manual UI-based plugin installation
  • Automated plugin management improves reliability, simplifies upgrades, and makes Jenkins deployments reproducible and easier to maintain.

GitOps-Ready Jenkins Deployment

In modern DevOps setups, Jenkins should be managed as infrastructure-as-code rather than a manually configured tool. GitOps enables this by using Git as the single source of truth.

gitops

A GitOps-aligned Jenkins deployment typically involves:

  • Storing values.yaml in Git
  • Deploying Jenkins using tools like Argo CD or Flux
  • Managing changes through pull requests
  • Rolling back changes using Git history

This approach ensures Jenkins follows the same DevOps principles it enforces, automation, consistency, traceability, and reliability, making it scalable and easier to manage across environments.

Security Best Practices for Jenkins on Kubernetes

To secure Jenkins deployments:

  • Store credentials in Kubernetes Secrets
  • Enable HTTPS using Ingress and TLS
  • Restrict access using Kubernetes RBAC
  • Limit plugin usage to trusted sources
  • Regularly update Jenkins and plugins

Given Jenkins’ access to production systems, security should always be a top priority.

Conclusion

Deploying Jenkins on Kubernetes using Helm provides a clean, scalable, and production-ready CI/CD foundation for DevOps teams.

By leveraging Helm charts, declarative configuration, and GitOps practices, teams can eliminate manual setup, reduce configuration drift, and align Jenkins with cloud-native operational models.

Whether you are setting up Jenkins for the first time or standardizing deployments across multiple clusters, a Helm driven approach ensures reliability, scalability, and long-term maintainability.

Drop a query if you have any questions regarding Jenkins and we will get back to you quickly

Empowering organizations to become ‘data driven’ enterprises with our Cloud experts.

  • Reduced infrastructure costs
  • Timely data-driven decisions
Get Started

About CloudThat

CloudThat is an award-winning company and the first in India to offer cloud training and consulting services worldwide. As a Microsoft Solutions Partner, AWS Advanced Tier Training Partner, and Google Cloud Platform Partner, CloudThat has empowered over 850,000 professionals through 600+ cloud certifications winning global recognition for its training excellence including 20 MCT Trainers in Microsoft’s Global Top 100 and an impressive 12 awards in the last 8 years. CloudThat specializes in Cloud Migration, Data Platforms, DevOps, IoT, and cutting-edge technologies like Gen AI & AI/ML. It has delivered over 500 consulting projects for 250+ organizations in 30+ countries as it continues to empower professionals and enterprises to thrive in the digital-first world.

FAQs

1. Why should Jenkins be deployed on Kubernetes?

ANS: – Kubernetes provides scalability, resilience, and better resource utilization compared to traditional VM-based Jenkins deployments.

2. Why is Helm preferred for Jenkins deployment?

ANS: – Helm enables repeatable, configurable, and version-controlled Jenkins deployments using a single configuration file.

3. Is Helm-based Jenkins suitable for production?

ANS: – Yes. With proper persistence, resource limits, security controls, and monitoring, Helm-based Jenkins is production-ready.

WRITTEN BY Sidda Sonali

Sidda Sonali is a Research Associate at CloudThat with a strong passion for DevOps and cloud-native technologies. She is committed to mastering modern DevOps practices and staying abreast of the latest advancements in cloud services. Sonali has hands-on experience with tools such as Terraform, Amazon EKS, Kubernetes, and Docker, and is proficient in implementing CI/CD pipelines, managing Infrastructure as Code (IaC), and automating cloud deployments. Her expertise extends to container orchestration, deployment automation, and building secure, scalable infrastructures across diverse cloud environments.

Share

Comments

    Click to Comment

Get The Most Out Of Us

Our support doesn't end here. We have monthly newsletters, study guides, practice questions, and more to assist you in upgrading your cloud career. Subscribe to get them all!