operator
operator copied to clipboard
Pure Python framework for writing Juju charms
Okay. I turned on branch-protection rules for any `*-maintenance` branches. I saved the last cherry-pick for 1.5.1 to put in this PR in order to test/check that CI works right...
The conspicuous absence of leader-settings-changed event emission from the harness was noted recently by @ca-scribner et al. Notably, the harness already supports changing the leadership status of the charm being...
Typed ops/main.py
Stderr output emitted during an action hook execution gets injected in an action's results by juju. - documented this in the ActionEvent docstring - added a check that users don't...
Charm authors can mark some of the relations as optional using 'optional' attribute in relations section (provides/requires/peers) in metadata.yaml [1], however the parameter is not saved in RelationMeta class. The...
I am writing a charm for a stateful application which has clustering built-in. For the complete application removal case I need to avoid removing members from the actual cluster while...
This PR adds a convenience method to harness for simulating a charm upgrade ([example](https://github.com/canonical/prometheus-k8s-operator/blob/7ae9e8fe139323463bc40e68d91d96cde29c0caf/tests/unit/test_remote_write.py#L271)). Manually emitting `upgrade_charm` could probably be enough to cover most of the need, but having all...
Is this the/an approach (just growing our charm testing list with "stable/good" charms) we want to take to help avoid regressions and breakage downstream when we do releases? I feel...
This is a theoretical problem that I haven't actually tested out. But it seems like it is possible for a hook observation call - for example `self.framework.observe(...)` to be run...
More specifically, before every hook execution. Point is: when a 'real' charm runs, it is reinitialized afresh. While if you do fire eventA and eventB on the harness, the harness...