diff --git a/TODO.md b/TODO.md index 44bc1b1..e28ac9f 100644 --- a/TODO.md +++ b/TODO.md @@ -94,6 +94,32 @@ committed to Git, stored in Terraform state, or printed in CI logs. - [ ] Document which Proxmox actions remain outside Ansible, such as selecting storage, VM ID, bridge, and Flatcar image source. +## Priority 4a: Flatcar lifecycle management guide + +- [ ] Write a dedicated Flatcar lifecycle guide under `docs/`. + - [ ] Explain Flatcar release channels and how to select a channel for test, + staging, and production hosts. + - [ ] Document how to pin and record the Flatcar image or release version. + - [ ] Document Ignition as first-boot configuration and explain which host + changes belong in Ignition versus Ansible. + - [ ] Document update-engine behavior, update deferral, maintenance windows, + and controlled reboots. + - [ ] Add pre-update health checks for Kubernetes nodes, Falco, Cilium, + container runtime access, storage, and kubeconfig connectivity. + - [ ] Add a drain and uncordon workflow for Kubernetes nodes before and after + a reboot. + - [ ] Document how to update Proxmox Flatcar images without overwriting the + VM disk before the replacement image is validated. + - [ ] Document cloud image or AMI replacement and instance rotation for the + Terraform path. + - [ ] Define rollback procedures for failed updates, including the previous + Flatcar image, VM snapshot policy, and Kubernetes workload recovery. + - [ ] Define recovery steps for failed Ignition, failed boot, lost SSH, and + a node that does not return to `Ready`. + - [ ] Document backup and recovery requirements for kubeconfig, GitOps state, + Ansible Vault data, and any locally stored cluster credentials. + - [ ] Add a lifecycle checklist suitable for interviews and portfolio review. + ## Priority 5: Terraform and cloud path - [ ] Pass Terraform outputs into Ansible inventory generation.