Workstation Setup

What you need to manage the cluster from your machine.

Quick Setup

# Install Homebrew packages
task workstation:brew

# Install kubectl plugins
task workstation:krew

Required Tools

Everything gets installed via Homebrew.

Core

ToolPurpose
kubernetes-clikubectl
talosctlTalos node management
fluxFlux CLI
helmHelm
helmfileDeclarative Helm
kustomizeKustomize

Development

ToolPurpose
go-taskTask runner
jqJSON wrangling
yqYAML wrangling
ageEncryption
sopsSecret operations

Cluster Management

ToolPurpose
k9sTerminal UI for Kubernetes
kubecolorColorized kubectl
sternMulti-pod log tailing
viddyModern watch command

Infrastructure

ToolPurpose
cloudflaredCloudflare tunnel
ghGitHub CLI
talhelperTalos config helper
minijinja-cliTemplate rendering

Secrets

ToolPurpose
1password1Password app
1password-cli1Password CLI

kubectl Plugins

Installed via Krew:

PluginPurpose
browse-pvcBrowse PVC contents
node-shellShell into nodes
rook-cephRook-Ceph commands
view-secretDecode secrets
cert-managerCert-manager commands
cnpgCloudNativePG commands

Configuration

Kubeconfig

The kubeconfig is at kubernetes/kubeconfig. Set the environment variable:

export KUBECONFIG=/path/to/home-cluster/kubernetes/kubeconfig

Or add to your shell profile.

Talos Config

Talos config lives in ~/.talos/config or wherever TALOSCONFIG points.

Regenerate it with:

task talos:kubeconfig

1Password

Authenticate:

eval $(op signin)

Check it works:

op user get --me

Shell Setup

Aliases

Add these to your .zshrc or .bashrc:

alias k='kubectl'
alias kc='kubecolor'
alias f='flux'
alias watch='viddy'
alias logs='stern'

Completions

source <(kubectl completion zsh)
source <(flux completion zsh)
source <(talosctl completion zsh)
source <(helm completion zsh)

Verify Everything Works

kubectl get nodes
talosctl version
flux check
op user get --me

Updating Tools

# Homebrew
brew update && brew upgrade

# Krew plugins
kubectl krew upgrade

# Resync with Brewfile
task workstation:brew