DEV Community

Cover image for Jenkins X Explained: Is It SaaS or VM-Based?
soumi
soumi

Posted on

Jenkins X Explained: Is It SaaS or VM-Based?

πŸš€ Jenkins X Explained: Is It SaaS or VM-Based?

As teams adopt Kubernetes and GitOps, traditional CI/CD tools often feel complex to manage.

This is where Jenkins X comes in β€” but one common question keeps coming up:

Is Jenkins X SaaS, or does it run on a VM like Jenkins?

Let’s answer that clearly.


πŸ” What Is Jenkins X?

Jenkins X is a cloud-native CI/CD platform designed specifically for Kubernetes-based applications.

Unlike classic Jenkins:

  • It follows GitOps by default
  • It automates environment promotion
  • It creates preview environments for every pull request

It’s opinionated β€” and intentionally so.


☁️ Is Jenkins X a SaaS?

No. Jenkins X is NOT a SaaS offering.

  • There is no hosted Jenkins X service
  • You must deploy and manage it yourself
  • It runs inside your Kubernetes cluster

If you’re looking for SaaS CI/CD, tools like GitHub Actions, GitLab CI, or CircleCI are better choices.


πŸ–₯️ Is Jenkins X VM-Based?

Not directly.

Jenkins X does not run like traditional Jenkins on a standalone VM.

Instead:

  • Jenkins X runs inside Kubernetes
  • Kubernetes itself may run on VMs (EKS, GKE, AKS, on-prem)

πŸ‘‰ Jenkins X is Kubernetes-native, not VM-first


🧱 Jenkins X Architecture (High Level)

  • Kubernetes (EKS / AKS / GKE / OpenShift)
  • Tekton Pipelines – CI/CD engine
  • Lighthouse – PR and webhook handler
  • GitOps Repositories – environment definitions
  • Helm – application deployment
  • Preview Environments – per pull request

All builds, tests, and deployments run as short-lived Kubernetes pods.


πŸ”„ How Jenkins X CI/CD Flow Works

  1. Developer opens a Pull Request
  2. Git webhook triggers Lighthouse
  3. Tekton Pipeline starts automatically
  4. Application is built and tested
  5. A preview environment is created
  6. Merge to main triggers GitOps-based promotion
  7. Kubernetes reconciles desired state

No plugin management.

No long-running build servers.


βš–οΈ Jenkins vs Jenkins X

Feature Jenkins Jenkins X
Deployment VM / Container Kubernetes
SaaS ❌ ❌
Pipeline Engine Jenkins (Groovy) Tekton
Configuration Jenkinsfile YAML + GitOps
Scaling Manual agents Auto-scaling pods
Preview Environments ❌ βœ…
Best For Traditional CI/CD Cloud-native CI/CD

βœ… When Should You Use Jenkins X?

Use Jenkins X if:

  • Your workloads run on Kubernetes
  • You follow GitOps practices
  • You want automated preview environments
  • You prefer opinionated automation

Avoid Jenkins X if:

  • You don’t use Kubernetes
  • You need heavy plugin customization
  • You want a managed SaaS CI/CD tool

πŸ”§ Real Jenkins X Pipeline YAML Example

In Jenkins X, pipelines are defined using Tekton YAML, usually generated and managed by Jenkins X, but you can customize or understand them directly.

πŸ“ File: .lighthouse/jenkins-x/release.yaml

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: release
  labels:
    jenkins.io/pipelineType: build
spec:
  workspaces:
    - name: source
  params:
    - name: version
      type: string
      description: Application version
  tasks:
    - name: clone-repo
      taskRef:
        name: git-clone
      workspaces:
        - name: output
          workspace: source`

    - name: run-tests
      runAfter:
        - clone-repo
      taskSpec:
        workspaces:
          - name: source
        steps:
          - name: test
            image: node:18
            workingDir: $(workspaces.source.path)
            script: |
              npm install
              npm test

    - name: build-image
      runAfter:
        - run-tests
      taskRef:
        name: kaniko
      params:
        - name: IMAGE
          value: myrepo/myapp:$(params.version)
      workspaces:
        - name: source
          workspace: source

    - name: deploy
      runAfter:
        - build-image
      taskSpec:
        steps:
          - name: helm-deploy
            image: alpine/helm:3.14.0
            script: |
              helm upgrade --install myapp charts/myapp \
                --set image.tag=$(params.version)
Enter fullscreen mode Exit fullscreen mode

`

πŸ” What This Pipeline Does
Step Purpose
git-clone Pulls source code from Git
run-tests Runs application unit tests
build-image Builds and pushes container image using Kaniko
deploy Deploys application using Helm

βœ” Runs fully inside Kubernetes
βœ” Each task executes in its own pod
βœ” No Jenkins agents or executors

🚦 How Jenkins X Triggers This Pipeline

You don’t manually start pipelines in Jenkins X.

Instead:

Pull Requests β†’ trigger preview pipelines

Merge to main β†’ triggers release pipeline

Promotion β†’ happens via GitOps repo changes

Triggering is handled by Lighthouse, not Jenkins jobs.

🧠 Final Thoughts

Jenkins X is neither SaaS nor VM-based.

It is a Kubernetes-native CI/CD platform built for modern DevOps teams.

If Jenkins feels like CI you manage,

Jenkins X feels like CI/CD that manages itself.


Thanks for reading!

If this helped you, feel free to share or drop your thoughts in the comments.

Top comments (0)