This is an index of the charm libraries that are currently known to be available.
This list may be missing libraries from charms that are not publicly listed on Charmhub. If you would like to add a library to the list, please drop a comment using the feedback link below.
- Libraries that define relations
- Libraries that provide tools
The following libraries provide programmatic instructions for relating to a specific charm.
|mongodb||Defines a relation interface to the mongodb-k8s charm.|
|fluentbit||fluentbit||Defines both sides of a relation interface to the fluentbit charm.|
|redis||Import RedisRequires from this lib to relate your charm to the redis-k8s charm.|
|grafana-dashboard||Defines a relation interface for charms that provide a dashboard to the grafana-k8s charm.|
|grafana-source||Defines a relation interface for charms that serve as a data source for the grafana-k8s charm.|
|prometheus-scrape||Defines a relation interface for charms that want to expose metrics endpoints to the prometheus charm.|
|alertmanager-dispatch||Defines a relation to the alertmanager-dispatch charm.|
|karma_dashboard||karma-k8s||Defines an interface for charms wishing to consume or provide a karma-dashboard relation.|
|loki_push_api||loki_k8s||Defines a relation interface for charms wishing to provide or consume the Loki Push API—e.g., a charm that wants to send logs to Loki.|
|log_proxy||loki_k8s||Defines a relation interface that allows a charm to act as a Log Proxy for Loki (via the Loki Push API).|
|guacd||apache-guacd||Defines a relation for charms wishing to set up a native server side proxy for Apache Guacamole.|
These libraries provide re-usable tooling, typically to interact with cloud services, or to perform operations common to several charms.
|cert||kubernetes-dashboard||Generates a self signed certificate.|
|capture_events||traefik-k8s, data-platform-libs||Helper for unittesting events.|
|networking||<your charm here?>||Provides tools for mocking networks.|
|compound-status||<your charm here?>||Provides utilities to track multiple independent statuses in charms.|
These libraries provide tooling for charms that run on top of Kubenetes clouds.
|kubernetes_service_patch||cos-configuration-k8s, alertmanager-k8s, grafana-agent-k8s, prometheus-k8s, loki-k8s, traefik-k8s||Allows charm authors to simply and elegantly define service overrides that persist through a charm upgrade.|
|ingress||nginx-ingress-integrator||Configures nginx to use an existing Kubernetes Ingress.|
|ingress-per-unit||traefik-k8s||Configures traefik to provide per-unit routing.|
These libraries contain tools meant for use in machine charms, e.g., libraries that interact with package managers or other CLI tools that are often not present in containers.
|apt||mysql, zookeeper, cos-proxy, kafka, ceph-mon||Install and manage packages via
|dnf||Install and manage packages via
|grub||Mange kernel configuration via
|passwd||Manage users and groups on a Linux system.|
|snap||mongodb, mongodb-k8s, postgresql, grafana-agent-k8s, kafka||Install and manage packages via
|sysctl||kafka||Mange sysctl configuration.|
|systemd||mongodb, pgbouncer, cos-proxy, ceph-mon, calico||Interact with services via