Bump omnibus on Redis VMs to get Ruby 3
A couple interacting dependencies here:
- We use omnibus to manage Redis on the Redis VM fleets (except for Redis Cluster).
- We pin the omnibus version to a specific tag to avoid uncoordinated version changes and Redis restarts.
- This ties us to various older versions, including an older Ruby version.
- We use
gitlab-exporter
running on these VMs to export metrics about queue size. -
gitlab-exporter
uses the Ruby binary provided by omnibus. - We attempted to remove Ruby 2.7 support: https://gitlab.com/gitlab-org/gitlab-exporter/-/merge_requests/192.
- This failed because those VMs still are running Ruby 2.7.
- As a short-term mitigation, we will re-introduce Ruby 2.7 support in
gitlab-exporter
, but since it is EOL, we want to migrate to Ruby 3 proper.
The most obvious path to achieve that is:
- We bump the omnibus version on all Redis fleets and perform coordinated reconfigure.
Notes on more long-term approaches:
- As we're migrating more and more workloads to Redis Cluster and Redis Sentinel on Kubernetes, we may at some point no longer have omnibus-based Redis VMs.
- We already guard against chef performing automated reconfigure. If we can gain confidence (or otherwise ensure) that Redis is not restarted during a package update, we could remove the pinning and keep omnibus up to date on these machines.
- Coordinated chef runs (e.g. guarded via consul lock), so that no two Redises will be restarted at the same time.
Edited by Igor