List of model configuration keys

Configuration > List of model configuration keys

See also: Model, How to configure a model

This document gives a list of all the configuration keys that can be applied to a Juju model.

Contents:

Generic keys

The table below lists all the model keys which may be assigned a value and are not specific to a single cloud.

Key Type Default Valid values Purpose
agent-metadata-url string “” The URL of the private stream.
agent-stream string “” released/devel/proposed The version of Juju to use for deploy/upgrades.
agent-version string The desired Juju agent version to use.
apt-ftp-proxy* string “” The APT FTP proxy for the model.
apt-http-proxy* string “” The APT HTTP proxy for the model.
apt-https-proxy* string “” The APT HTTPS proxy for the model.
apt-mirror string “” The APT mirror for the model.
apt-no-proxy string “” List of domain addresses not to be proxied for APT (comma-separated).
automatically-retry-hooks bool true Determines whether the uniter should automatically retry failed hooks.
backup-dir string “” Directory used to store the backup working directory.
charmhub-url link The url for CharmHub API calls.
cloudinit-userdata string “” Cloud-init user-data (in yaml format) to be added to userdata for new machines created in this model.
container-image-metadata-url string “” url The URL at which the metadata used to locate container OS image ids is located.
container-image-stream string released url The simplestreams stream used to identify which image ids to search when starting a container.
container-inherit-properties string “” List of properties to be copied from the host machine to new containers created in this model (comma-separated).
container-networking-method string local/provider/fan Method of container networking setup - one of fan, provider, local.
default-base string “” The default base image to use for deploying charms, will act like --base when deploying charms.
default-space string “” The default network space used for application endpoints in this model.
development bool false Whether the model is in development mode.
disable-network-management bool false Whether the provider should control networks (on MAAS models, set to true for MAAS to control networks).
disable-telemetry bool false Disable telemetry reporting of model information.
egress-subnets string “” Source address(es) for traffic originating from this model.
enable-os-refresh-update bool true Whether newly provisioned instances should run their respective OS’s update capability.
enable-os-upgrade bool true Whether newly provisioned instances should run their respective OS’s upgrade capability.
fan-config string “” overlay_CIDR=underlay_CIDR Configuration for fan networking for this model.
firewall-mode string instance instance/global/none The mode to use for network firewalling. ‘instance’ requests the use of an individual firewall per instance. ‘global’ uses a single firewall for all instances (access for a network port is enabled to one instance if any instance requires that port). ‘none’ requests that no firewalling should be performed inside the model. It’s useful for clouds without support for either global or per instance security groups.
ftp-proxy* string “” url The FTP proxy value to configure on instances, in the FTP_PROXY environment variable.
http-proxy* string “” url The HTTP proxy value to configure on instances, in the HTTP_PROXY environment variable.
https-proxy* string “” url The HTTPS proxy value to configure on instances, in the HTTPS_PROXY environment variable.
ignore-machine-addresses bool false Whether the machine worker should discover machine addresses on startup.
image-metadata-url string “” url The URL at which the metadata used to locate OS image ids is located.
image-stream string released The simplestreams stream used to identify which image ids to search when starting an instance.
juju-ftp-proxy* string “” The FTP proxy value to pass to charms in the JUJU_CHARM_FTP_PROXY environment variable.
juju-http-proxy* string “” The HTTP proxy value to pass to charms in the JUJU_CHARM_HTTP_PROXY environment variable.
juju-https-proxy* string “” The HTTPS proxy value to pass to charms in the JUJU_CHARM_HTTPS_PROXY environment variable.
juju-no-proxy* string 127.0.0.1,localhost,::1 List of domain addresses not to be proxied (comma-separated), may contain CIDRs. Passed to charms in the JUJU_CHARM_NO_PROXY environment variable.
logforward-enabled bool false Whether syslog forwarding is enabled.
logging-config
string The configuration string to use when configuring Juju agent logging (see this link for details).

Structure:

The general form of the logging-config key is:

filter1=level1;...;filterN=levelN

where filterX can be any of the following:

  • <root> - matches all machine agent logs

  • unit - matches all unit agent logs

  • a module name, e.g. juju.worker.apiserver

    A module represents a single component of Juju, e.g. a worker. Generally, modules correspond one-to-one with Go packages in the Juju source tree. The module name is the value passed to loggo.GetLogger or loggo.GetLoggerWithLabels.

    Modules have a nested tree structure - for example, the juju.api module includes submodules juju.api.application, juju.api.cloud, etc. <root> is the root of this module tree.

  • a label, e.g. #charmhub

    Labels cut across the module tree, grouping various modules which deal with a certain feature or information flow. For example, the #charmhub label includes all modules involved in making a request to Charmhub.

    The currently supported labels are:

