WIP - Juju 2.6 rc1 Release Notes

The Juju team is pleased to announce the release of Juju 2.6-rc1.

This is expected to be the only release candidate prior to the release of 2.6.0, unless any show stopper bugs are found.

Noteworthy changes

k8s charm enhancements - controlling deployment type

Kubernetes support within Juju continues to strengthen. k8s charms now have the ability to specify the type of deployment: stateful or stateless:

Setting Description
stateful use a k8s StatefulSet to manage the pods
stateless use a k8s DeploymentController to manage the pods

Previously, charms with storage used a StatefulSet because they needed a stable network identity, whereas other charms were always deployed using a DeploymentController. However, this can prove problematic in circumstances where the charm (or the reactive layers it imports) does not rely on application data via leader settings to store state, since pod restarts result in a new Juju unit and the removal of the old one.

As well as deployment type, charms can also specify service type (this can be overridden at deploy time using the kubernetes-service-type config option). The default service type is cluster if not otherwise specified.

There new charm metadata that can be used within k8s charms:

  type: stateless | stateful
  service: cluster | loadbalancer | external

The default deployment type is stateless. Charms which declare storage would need to also say they want a stateful deployment or else we’ll error early. A charm is free to say it wants a stateful deployment even without storage being required.

Deletion of stuck models, machines, applications, units

This was mostly delivered in beta2 but in this rc there’s been some bug fixes and final polish applied:

  • the --no-wait option is fully implemented on commands which support it.
  • destroy-model now accepts the --force and no-wait arguments.

The Juju commands which accept --force and --no-wait (if applicable) arguments are:

  • destroy-model
  • remove-application
  • remove-machine
  • remove-relation
  • remove-unit
  • remove-offer
  • remove-storage
  • detach-storage

There are some small features which will miss this release and be deferred till 2.6.1:

  • surfacing of errors encountered during a forced removal
  • stopped cloud instances are not properly cleaned up

All changes and fixes

Every change and fix to this release is tracked on a per-bug basis on Launchpad.

The most important fixes are listed below:

  • LP #1825500 - Configuration changes do not propagate correctly with HA enabled

All bugs corresponding to changes and fixes to this release are listed on the 2.6-rc1 milestone page.

Known issues

  • the user needs to specify the host cloud / region when using add-k8s with CDK deployments

Install Juju

Install Juju using the snap:

sudo snap install juju --channel 2.6/candidate --classic

Those users already using the ‘stable’ snap channel and who have previously installed an earlier beta should be upgraded automatically. Other packages are available for a variety of platforms (see the install documentation).

Feedback Appreciated

Let us know how you’re using Juju or of any questions you may have. You can join us on Discourse, send us a message on Twitter (hashtag #jujucharms), or talk to us in the #juju channel on Freenode.

Should this be the candidate channel for RC?