We evaluated Jenkins X for our Kubernetes deployments. Here’s what we found.

What is Jenkins X?

Jenkins X is CI/CD for Kubernetes with GitOps workflow:

  • Automated pipelines
  • Preview environments
  • GitOps deployment
  • Built-in best practices

Installation

# Install jx CLI
brew install jenkins-x/jx/jx

# Create cluster with Jenkins X
jx create cluster gke --cluster-name=jx-cluster

GitOps Workflow

  1. Push code to Git
  2. Jenkins X builds and tests
  3. Creates preview environment
  4. Merges to master
  5. Promotes to staging
  6. Manual promotion to production

All controlled via Git.

Preview Environments

For every PR, Jenkins X creates a preview environment:

# Automatically created
https://pr-123.staging.example.com

Test changes before merging!

Promotion

# Promote to staging (automatic)
jx promote myapp --version 1.0.0 --env staging

# Promote to production (manual)
jx promote myapp --version 1.0.0 --env production

What We Like

  • Automated preview environments
  • GitOps workflow
  • Built-in best practices
  • Good for greenfield projects

What We Don’t Like

  • Opinionated (hard to customize)
  • Complex setup
  • Steep learning curve
  • Not mature enough for us

Our Decision

Sticking with our current Jenkins + Helm setup. Jenkins X is interesting but too opinionated for our needs.

Will revisit in 6-12 months.

Questions? Ask away!