Charm Tech pulse 2026#3

This pulse we’ve continued to focus on Concierge (addressing minor ease-of-use requests), charmlibs (migrating sysctl to PyPI, guidance for providing mock data), and databag structure (particularly to ease schema upgrades).

Happy new year to everyone that celebrates at this time!

Ops

  • Released 2.23.2 and 3.5.2 to resolve an issue building the wheels after a setuptools update (3.5.2 has a couple of other small improvements)

Charming

  • Worked on a --dry-run option for Concierge (#147)

  • Worked on refactoring the system interface in Concierge (#153)

  • Worked on support for custom image registries in Concierge (#148)

  • Worked on moving the Concierge presets from Go to YAML (#152)

  • Investigated ways to automate moving charm integration tests from python-libjuju to Jubilant

  • Released pytest-interface-tester to resolve the same build issue that Ops had (thanks Guillaume Boutry for the help with this one).

  • Hosted an AMA with the Solutions Engineering team.

  • Further work on a new spec to guide interface design, particularly in light of interface upgrades. We’ll be asking charming leads to review the spec soon.

Charmlibs

  • Migrated the sysctl library to charmlibs. It’s now available on PyPI (#341)

  • Deprecated the remaining operator-libs-linux libraries – reach out to Charm Tech if you need any functionality that isn’t provided under charmlibs.

  • Almost finished specifying how charm libraries should provide and distribute mock data and test doubles for charms to use in their unit tests.

  • A number of improvements to charmlibs monorepo CI, including bumping the ruff Python version that we format for in main from Python 3.8 to Python 3.10, and adding checks that interface schema.py files can at least be executed.

Pebble

  • Fixed an issue where the exit and logs of a check would not show when the number of failures was exactly the same as the threshold (#803)

Documentation

  • Improved the observability chapter of the Kubernetes charm tutorial, to make it easier to access Grafana & Prometheus and interpret application metrics (#2305)

  • Created How to manage containers in the Ops docs, which makes it easier to find information that was previously in the very long doc “How to run workloads with a Kubernetes charm”. We’re planning further improvements, so please let us know if you have any feedback! (#2309)