Juju 2.7.2 Release Notes

The Juju team is proud to release Juju 2.7.2!

This is primarily a bug fix release of the stable 2.7 channel., with some additional useful tweaks.

20.04 focal support

It’s now possible to bootstrap and deploy workloads to 20.04 focal images.
Because focal is not yet officially released, you’ll need to use --force when bootstrapping or deploying charms.
Images may not yet be available for all clouds, and you will need to set the model config attribute image-stream to daily, eg for LXD:

juju bootstrap lxd --bootstrap-series focal --model-default image-stream=daily --force

Kubernetes improvements

Cluster scoped custom resources

Custom resource definitions can now be defined to create Cluster scoped resources - previously this was forbidden.

Webhook resources

Charms can now ask to create webhook resources. Add YAML like this to the k8s specific YAML passed to Juju via pod-spec-set:

kubernetesResources:
  mutatingWebhookConfigurations:
    example-mutatingwebhookconfiguration:
      - name: "example.mutatingwebhookconfiguration.com"
        failurePolicy: Ignore
        clientConfig:
          service:
            name: apple-service
            namespace: apples
            path: /apple
          caBundle: "YXBwbGVz"
        namespaceSelector:
          matchExpressions:
          - key: production
            operator: DoesNotExist
        rules:
        - apiGroups:
          - ""
          apiVersions:
          - v1
          operations:
          - CREATE
          - UPDATE
          resources:
          - pods

Controller health check endpoint

The controller has a new health endpoint that returns 200 for a healthy controller and 503 otherwise.

curl -ik https://<controller-ip>:17070/health
HTTP/1.1 200 OK
Date: Mon, 13 Jan 2020 03:28:10 GMT
Content-Length: 8
Content-Type: text/plain; charset=utf-8

vSphere improvements

Users without cluster admin rights can now deploy to vSphere environments. There are 2 key improvements to allow this:

  • there’s no need for the user to have read access across the cluster
  • a new credential attribute vmfolder is used to specify the location of the folder used to store image templates (rather than requiring access to a root folder).

To use the feature, you’ll need access to a writable folder and specify the name of this folder and the vmfolder attribute of the Juju model’s credential.

Other bug fixes

  • LP #1856537 - Filter by Space Name Should Accommodate Name Rules
  • LP #1851489 - cannot remove and re-add a manually provisioned machine
  • LP #1855777 - segfault due to a badly formatted bundle YAML file
  • LP #1783595 - panic if local charms in bundle not found
  • LP #1860992 - cross model relation goes into terminated state on deploy
  • LP #1860542 - volumeAttachmentPlan in Dying state causes "state changing too quickly

Additional bugs fixed can be found in the milestone page.

How do I get it?

The best way to get your hands on this release of Juju is to install it as a snap:

sudo snap install juju --classic

Other packages are available for a variety of platforms, including Windows and macOS. Please see the online documentation at https://docs.jujucharms.com/reference-install. Those subscribed to a snap channel should be automatically upgraded. If you’re using the PPA or Homebrew for macOS, you should see an upgrade available.

Feedback Appreciated!

We encourage everyone to let us know how you’re using Juju. Please ask questions on on Discourse, send us a message on Twitter using the hashtag #jujucharms, and chat with us at #juju on Freenode.

2 Likes

So currently I have a controller down because of this bug.
Seeing as though the juju cli cannot communicate with the controller, how do I go about upgrading the controller binaries without having the ability to issue juju upgrade-controller

1 Like

I am happy to pair up with you and see if we can get your deployment working.

I am in UTC+2, so if we can find some overlap, get my on Freenode #juju.

1 Like

Is there a way to automate this behavior such that a user let’s say, ADAM@external will get a folder created in vsphere /models/ADAM@external/foobar with correct settings as part of ‘juju add model foobar’?

We have a multiuser setup where it would be very good to be able to hide vms for respective user. This functionality is a step in the right direction for this.