Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/roeldev/iac-talos-cluster
Deploy a Talos OS-based cluster in Proxmox using Terraform, with Cilium and ArgoCD
https://github.com/roeldev/iac-talos-cluster
Last synced: 3 months ago
JSON representation
Deploy a Talos OS-based cluster in Proxmox using Terraform, with Cilium and ArgoCD
- Host: GitHub
- URL: https://github.com/roeldev/iac-talos-cluster
- Owner: roeldev
- License: bsd-3-clause
- Created: 2023-10-17T17:00:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-13T13:35:51.000Z (4 months ago)
- Last Synced: 2024-07-14T13:02:42.809Z (4 months ago)
- Language: HCL
- Homepage:
- Size: 982 KB
- Stars: 41
- Watchers: 5
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Talos cluster on Proxmox
========================This repository contains a [Terraform](https://www.terraform.io/) configuration to create a [Talos](https://www.talos.dev/) Kubernetes cluster on servers running [Proxmox VE](https://www.proxmox.com/).
It includes a basic Kubernetes configuration to run services on the cluster, which includes [Cilium](https://cilium.io/) as CNI, [Talos CCM](https://github.com/siderolabs/talos-cloud-controller-manager) and [Argo CD](https://argoproj.github.io/cd/) to deploy services in a GitOps way.
## Requirements
- Proxmox server(s)
- terraform
- kubectl
- go
- nmap## Usage
- 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.## How it works
- 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](manifests/) in this repository.If everything works as expected, Argo CD should automatically install metrics-server on the recently created Kubernetes cluster.
## License
Copyright © 2023-2024 [Roel Schut](https://roelschut.nl). All rights reserved.
This project is governed by a BSD-style license that can be found in the [LICENSE](LICENSE) file.