Ops documentation¶
Ops is a Python framework for writing and testing Juju charms.
The core ops package provides an API to respond to Juju events and manage your charm’s application. Ops also includes extra packages for testing and tracing charms.
Ops promotes consistent and maintainable charm code. Its APIs help you separate different aspects of your charm, such as managing the application’s state and integrating with other charms.
Get started¶
Use our CLI tools to turn your 12-factor app into a charm that’s ready to deploy. We support Django, FastAPI, Go, and more!
For a hands-on introduction to charm development with Ops, try our tutorials:
In this documentation¶
Starting a project |
|
Running workloads |
|
Adding functionality |
Manage relations • Manage configuration • More Juju features |
Testing & CI |
|
Design & best practices |
Holistic vs delta charms • Follow best practices • Trace your charm |
Publishing |
How this documentation is organised¶
This documentation uses the Diátaxis documentation structure.
Reference, including ops, ops.testing, and ops.tracing
Demo charms¶
The Ops repository has several demo charms that you can experiment with.
Ops releases¶
Ops releases are tracked in GitHub. To get notified when there’s a new release, watch the Ops repository.
The ops package is published on PyPI.
Project and community¶
Ops is a member of the Ubuntu family. It’s an open source project that warmly welcomes community contributions, suggestions, fixes and constructive feedback.
For support, join Charm Development on Matrix. You’ll be able to chat with the maintainers of Ops (the Canonical Charm Tech team) and a friendly community of charm developers!
To follow along with updates and tips about charm development, join our Discourse forum.