Charm CLI plugin to view config available for a charm in the store

I created a small plugin for the charm CLI, charm-config, to present the available config options for a given charm in a more readable way, in the form of a table. For example:

$ charm config cs:~containers/aws-integrator
Option          Type     Default Value  Description                                                                     
------------------------------------------------------------------------------------------------------------------------
access-key      string   ''             An IAM access key.  It is strongly recommended that you use 'juju trust' inst...
credentials     string   ''             The base64-encoded contents of an AWS credentials file, which must include bo...
secret-key      string   ''             An IAM secret key.  It is strongly recommended that you use 'juju trust' inst...
snap_proxy      string   ''             DEPRECATED. Use snap-http-proxy and snap-https-proxy model configuration sett...
snap_proxy_url  string   ''             DEPRECATED. Use snap-store-proxy model configuration setting. The address of ...
snapd_refresh   string   ''             How often snapd handles updates for installed snaps. The default (an empty st...

Some additional features are filtering by config option name, showing just the default value, or just the full description:

$ charm config cs:~containers/aws-integrator 'snap*'
Option          Type     Default Value  Description                                                                     
------------------------------------------------------------------------------------------------------------------------
snap_proxy      string   ''             DEPRECATED. Use snap-http-proxy and snap-https-proxy model configuration sett...
snap_proxy_url  string   ''             DEPRECATED. Use snap-store-proxy model configuration setting. The address of ...
snapd_refresh   string   ''             How often snapd handles updates for installed snaps. The default (an empty st...

$ charm config cs:~containers/kubernetes-master authorization-mode --value
AlwaysAllow

$ charm config cs:~containers/kubernetes-master authorization-mode --desc
Comma separated authorization modes. Allowed values are
"RBAC", "Node", "Webhook", "ABAC", "AlwaysDeny" and "AlwaysAllow".

Note that this information is already available via the standard charm command:

charm show cs:my-charm charm-config

However, the output is raw YAML and not very easy to scan, particularly for charms with a large number of config options, and doesn’t include any filtering.

You can install this plugin with:

snap install --classic charm-config
1 Like