Page MenuHomePhabricator

Use infrastructure as code techniques to rebuild the Beta Cluster
Open, In Progress, MediumPublicFeature

Description

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:

Event Timeline

Some thoughts on monitoring in Beta Cluster veered towards this infra-as-code topic starting at https://wikis.world/@taavi/114506597878903250:

  • @taavi mentioned moving Beta Cluster hiera config entirely out of ops/puppet.git and into the Horizon managed settings all admins can modify.
  • @bd808 teased this infra-as-code idea.
  • @taavi pointed out that the hiera integration with OpenTofu has some quirks that could be improved. He also shared a new abstraction he is working on for Toolforge services.
  • @bd808 wondered if some gitlab-ci integration might help smooth over the YAML formatting constraints of the current OpenTofu integration.

I had some conversations with @jeremyb at the Istanbul Hackathon that are related to this topic, so I"m pinging him into the task.

• bd808 changed the task status from Open to In Progress.Aug 31 2026, 3:22 AM
• bd808 triaged this task as Medium priority.

This is being actively used in the work for T401839: Migrate deployment-prep away from Debian Bullseye to Bookworm/Trixie. We are not likely to have all of the Bullseye replacements built with tofu, but we will get some. The rest can be imported later and/or replaced again via this gitops tooling.