This is the my raspberry pi cluster GitOps configuration
├── argo/
├── ├──example_cluster/
│ │ ├── bootstrap/
│ │ ├── infrastructure/
│ │ └── apps/
├── ansible/
│ ├── common.yaml
│ ├── k3s.yaml
│ ├── group_vars
│ │ ├── nodes.yaml
│ │ └── maters.yaml
│ ├── host_vars
│ └── node01.yaml
└── bootstrap/
├── firstboot.sh
└── bootstrap.env # os bootstrap service config example
The node can use a RPB OS with a post install hook to pre-configure the OS.
bootstrap.env
will tell the service what hostname should be configured for the node and the public keys for ssh.
Add the raspberian with firstboot to the sd card and copy the files in os_bootstrap
to the sd's boot directory.
- rpi-imager
brew install raspberry-pi-imager
Ansible is responsible for the initial setup of the k3s cluster:
make ansible
Argo is responsible for the k3s configurations. See more here.
Create the secret locally than encrypt it using the kubeseal cli. Example:
kubeseal --namespace metallb-system < metallb.json > sealed-metallb.json