I am currently just running a single node cluster:
- NUC 13 with 13th generation i7
- 2TB Kingston M.2 SSD
- 2x32GB Kingston Impact
Bootstrapping a cluster is automated via a couple of shell scripts in the scripts
directory.
They are setup to call each other in sequence.
The scripts can be run once the nodes have booted from the Talos ISO and is waiting in maintenance mode.
See the Talos docs for more information.
When the node is in maintenance mode, running this will provide the initial Talos configurations and initialize the bootstrapping of the cluster.
After the cluster is provisioned, the script will setup your talosconfig
and kubeconfig
to interact with the cluster.
The base Talos configuration is generated using talosctl
, and then the patches are all applied from the talos-patches
directory.
After the cluster is initialized, the CNI has to be configured, I have chosen to use Cilium. This script will install Cilium and once complete, the node will reach a ready state.
When the node is ready, we can install ArgoCD to deploy the cluster configurations. Once this script is done, all of the workloads on the cluster will be managed by the applications defined in this repo.
The cluster-app.yaml
is the App of apps setup, which will deploy the applications in the applications
folder.
In general, if there is a public Helm chart/Kustomize bundle/raw Kubernetes manifests available, those are used directly.
If those are not available, or if there are additional configurations required (managing CustomResources
for example), they are defined in the additional-deployments
directory.
kube-prometheus is deployed on the cluster for the baseline monitoring.
Part of that includes monitoring etcd.
This script configures the Kubernetes Secret
to allow Prometheus to scrape etcd metrics.
There are additional scripts that could be useful post-installation.
This will wipe the cluster and the nodes will reboot into maintenance mode. This requires the node to have the Talos ISO available to boot.
This will apply or delete some manifests to test out the software installed on the cluster. Validation of those test manifests are manual.