Changes

The change log for Jenkins X 3.x

You may also find the Roadmap and Maturity Matrix documents useful:

Breaking Changes

updatebot WARNING: no $GIT_SECRET_MOUNT_PATH environment variable set                      
updatebot error: failed to setup git: failed to clone the cluster git URL: failed to clone cluster git repository https://github.com/myorg/myrepo.git: failed to clone cluster git repo https://github.com/
updatebot fatal: could not read Username for 'https://github.com': No such device or address
  • you can fix this by following the workarounds on this issue which should get you past this and working auto upgrade jobs again

  • we now default to using Ingress v1 which was introduced in kubernetes 1.19. The v1beta1 version of Ingress has been deprecated since 1.14 and is removed in 1.22. If you are on 1.18 of kubernetes you could upgrade to 1.19 or later. Otherwise you can configure your cluster to keep on v1beta1 if you want until you can move forwards to 1.19 or later.

  • the new tekton version (0.20.x) now requires kubernetes 1.17 or later. If your cluster is older and you are using the cloud just upgrade your kubernetes version before upgrading your cluster. Otherwise you may want to explicitly override your tekton-pipeline version to pin it at 0.19.1 instead in your helmfiles/tekton-pipelines/helmfile.yaml file

  • if you are upgrading from an alpha cluster you may have vault installed in the secret-infra namespace. check out the FAQ on vault in the wrong namespace for how to upgrade.

Changes

  • we have a new jx pipeline grid command to easily view whats happening in your cluster on the CLI in a similar way to the Octant Console or Dashboard

  • The reference guide now has a full Command Line Reference for browsing the command line of the various Jenkins X Plugins

  • There is now support for automatic upgrades where a Pull Request is automatically generated on your development cluster repository to upgrade the versions of charts in your installation. You can define the upgrade schedule and whether or not the Pull Request is auto merged or requires a manual approval/merge.

  • A preview can fail to create for a multitude of reasons; bad helm charts, missing secrets/volumes, invalid configuration in jx-requirements.yml, bad image names, no capacity on the server to name but a few. Unfortunately helmfile sync does not give much information other than it succeeded of failed.

    • to improve feedback on why some previews can fail we have added additional output in the jx preview create command to tail the kubernetes events in the preview namespace. This basically runs kubectl exec get event -n $PREVIEW_NAMESPACE -w and adds the output to the pipeline output (prefixed with $PREVIEW_NAMESPACE:
    • this means the reason for why a preview fails should appear as a kubernetes event in the pipeline log
  • we have a shiny new Slack bot for Jenkins X to help notify developers of failing pipelines

  • its now much easier to write system tests against Preview Environments so it’s easier to test images and charts function as you expect inside a Pull Request before you are happy to merge the work for faster feedback

  • check out the new DevOps, GitOps and Cloud Native documentation we’re putting together based on the learnings of continuously deliverying Jenkins X with Jenkins X.

  • new clusters created using Terraform that use Vault will be using the jx-vault namespace to setup Vault (so that its managed by Terraform)

  • you can now use jx pipeline convert to convert any old pipelines across to the latest concise syntax

  • we have an awesome new syntax to help share pipelines across git repositories that makes it easier to simplify the pipelines in each repository while keeping things vanilla Tekton YAML and letting you override and customise anything anywhere

  • the boot job now upgrades the docs folder to show what charts and versions are deployed in each namespace. You can view the docs folder in your own git repositories once you’ve upgraded your cluster

  • We now use multiple helmfiles per namespace so its easier to understand the organisation of your charts across namespaces

  • The 3.0 beta is almost ready so if you have been using the 3.0 alpha we now have a migration guide to smooth your transition to the beta

  • You can now easily open the Octant Console or Pipeline Dashboard via 2 easy commands:

jx ui
jx dash
  • We now have Tekton Catalog integration so that you can:

  • We have migrated most of the Jenkins X Plugins over to the new client-go 1.19.x version now which is a fairly major change due to the API changes in client-go. So we’ve moved many of the libraries over to use v3 instead such as using libraries like jx-api or jx-helpers

    • if you were planning on submitting a Pull Request on any plugin please make sure you rebase before submitting a Pull Request. Also upgrade to go 1.15.2 ASAP
  • New Maturity Matrix published! You can now view at a glance the different capabilities across clouds and infrastructure. Many thanks Nitin for all your hard work

  • Preview environments now use helmfile as a declarative way to describe all of the dependencies you need in your preview environment.

    • This is all handled by the new jx-preview plugin
    • This also opens up the possibility of using multiple namespaces per preview; or using canary releases on multiple previews into a shared environment.
  • The new Jenkins X version 3 CLI jx is now plugins all the way down; so that all of the features are implemented by separate binary plugins making the CLI more modular and easier to work on.