This is a terraform definition to install and manage Kubernetes on a cluster of Raspberry Pis. It also optionally installs some useful software.
Uses k3s and a forked version of xunleii's terraform module to install and manage Kubernetes
Optionally installs some software I like that also runs on the pi's arm7 chips
- Minio - s3 clone
- NATS - highly resilient and performant message passing system
- NATS Streaming - nats append-only-log style data streaming
- cert-manager - to handle SSL certificates using Let's Encrypt
- docker-registry - for a custom private docker image registry
- wintermute - my toy project which uses most of the above (wintermute is the bad AI in the Neuromancer book)
See the example tfvars file but all that's needed is the pi's name, ip, and ssh private key location.
name = "asgard"
master = {
name = "odin"
host = "192.168.1.200"
user = "root"
private_key = "~/.ssh/id_rsa"
}
nodes = [
{
name = "thor"
host = "192.168.1.201"
user = "root"
private_key = "~/.ssh/id_rsa"
},
{
name = "fenris"
host = "192.168.1.202"
user = "root"
private_key = "~/.ssh/id_rsa"
}
]