How to manage charm resources

See also: resource

When you deploy / update an application from a charm, that automatically deploys / updates any charm resources, using the defaults specified by the charm author. However, you can also specify resources manually (e.g., to try a resource released only to edge or to specify a non-Charmhub resource). This document shows you how.

Find out the resources available for a charm

To find out what resources are available for a charm on Charmhub, run the charm-resources command followed by the name of the charm:

juju charm-resources <charm>
Expand to view a sample output for the ‘postgresql-k8s’ charm]
$ juju charm-resources postgresql-k8s
Resource          Revision
postgresql-image  68

The command has flags that allow you to specify a charm channel, an output format, an output file, etc.

Alternatively, you can also consider a resource available somewhere else online (e.g., a link to an OCI image) or in your local filesystem.

Specify the resources to be deployed with a charm

How you specify a resource to deploy with a charm depends on whether you want to do this during deployment or, as an update, post-deployment.

  • To specify a resource during deployment, run the deploy command with the --resources flag followed by a key-value pair consisting of the resource name and the resource:

juju deploy <charm name> --resources <resource name>=<resource>

See more: juju deploy

  • To specify a resource after deployment, run the attach-resource command followed by the name of the deployed charm (= application) and a key-value pair consisting of the resource name and the resource revision number of the local path to the resource file:

juju attach-resource <charm name> <resource name>=<resource>

Regardless of the case, the resource name is always as defined by the charm author (see the Resources tab of the charm homepage on Charmhub or the resources map in the metadata.yaml file of the charm) and the resource is the resource revision number, a path to a local file, or a link to a public OCI image (only for OCI-image type resources).

Expand to view an example where the resource is specified post-deployment by revision number
juju attach-resource  juju-qa-test foo-file=3
  • To update a resource’s revision, run the refresh command with the --resource flag followed by a key=value pair denoting the name of the resource and its revision number or the local path to the resource file.

See more: juju deploy > --resources, juju attach-resource, juju refresh > --resources

View the resources deployed with a charm

To view the resources that have been deployed with a charm, run the resources command followed by the name of the corresponding application / ID of one of the application’s units.

juju resources <application name> / <unit ID>

See more: juju resources