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. | |
|
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 tologgo.GetLogger
orloggo.GetLoggerWithLabels
.
Modules have a nested tree structure - for example, thejuju.api
module includes submodulesjuju.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