Label Description
#http HTTP requests
#metrics Metric outputs - use as a fallback when Prometheus isn’t available
#charmhub Charmhub client and callers.
#cmr Cross model relations
#cmr-auth Authentication for cross model relations
#secrets Juju secrets

See more: https://github.com/juju/juju/blob/main/core/logger/labels.go

and where levelX can be, in decreasing order of severity:

Level Description
CRITICAL Indicates a severe failure which could bring down the system.
ERROR Indicates failure to complete a routine operation.
WARNING Indicates something is not as expected, but this is not necessarily going to cause an error.
INFO A regular log message intended for the user.
DEBUG Information intended to assist developers in debugging.
TRACE The lowest level - includes the full details of input args, return values, HTTP requests sent/received, etc.

When you set logging-config to module=level, then Juju saves that module’s logs for the given severity level and above. For example, setting logging-config to juju.worker.uniter=WARNING will capture all CRITICAL, ERROR and WARNING logs for the uniter, but discard logs for lower severity levels (INFO, DEBUG, TRACE).

See more: https://github.com/juju/loggo/blob/master/level.go#L13

Examples:

To collect debug logs for the dbaccessor worker:

juju model-config -m controller logging-config="juju.worker.dbaccessor=DEBUG"

To collect debug logs for the mysql/0 unit:

juju model-config -m foo logging-config="unit.mysql/0=DEBUG"

To collect trace logs for Charmhub requests:

juju model-config -m controller logging-config="#charmhub=TRACE"
logging-output string “” The logging output destination: database and/or syslog. (default “”)
lxd-snap-channel latest/stable The channel to use when installing LXD from a snap (cosmic and later).
max-action-results-age 336h The maximum age for action entries before they are pruned, in human-readable time format.
max-action-results-size 5G The maximum size for the action collection, in human-readable memory format.
max-status-history-age string 336h 72h, etc. The maximum age for status history entries before they are pruned, in human-readable time forma
max-status-history-size string 5G 400M, 5G, etc. The maximum size for the status history collection, in human-readable memory format.
net-bond-reconfigure-delay 17 The amount of time in seconds to sleep between ifdown and ifup when bridging.
no-proxy* string 127.0.0.1,localhost,::1 List of domain addresses not to be proxied (comma-separated).
num-container-provision-workers 4 The number of container provisioning workers to use per machine.
num-provision-workers 16 The number of provisioning workers to use per model.
project default
provisioner-harvest-mode string destroyed all/none/unknown/destroyed What to do with unknown machines (default destroyed).
proxy-ssh bool false Whether SSH commands should be proxied through the API server.
resource-tags string none A space-separated list of key=value pairs used to apply as tags on supported cloud models.
secret-backend string auto internal, auto, <backend name> The name of the secret store backend.
snap-http-proxy* string “” The HTTP proxy value to for installing snaps.
snap-https-proxy* string “” The snap-centric HTTPS proxy value. See Offline mode strategies.
snap-store-assertions string “” The HTTPS proxy value to for installing snaps.
snap-store-proxy* string “” The snap store proxy for installing snaps.
snap-store-proxy-url string “” The URL for the defined snap store proxy.
ssl-hostname-verification bool true Set whether SSL hostname verification is enabled.
storage-default-block-source string - loop or the cloud-specific value The default block storage source for the model.
storage-default-filesystem-source string - any storage provider (Juju will adjust) The default filesystem storage source for the model.
transmit-vendor-metrics bool true Determines whether metrics declared by charms deployed into this model are sent for anonymized aggregate analytics.
update-status-hook-interval string 5m 30s, 6m, 1hr, etc. How often to run the charm update-status hook, in human-readable time format (default 5m, range 1-60m).

Cloud-specific keys

Cloud specific config keys are defined for the following cloud types: ec2, google, oci, and openstack. These config keys can be found by with the show-cloud command using the defined cloud name.

juju show-cloud --include-config aws

The “How to configure a model” link points to documentation that does not exist.

1 Like

Fixed, thanks!