Using go-task to install tools from Brew. See Taskfile.yaml
Tools and reason why we need it:
- Age: Encryption tool for secrets, we will use it to encrypt our secrets before pushing to git.
- Cloudflared: Pre-configure Cloudflare network for k0s cluster.
- Direnv: Inject extra env_var to current directory
- Flux: GitOps tool, keep our cluster in sync with git.
- Go-task: Task runner, we will use it to run Taskfile.yml.
- Helm: TBD
- jq: JSON processor.
- kubeconform: Validate Kubernetes YAML files against Kubernetes schemas.
- kubernetes-cli: Just kubectl.
- kustomize: Decorate Kubernetes YAML files; do I need this? or should I go with Terraform?
- moreutils: Collection of tools that nobody thought to write when UNIX was young.
- Sops: Used with Age to encrypt secrets.
- Stern: Tail multiple pods on Kubernetes and multiple containers within the pod.
- yq: YAML processor.
Install with go-task:
task workstation:brew
I'm using managed switch (UDM) for all the nodes, so I can use static IP on switch level instead of setting static IP on each node.
It's recommended to put the cluster into separate VLAN, it's also personal preference.
I have a separate TrueNAS server for storage, so I'm using NFS for storage class.
TODO: Configure NFS on TrueNAS with ACL.
I need to prepare python environment for jinja template, and install ansible.
So I'm using go-task to install python and ansible.
task ansible:deps