pvc-bootstrap/bootstrap-daemon/pvcbootstrapd.yaml.sample

133 lines
4.3 KiB
Plaintext

---
pvc:
# Enable debug mode
debug: true
# Deploy username
deploy_username: deploy
# Database (SQLite) configuration
database:
# Path to the database file
path: /srv/tftp/pvcbootstrapd.sql
# Flask API configuration
api:
# Listen address
address: 10.199.199.254
# Listen port
port: 9999
# Redis Celery queue configuration
queue:
# Connect address
address: 127.0.0.1
# Connect port
port: 6379
# Redis path (almost always 0)
path: "/0"
# DNSMasq DHCP configuration
dhcp:
# Listen address
address: 10.199.199.254
# Default gateway address
gateway: 10.199.199.1
# Local domain
domain: pvcbootstrap.local
# DHCP lease range start
lease_start: 10.199.199.10
# DHCP lease range end
lease_end: 10.199.199.99
# DHCP lease time
lease_time: 1h
# DNSMasq TFTP configuration
tftp:
# Root TFTP path (contents of the "buildpxe.sh" output directory; generally read-only)
root_path: "/srv/tftp/pvc-installer"
# Per-host TFTP path (almost always "/host" under "root_path"; must be writable)
host_path: "/srv/tftp/pvc-installer/host"
# Debian repository configuration
repo:
# Mirror path; defaults to using the apt-cacher-ng instance located on the current machine
# Replace "10.199.199.254" if you change "dhcp" -> "address" above
mirror: http://10.199.199.254:3142/ftp.debian.org/debian
# Default Debian release for new clusters. Must be supported by PVC ("buster", "bullseye", "bookworm").
release: bookworm
# PVC Ansible repository configuration
# Note: If "path" does not exist, "remote" will be cloned to it via Git using SSH private key "key_file".
# Note: The VCS will be refreshed regularly via the API in response to webhooks.
ansible:
# Path to the VCS repository
path: "/var/home/joshua/pvc"
# Path to the deploy key (if applicable) used to clone and pull the repository
key_file: "/var/home/joshua/id_ed25519.joshua.key"
# Git remote URI for the repository
remote: "ssh://git@git.bonifacelabs.ca:2222/bonifacelabs/pvc.git"
# Git branch to use
branch: "master"
# Clusters configuration file
clusters_file: "clusters.yml"
# Lock file to use for Git interaction
lock_file: "/run/pvcbootstrapd.lock"
# Filenames of the various group_vars components of a cluster
# Generally with pvc-ansible this will contain 2 files: "base.yml", and "pvc.yml"; refer to the
# pvc-ansible documentation and examples for details on these files.
# The third file, "bootstrap.yml", is used by pvcbootstrapd to map BMC MAC addresses to hosts and
# to simplify hardware detection. It must be present or the cluster will not be bootstrapped.
# Adjust these entries to match the actual filenames of your clusters; the pvc-ansible defaults
# are provided here. All clusters using this pvcbootstrapd instance must share identical filenames
# here.
cspec_files:
base: "base.yml"
pvc: "pvc.yml"
bootstrap: "bootstrap.yml"
# Notification webhook configs
# These enable sending notifications from the bootstrap to a JSON webhook, e.g. a chat system
# This feature is optional; if this block is missing or `enabled: false`, nothing here will be used.
notifications:
enabled: true
# The URI endpoint for notifications
uri: https://mattermost.domain.tld/hooks/asecretstring
# The action to use (usually "post")
action: post
# Icons to use for various status types; embedded in the message with `{icon}`
icons:
info: "❕" # A note about an event
begin: "🤞" # A task is beginning
success: "✅" # A task succeeded
failure: "❌" # A task failed
completed: "👌" # A task is completed
# A trigger word (no whitespace) added to the end of the completed cluster message; this can be used
# for pings in various chat systems (e.g. Mattermost)
completed_triggerword: "#pvcbootstrapcompleted"
# The webhook body elements; this is specific to the webhook target, and is converted into raw
# JSON before sending.
# Two special variables are used: "{icon}" displays one of the above icons, and "{message}" displays
# the actual message coming from pvcbootstrapd.
body:
channel: "mychannel"
username: "pvcbootstrapd"
text: "@person {icon} {message}"