Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 2.05 KB

Chap2.md

File metadata and controls

50 lines (34 loc) · 2.05 KB

Chapter 2: Workstation preparation

Prep workstation

Using go-task to install tools from Brew. See Taskfile.yaml

Tools and reason why we need it:

  1. Age: Encryption tool for secrets, we will use it to encrypt our secrets before pushing to git.
  2. Cloudflared: Pre-configure Cloudflare network for k0s cluster.
  3. Direnv: Inject extra env_var to current directory
  4. Flux: GitOps tool, keep our cluster in sync with git.
  5. Go-task: Task runner, we will use it to run Taskfile.yml.
  6. Helm: TBD
  7. jq: JSON processor.
  8. kubeconform: Validate Kubernetes YAML files against Kubernetes schemas.
  9. kubernetes-cli: Just kubectl.
  10. kustomize: Decorate Kubernetes YAML files; do I need this? or should I go with Terraform?
  11. moreutils: Collection of tools that nobody thought to write when UNIX was young.
  12. Sops: Used with Age to encrypt secrets.
  13. Stern: Tail multiple pods on Kubernetes and multiple containers within the pod.
  14. yq: YAML processor.

Install with go-task:

task workstation:brew

Networking

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.

Storage

I have a separate TrueNAS server for storage, so I'm using NFS for storage class.

TODO: Configure NFS on TrueNAS with ACL.

Prep ansible

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