/charm-relation-interfaces

Opinionated and standardized interface specifications for charmed operator relations

Primary LanguagePythonApache License 2.0Apache-2.0

Charm Relation Interfaces

A catalogue of opinionated and standardized interface specifications for charmed operator relations.

Matrix badge

Purpose

The purpose of the repository is to outline the behavior and requirements for key interface names, ensuring that charms claiming to implement a certain interface actually are capable of being integrated with each other.

Contributing

Contributing a new interface specification is a lightweight process.

Interfaces

For the time being, to see available interfaces, their statuses, and schemas, browse the interfaces directory.

Relation interface testers

In order to automatically validate whether a charm satisfies a given relation interface, the relation interface maintainer(s) need to write one or more relation interface tests. A relation interface test is a scenario-based test case which checks that, given an intitial context, when a relation event is triggered, the charm will do what the interface specifies. For example, most interface testers will check that, on relation changed, the charm will write a certain value into its (app/unit) databag and that that value matches a certain (Pydantic) schema.

See the tester documentation for more.