Configuration

Customize your k8s-provisioner cluster

k8s-provisioner uses two configuration files:

config.yaml

Main configuration file for Kubernetes and components.

cluster:
  name: "k8s-lab"
  pod_cidr: "10.244.0.0/16"
  service_cidr: "10.96.0.0/12"

versions:
  kubernetes: "1.32"
  crio: "v1.32"
  calico: "3.28.0"
  metallb: "0.14.8"
  istio: "1.28.2"

network:
  interface: "eth1"
  controlplane_ip: "192.168.56.10"
  metallb_range: "192.168.56.200-192.168.56.250"

storage:
  nfs_server: "storage"
  nfs_path: "/exports/k8s-volumes"

nodes:
  - name: "storage"
    role: "storage"
  - name: "controlplane"
    role: "controlplane"
  - name: "node01"
    role: "worker"
  - name: "node02"
    role: "worker"

components:
  cni: "calico"
  load_balancer: "metallb"
  service_mesh: "istio"
  monitoring: "prometheus-stack"
  logging: "loki"

vagrant/settings.yaml

VM configuration for VirtualBox.

box_name: "bento/debian-12"
vm:
- name: "storage"
  ip: "192.168.56.20"
  memory: "2048"
  cpus: "1"
  role: "storage"
- name: "controlplane"
  ip: "192.168.56.10"
  memory: "4096"
  cpus: "2"
  role: "controlplane"
- name: "node01"
  ip: "192.168.56.11"
  memory: "4096"
  cpus: "2"
  role: "worker"
- name: "node02"
  ip: "192.168.56.12"
  memory: "4096"
  cpus: "2"
  role: "worker"