Skip to content

ATC config.yaml Guide

Joshua Zenn edited this page May 30, 2021 · 3 revisions

Overview

config.yaml is the location of all settings in Captain ATC, except for secret values like the credential to a Proxmox cluster. This file is safe to check into any VCS system for easy (re-)deployment.

Sections

Defaults

This section contains default values for all planes that apply to all provider drivers.

Key Required Description Default
publickey no A public key that will be added to all provisioned planes. Leave blank if your template already has your public key added. ""
image yes Alias of default image to deploy if none is specified in the formation configuration (mappings are performed in driver config) ""

Network

Here you can provide all settings necessary for planes to connect to your network.

Key Required Description Default
nameservers yes Space-separated list of DNS servers. ""
searchdomain no Domain to use in DNS lookups. ""
gateway yes Gateway that provides access to the internet. ""
mtu yes MTU value to use for network adapter ""
cidr yes CIDR value for the netmask assigned to your network (/8-/30). ""
blocks yes List of IPv4 blocks to assign through the IPAM module. ""

Config

Drivers

Key Required Description Default
provisioners yes List of hypervisor/provider drivers to load. (Valid values are proxmoxlxc and dummy). ""

API

Key Required Description Default
port yes Port to server HTTP API requests on. ""

Images

This section contains a list of image aliases (such as ubuntu-1804), and under each item the mapping is provided for the location of that image for each driver. See the examples section below for hints on how to build this block.

Drivers

Provisioners

Any driver-specific configuration goes here. If you are using the dummy driver, nothing is required here. The proxmoxlxc driver has the following configuration values to set:

Key Required Description Default
url yes URL to Proxmox web GUI without trailing /. ""
forcessl no If set to true, the Proxmox web GUI must present a valid certificate for the connection to complete. "false"
defaultnode yes Node to use for generic API requests, and to use when container balancing is not working. ""
diskstorage yes Name of image store where plane disks should go. ""
publicnetwork yes Name of internet-facing adapter in web GUI. ""

Examples

These examples only show the bare minimum to launch a Captain cluster. See the sections above for optional parameters.

Dummy Driver

This driver does not connect to any real hypervisor or management platform. This is great for local development of ATC, or evaluating the Captain stack.

defaults:
  publickey: ""
  network:
    nameservers: 8.8.8.8 8.8.4.4
    searchdomain: ""
    gateway: 10.1.0.1
    mtu: 1450
    cidr: 16
    blocks:
      - 10.1.5.0/24
  image: debian-10
config:
  drivers:
    provisioners:
      - dummy
  api:
    port: 5000
  images:
    debian-10:
      dummy: notrealpath

Proxmox Cluster

defaults:
  publickey: ""
  network:
    nameservers: 8.8.8.8 8.8.4.4
    searchdomain: example.lab
    gateway: 10.1.0.1
    mtu: 1450
    cidr: 16
    blocks:
      - 10.1.5.0/24
  image: debian-10
config:
  drivers:
    provisioners:
      - proxmoxlxc
  api:
    port: 5000
  images:
    debian-10:
      proxmoxlxc: pve-image:vztmpl/debian-10-standard_10.7-1_amd64.tar.gz
drivers:
  provisioners:
    proxmoxlxc:
      url: https://proxmox1.example.lab:8006/api2/json
      forcessl: false
      defaultnode: proxmox1
      diskstorage: pve-store
      publicnetwork: vmbr3