Our monthly ops, ops-scenario, and Pebble releases arrived this pulse, and the new Jubilant charm integration testing library is getting close to an initial beta release. Charm-Tech has been busy working on several specs and proofs-of-concept, with the Pebble metrics work completed and significant progress on several other larger roadmap items.
Ops
- ops 2.19, and ops-scenario 7.2 released.
- Added a new API for running custom events in unit tests, so that charm tests can use APIs provided by the charm libraries without needing to know implementation details such as relation data content, and the triggering Juju event.
- Continued work on a spec and proof-of-concept for validating config and relation data.
Charming
- Hosted an AMA session with the OpenStack2/HPC team.
- Co-hosted the latest Charm-Tech/Charmcraft office hours.
- Significant progress on the Jubilant charm integration testing library: Status dataclasses generated from Juju Go code, GitHub Actions, unit tests, pretty-printed Status, config method.
- More work put into
ops[tracing]
, the native charm tracing support, including new packages to help emit tracing data without virtualenv bloat: otlp-test-data, otlp-json, otlp-proto (beta) - Juju: bug fix to avoid an error when the Pebble change for a notice has been pruned.
- Finalised the spec for the machine / k8s agnostic file operations library – implementation coming soon™
Pebble
- Pebble v1.19.0 released.
- Added a new basic type identity for Basic HTTP authentication (#563, docs).
- Added a metrics endpoint at /v1/metrics in OpenMetrics/Prometheus format, providing metrics for services and checks (#519, API spec, how-to guide).
- Working on a community-requested feature to run a health check immediately, (PoC, PR WIP). We are adding a new pebble check subcommand to get the details of a single health check, and if the optional flag --refresh is provided (pebble check --refresh), run a check immediately and return the result.
- Wrote a spec and developed a PoC implementation for a new PEBBLE_VERBOSE environment variable.
- Drafted a spec about a Pebble option to use in-memory state.
Documentation
- Added a “how to manage opened ports” doc, to replace the tutorial chapter on this topic, as part of the work to streamline the Kubernetes tutorial.
- Started work on migrating the Charm development best practices doc to a series of “best practice” tips in the documentation relevant to each individual item, and adding a general “how to build a charm” doc that covers fundamental guidelines rather than ones on specific Juju functionality.