How to write a custom config

When the built-in presets don’t fit your needs, write your own YAML configuration file.

Start from a preset

Open Presets, find the preset that most closely matches what you want, and copy its YAML into a local file — for example, concierge.yaml. Edit your file to suit your needs.

For how to point Concierge at your file, see prepare in Commands.

Common adaptations

Add or remove a snap

List the snaps you need as keys within host.snaps. If you need a specific channel of a snap, add channel: within the snap’s key. For example:

host:
  snaps:
    charmcraft:
    jq:
    astral-uv:
      channel: latest/beta

Change the Juju version

Set juju.channel, and optionally pin an agent-version:

juju:
  channel: 3.6/stable
  agent-version: "3.6.11"

Turn off Kubernetes

Start from dev.yaml and either delete the k8s: block from providers: or disable it explicitly:

providers:
  k8s:
    enable: false

Add a provider that presets don’t cover

To add a Google cloud provider on top of an existing preset, extend the providers: block and provide credentials:

providers:
  google:
    enable: true
    bootstrap: true
    credentials-file: /home/ubuntu/google-credentials.yaml

See more: How to provide cloud credentials

Full reference

Every field is documented in Configuration schema.