This pulse Charm Tech has been cranking out features and docs: we’ve shipped a new charm library for portable K8s and machines path operations, we’ve shipped several versions of the Jubilant charm integration testing library, ops[tracing]
is coming soon, and we’ve added a new docs site for charm library documentation.
Ops
- Continued work on specs and proofs-of-concept for validating config, action parameter, and relation data.
Charming
- Published our new library charmlibs-pathops on PyPI as an alpha release – 1.0 coming soon! Pathops provides a pathlib-like interface for file operations in K8s charms’ workload containers. Please try it out and open an issue if you encounter any bugs or are missing any features.
- Added features to Jubilant, our upcoming integration testing library. This includes various fixes and features, including improved status logging, and methods for exec, ssh, remove_relation, remove_application, trust, offer, ssh. And we released version 0.4.0.
- Migrated the discourse-k8s charm’s integration tests from pytest-operator to Jubilant, in part as a demonstration of Jubilant and how to use it. See that PR and read our docs if you want to port your own integration tests (we’ll help, though we’re unlikely to do it for you :-).
- Worked hard on
ops[tracing]
, which is in review and should be landing on your doorstep any time now! This will bring charm tracing features right into Ops. - Updated the charmcraft init templates for the kubernetes and machine profiles, including a standalone module for workload-specific logic. Our plan is for the updated profiles to ship with Charmcraft 4.0.
- Hosted an AMA with the Observability Core team.
Pebble
- Tightened permissions of the
--create-dirs
directory. - Updated Pebble SSDLC information, particularly the threat model with the new metrics feature.
Documentation
- Started work on a spec for guidance on sharing code between pairs of machine and Kubernetes charms.
- Created a new charmlibs documentation site, including a how-to guide for distributing charm libraries as Python packages. We recommend using the charmlibs namespace when distributing your charm libraries on PyPI.
- Added examples to our guidance about designing Python modules in a charm.
- Added a how-to to describe how to use tail -F for workload log files.