Ops 0.9.0 released!

ops, the Operator Framework, provides a simple, lightweight, and powerful way of
writing Juju charms, the best way to encapsulate operational experience in code.

The framework will help you to:

  • model the integration of your services
  • manage the lifecycle of your application
  • create reusable and scalable components
  • keep your code simple and readable

You can read more about the project, including how to get involved, on github.

Release highlights:

  • Controller-side storage is now used automatically (i.e. without the
    charm author needing to set the use_juju_for_storage flag on
    main) when we’re sure it’s needed. It can still be forced on or
    off via that flag to main.

  • A workaround for Juju’s lp:1880637 to address #293, so
    pod.set_spec's k8s_resources works as expected. But note #387,
    as “as expected” might not be as you expect.

  • If charm code is run in an environment that does not set
    JUJU_VERSION, default to 0.0.0 instead of raising an exception. This
    means all the feature checks will fail, but the charm can still
    progress. Please let us know if this is not what you want; this
    impacts #372.

  • Charm authors can now use harness.hooks_disabled() as a context
    manager to run a block of code without events being fired for them.
    Without this you’d have to wrap that code in disable/enable

If you find you need to dive in to the changes of the release itself, you can.