ubicloud/rhizome
shikharbhardwaj 56bf890ae2
Implement Prog::Postgres::UpgradePostgresResource
The Upgrade prog is responsible for matching the current Postgres
version to the desired version. If there is a mismatch (current <
desired), the Upgrade prog is launched and takes precedence over
Convergence.

Roughly, the Upgrade prog does the following:
1. Create a new "candidate standby" with the same version as the current
   one and wait for it to catch up.
2. Fence the current primary.
3. Upgrade the candidate standby to the desired version.
4. Switch the candidate to use a new timeline.
5. Take over from the current primary.
6. Prune any older version servers and exit. The convergence prog will
   take care of starting any new standbys needed.

In case anything fails, we delete the candidate standby and unfence the
primary to bring the database back. During the Upgrade health checking
is effectively disabled as the auto-recovery causes conflicts with the
several restarts of various versions on the candidate.
2025-09-15 19:41:58 +02:00
..
common Move metrics-collector to rhizome/common/bin 2025-05-23 12:42:17 +05:30
host Support VMs without IPv6 2025-09-04 14:15:35 +02:00
inference_endpoint Fix rhizome code not compatible with Ruby 3.0 2025-05-06 23:18:09 +09:00
kubernetes Install Metrics Server on new Kubernetes Clusters 2025-07-14 14:13:41 +03:00
minio/bin Enable minio.service so that we auto start after a possible reboot 2024-02-13 15:03:56 +01:00
postgres Implement Prog::Postgres::UpgradePostgresResource 2025-09-15 19:41:58 +02:00
victoria_metrics/bin Add -dedup.minScrapeInterval to VictoriaMetrics command line 2025-05-08 16:47:01 +05:30
.rubocop.yml Change rhizome TargetRubyVersion to 3.0 2025-05-06 23:18:09 +09:00
Gemfile Make BUNDLE_GEMFILE=rhizome/Gemfile bundle install work from repository root 2025-05-06 23:18:09 +09:00
Gemfile.lock Add base64 to rhizome/host Gemfile 2025-04-29 16:45:24 -07:00