Exploring Jenkins X and GitOps for Kubernetes
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
- Push code to Git
- Jenkins X builds and tests
- Creates preview environment
- Merges to master
- Promotes to staging
- 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!