Files
home-cluster/bootstrap/vars/config.sample.yaml
T
Devin Buhl e1330d734c feat: more changes to templating (#1218)
* feat: clean up more jinja default references

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat: add additional tls sans force kube-vip on k3s

Signed-off-by: Devin Buhl <devin@buhl.casa>

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-01-21 11:39:12 -05:00

102 lines
4.6 KiB
YAML

---
#
# Bootstrap configuration - config.yaml is gitignored
#
# Distribution can either be 'k3s', 'k0s', or 'talos'
bootstrap_distribution: k3s
# Github username (e.g. onedr0p)
bootstrap_github_username:
# Github repository (e.g. flux-cluster-template)
bootstrap_github_repository_name:
# Github repository branch (e.g. main)
bootstrap_github_repository_branch: main
# Age Public Key (e.g. age15uzrw396e67z9wdzsxzdk7ka0g2gr3l460e0slaea563zll3hdfqwqxdta)
bootstrap_age_public_key:
# Choose your timezone (e.g. America/New_York)
bootstrap_timezone: Etc/UTC
# Email you want to be associated with the ACME account (used for TLS certificates via letsencrypt.org)
bootstrap_acme_email:
# Use the ACME production env when requesting the wildcard certificate,
# the default here is `false` which means ACME staging env will be used instead.
# This is to prevent being rate-limited. Update this option to `true` when you
# have verified the staging certificate works and then re-run `task configure`
# and push your changes to Github.
bootstrap_acme_production_enabled: false
# Flux github webhook token (openssl rand -hex 12)
bootstrap_flux_github_webhook_token:
# Cloudflare domain
bootstrap_cloudflare_domain:
# Cloudflare API Token (not API Key)
bootstrap_cloudflare_token:
# Cloudflared Account Tag (cat ~/.cloudflared/*.json | jq -r .AccountTag)
bootstrap_cloudflare_account_tag:
# Cloudflared Tunnel Secret (cat ~/.cloudflared/*.json | jq -r .TunnelSecret)
bootstrap_cloudflare_tunnel_secret:
# Cloudflared Tunnel ID (cat ~/.cloudflared/*.json | jq -r .TunnelID)
bootstrap_cloudflare_tunnel_id:
# CIDR your nodes are on (e.g. 192.168.1.0/24)
bootstrap_node_cidr:
# The IP address of the Kube API, choose an available IP in your nodes network that is not being used
# NOTE: For k0s set this to a IP you can then later use to manually setup a load balancer for the Kube API (e.g. Haproxy or Keepalived)
# Ref: https://github.com/k0sproject/k0s/issues/1150
bootstrap_kube_api_addr:
# Add additional SANs to the Kube API cert, this is useful if you want to call the Kube API by hostname rather than IP
bootstrap_kube_additional_tls_sans: []
# The Load balancer IP for k8s_gateway, choose an available IP in your nodes network that is not being used
bootstrap_k8s_gateway_addr:
# The Load balancer IP for external ingress, choose an available IP in your nodes network that is not being used
bootstrap_external_ingress_addr:
# The Load balancer IP for internal ingress, choose an available IP in your nodes network that is not being used
bootstrap_internal_ingress_addr:
# The DNS server to use for the cluster, this can be an existing local DNS server or a public one
# If using a local DNS server make sure it meets the following requirements:
# 1. your nodes can reach it
# 2. it is configured to forward requests to a public DNS server
# 3. you are not force redirecting DNS requests to it - this will break cert generation over DNS01
bootstrap_dns_server: 1.1.1.1
# (Advanced) Enable ipv6
bootstrap_ipv6_enabled: false
# For ipv6 use format "10.42.0.0/16,fd78:c889:47fb:10::/60", /60 IPv6 block is enough for 16 nodes
bootstrap_cluster_cidr: 10.42.0.0/16
# For ipv6 use format "10.43.0.0/16,fd78:c889:47fb:e0::/112"
bootstrap_service_cidr: 10.43.0.0/16
# Node information
bootstrap_nodes:
# Use only 1, 3 or more odd master nodes, recommended is 3
master:
# - name: # name or hostname of the master node (must match [a-z0-9-\.]+)
# address: # ip address of the master node
# username: # ssh username of the master node
# diskSerial: # (Required: Talos) Serial number of Disk for this master node
# ...
worker: # set to [] or omit if no workers are needed
# - name: # name or hostname of the worker node (must match [a-z0-9-\.]+)
# address: # ip address of the worker node
# username: # ssh username of the worker node
# diskSerial: # (Required: Talos) Serial number of Disk for this worker node
# ...
#
# Do not make changes below this line unless you know what you are doing
# These options are not validated and may break your cluster
#
# bootstrap_advanced_flags:
# # Disable to prevent changes to nodes /etc/resolv.conf
# update_resolv_conf: true
# # Cilium load balancer mode, choose either 'dsr' or 'snat'
# # Due to unknown reasons some people need this set to 'snat' in order
# # for Cilium L2 announcements to work properly. Keep this dsr unless
# # you have issues with connecting to Cilium L2 announcements.
# cilium_loadbalancer_mode: dsr
# # Path for openebs openebs-hostpath to use for storage on ALL nodes
# local_storage_path: /var/openebs/local