Contributed by James Strachan | originally posted on jenkins-x.io
I’m super excited to announce the 3.0 GA (General Availability) release of Jenkins X!
Jenkins X automates your CI/CD on Kubernetes to help you accelerate:
- Automated CI/CD pipelines let you focus on your actual application code while Jenkins X automatically creates battle-tested Tekton CI/CD pipelines for your project which are managed via GitOps so that it’s super easy to keep your pipelines up to date across your repositories or to upgrade or override pipelines or steps for specific repositories.
- Automatic promotion of versioned artifacts via GitOps through your Environments such as Staging, Pre-production and Production whether they are running in the same Kubernetes cluster or you are using multiple clusters for your environments
- Preview Environments lets you propose code changes via Pull Requests and have a Preview Environment automatically created, running your code in Kubernetes to get fast feedback from your team before agreeing to merge changes to the main branch
- ChatOps comment on Pull Requests to give feedback, approve/hold changes, trigger optional pipelines for additional testing and other ChatOps commands
Demo
Here’s a demo of how to develop code with Jenkins X
Documentation
the main documentation of the changes are:
- the new architecture with modular plugins and improved extension points
- what has changed since 3.x started
- how 3.x compares to 2.x
- DevOps Guides and DevOps Patterns provides an overview of our learnings in the DevOps space
here’s a brief summary of the differences:
Changes since the 3.x beta
The following improvements have been made since the first beta:
- Integrated observability and monitoring with Pipeline Tracing
- Autoscale preview environments with Osiris
- Enable auto-upgrade to keep your cluster up to date
User Changes since 2.x
As a user the high-level UX of Jenkins X is similar:
- automated Continuous Delivery pipelines for using Tekton for your repositories with automatic promotion between your environments
- pull requests on your repositories create separate Preview Environments where your team can review your changes and give fast feedback before your changes are approved and merged into the main trunk.
New features
- we now default to vanilla Tekton YAML for defining pipelines while accelerating your Tekton with Tekton catalog
- we include an open-source dashboard for visualising pipelines and logs which you can invoke via:
jx dash
Copy
- we have a full Kubernetes and Jenkins X console based on the excellent octant which you can try out via:
jx ui
Platform Changes
- we now use helm (3.x) and helmfile along with optionally kustomize in a GitOps style to define and configure both Jenkins X itself, your tools and applications in any namespace
- support Multi-Cluster out of the box so you can keep Staging and Production in separate clusters to your development cluster where your pipelines run, you create and release immutable container images and other artifacts.
- to setup or upgrade Jenkins X we use terraform to set up your cloud resources on Azure, Amazon or Google while also supporting on-premise, minkube and OpenShift – see the Admin Guides for more detail
- the actual installation of Kubernetes resources takes place using the git operator so it runs reliably inside the cluster itself
- we default to using Kubernetes External Secrets to manage all secrets for Jenkins X itself, development tools and your applications too.
- This means we can support various secret backends such as Alibaba Cloud KMS Secret Manager, Amazon Secret Manager, Azure Key Vault, Hashicorp Vault or GCP Secret Manager
- It also means we can then check in all Kubernetes resources and custom resources directly into git (apart from Kubernetes Secrets) so that it super easy to version, review and reason about your Kubernetes resources in a GitOps way.
- built-in TLS and DNS support along with Heath reporting and visualising via kuberhealthy
- we now have an LTS distribution which lets you switch to a much slower cadence of releases of Jenkins X
We have been using Jenkins X 3.x in production now for many months (for CI/CD of all of the 3.x codebase and continuously upgrading our cluster in the standard way and it’s been much simpler and easier to use, operate and configure.
We have also been continuously delivering changes from Jenkins X into our production cluster for many months now and it’s been working great – GitOps FTW!
In general Jenkins X 3.x is now much simpler and more flexible. It supports lots more platforms than before and should be easy to extend and configure for other platforms too:
Getting started
If you have never tried Jenkins X 3.x before then please follow the Admin Guide to get Jenkins X installed on your cloud provider, on-premise Kubernetes cluster or minikube.
If you previously tried the 3.x alpha then the migration instructions are here.
For folks on older 2.x versions of Jenkins X please see the 2.x migration instructions
Once your cluster has been installed or migrated then check out the User Guide on how to develop software continuously with Jenkins X.
Final thoughts
A huge thanks goes out to all the contributors, folks in the Jenkins X community and the community around all the open-source projects we reuse who’ve helped get this beta together. The improvements in Jenkins X 3.x since 2.x are totally amazing, well done everyone!
Please give Jenkins X a try and let us know what you think or raise an issue. All feedback is highly appreciated – particularly how we can keep improving to help you develop faster.
If you are at all interested in Continuous Delivery with Kubernetes using tools like helm, helmfile, knative, lighthouse and last but definitely not least, Tekton then please join the community – it’s great fun!
For any questions and feedback please reach out on slack: https://jenkins-x.io/community/#slack