This repository contains a Terraform configuration to create a Talos Kubernetes cluster on servers running Proxmox VE. It includes a basic Kubernetes configuration to run services on the cluster, which includes Cilium as CNI, Talos CCM and Argo CD to deploy services in a GitOps way.
- Proxmox server(s)
- terraform
- kubectl
- go
- nmap
- Make sure all tools are installed and are set in your PATH;
- Run
task init
to initialize the Terraform providers; - Download the correct Talos release image and place it in a folder which Proxmox can access;
- Change the
mac-to-ip_scan_subnets
variable to match to subnets on which Proxmox creates the VMs by default; - Optionally run
terraform plan
to see what will be created; - Run
task create
to create the VMs, boot the Talos cluster and run some basic Kubernetes services.
- Terraform creates VMs in Proxmox using a Talos release image;
- Terraform creates Talos configs and applies it to the VMs running Talos;
- A Talos control plane is bootstrapped and a Talos cluster is formed;
- Terraform generates the inline manifests (containing Cilium and Talos CCM) which Talos installs;
- Terraform waits for the nodes to be ready and installs Argo CD;
- Argo CD installs all specified services and applications;
- Argo CD keeps the services and applications in sync with the manifests in this repository.
If everything works as expected, Argo CD should automatically install metrics-server on the recently created Kubernetes cluster.
Copyright © 2023-2024 Roel Schut. All rights reserved.
This project is governed by a BSD-style license that can be found in the LICENSE file.