mirror of
https://github.com/outbackdingo/homelab-v.git
synced 2026-08-25 07:10:14 +00:00
2.3 KiB
2.3 KiB
Kubernetes Tofu
Install pre-requisites
Initialize tofu
tofu init
Proxmox
Environment variable
export TF_VAR_proxmox_api_token="<YOUR_API_TOKEN>"
Optional External Secrets Manager / Other methods
Bitwarden Secrets Manager - Name your secret TF_VAR_proxmox_api_token in bws.
bws run -- tofu ...
Note: By default the shell is sh. Change with --shell if required.
Sealed-secrets
Generate certificate
openssl req -x509 -days 365 -nodes -newkey rsa:4096 -keyout sealed-secrets.key -out sealed-secrets.crt -subj "/CN=sealed-secret/O=sealed-secret"
Kubernetes
Output kubeconfig
tofu output -raw kube_config
Talos
Output talosconfig
tofu output -raw talos_config
Upgrading Talos and Kubernetes
Upgrade talos nodes one by one.
- Set talos_image.auto.tfvars -> image -> update_version to the required update version.
- Set talos_cluster.auto.tfvars -> talos_cluster_config -> kubernetes_version to the required kubernetes version.
- Set talos_nodes.auto.tfvars -> talos_nodes -> $node_1 -> update = true and run tofu apply.
- Set talos_nodes.auto.tfvars -> talos_nodes -> $node_2 -> update = true, leave the previous nodes update = true and run tofu apply.
- Set talos_nodes.auto.tfvars -> talos_nodes -> $node_3 -> update = true, leave the previous nodes update = true and run tofu apply.
- ...
- Set talos_nodes.auto.tfvars -> talos_nodes -> $node_n -> update = true, leave the previous nodes update = true and run tofu apply.
- After upgrading all nodes, Set talos_image.auto.tfvars -> image -> version to match the update version and set update = false for all nodes.
Upgrading Talos Schematic
- Create a new schematic file.
- Same process as above instead of image.version and image.update_version, change image.schematic and image.update_schematic, in talos_image.auto.tfvars.
Upgrading Kubernetes Only
Dry Run
sh upgrade-k8s.sh $CONTROLPLANE_NODE_IP --dry-run # For testing
Upgrade
sh upgrade-k8s.sh $CONTROLPLANE_NODE_IP