The Beta Cluster is a shared space where we historically have various difficulties keeping things documented and well-maintained. This struggle becomes more acute every time a Debian version deprecation or similar large scale instance rebuild trigger fires in our environment.
The modern Cloud VPS environment supports using OpenTofu to manage instances and many related OpenStack objects. This can be combined with gitlab-ci automation to implement a "gitops" workflow where we can write code and config to provision new instances, apply hiera settings and Puppet modules to those instances, and manage related networking rules, DNS entries, HTTP proxies, and more.
Adopting these tools and techniques incrementally as Beta Cluster is updated for new requirements and use cases will allow us to learn new techniques, create living documentation in the form of versioned config, and hopefully reduce toil for future iterations of platform updates.
See also:
- https://wikitech.wikimedia.org/wiki/Help:Using_OpenTofu_on_Cloud_VPS
- https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS/Admin/OpenTofu
- https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS/Admin/tofu-infra
- https://gitlab.wikimedia.org/cloudvps-repos/deployment-prep/tofu-provisioning
- T372498: Figure out how to provision a Kubernetes cluster using Magnum and OpenTofu