SDK How-to guides
Step-by-step guides covering key operations and common tasks related to the Juju SDK
Before you begin:
- Users of the Juju SDK are expected to have basic familiarity with Juju OLM tools and concepts and access to a deployment environment set up with the Juju OLM. Please see the Juju OLM docs if you need an introduction or a refresher.
- The required test environment is a Linux environment that supports installation via snap, e.g., Ubuntu 16.04 or later. If you don’t have that yet, see How to create an Ubuntu virtual machine with Multipass.
Set up the Juju SDK
To get started with the Juju SDK you need to install and configure Charmcraft.
-
Install Charmcraft
Charmcraft is available on Linux and, via an Ubuntu virtual machine, also macOS and Windows.
-
Configure Charmcraft
Configuring Charmcraft is obligatory for packing bundles though optional for other commands. - Authenticate Charmcraft in remote environments
Manage charms
- Set up a charm project
- Change step behavior when creating a charm
- Pack a charm
- Run workloads with a charm
- Configure logging in a charm
- Handle charm configuration
- Test a charm
- Write an integration test for a charm
- Deploy a charm
- Document a charm: The README file
- Publish a charm to Charmhub
- Add docs to a charm page on Charmhub
- Create an icon for a charm
- Interact with Pebble
- Handle actions
Manage charm resources
- Define a resource for your charm
- Associate a resource to your charm
- Publish a resource to Charmhub
- Attach a resource to a charm at release time
- Access a resource from your charm
Manage charm libraries
Manage charm bundles
- Create a charm bundle
-
Configure a charm bundle
- Set charm channels within a bundle
- Set charm constraints within a bundle
- Set charm options within a bundle
- Integrate a local charm into a bundle
- Add an overlay bundle
- Append an overlay bundle to a base bundle
- Resolve a relative path inside a bundle
- Remove an application from a bundle
- Replace machines in a bundle
- Modify relations inside a bundle
- Add machine specifications to a bundle
- Bind endpoints within a bundle
- Specify application expose parameters within a bundle
- Use charm resources in a bundle
- Recycle machines in a bundle
- Add placement directives to a bundle
- Add storage directives to a bundle
- Set up subordinate charms inside a bundle
- Compare a bundle to a model
- Pack a charm bundle
- Deploy a charm bundle
- Publish a charm bundle to Charmhub
Last updated 6 days ago.