ubicloud/prog
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
..
ai Use create_with_id in progs and routes 2025-08-07 02:13:08 +09:00
aws Enable transparent cache in AWS runners 2025-08-25 13:49:56 +03:00
dns_zone Change all create_with_id to create 2025-08-06 01:55:51 +09:00
github Replace unnecessary new_with_id calls with new 2025-08-06 01:55:51 +09:00
kubernetes Do not try to delete dns records if services_lb does not have DnsZone 2025-09-08 10:19:03 +02:00
minio Set MinIO parity properly and upgrade the version 2025-09-04 11:24:46 +02:00
postgres Implement Prog::Postgres::UpgradePostgresResource 2025-09-15 19:41:58 +02:00
storage Clover: Support Ubiblk v0.2.0. 2025-08-26 20:57:48 -07:00
test Update PostgresResource to write to the desired version column 2025-09-15 19:29:07 +02:00
victoria_metrics Use create_with_id in progs and routes 2025-08-07 02:13:08 +09:00
vm Use correct disk count calculation for i8g instance family 2025-09-15 19:13:52 +02:00
vnet Support FirewallRule updates on IPv6 disabled VMs 2025-09-04 14:15:35 +02:00
base.rb Use FOR NO KEY UPDATE instead of FOR UPDATE 2025-07-04 09:26:06 +09:00
bootstrap_rhizome.rb Check bundle, not bundler in bootstrap_rhizome 2025-09-12 10:53:44 +03:00
check_usage_alerts.rb Add usage alerting based on the total consumption 2024-04-22 16:00:57 +02:00
download_boot_image.rb Make PG run with unified image 2025-09-15 19:29:08 +02:00
download_cloud_hypervisor.rb Replace CloudHypervisor 45.0 hashes with 46.0 in Prog::DownloadCloudHypervisor 2025-07-11 05:14:41 +09:00
download_firmware.rb Add Prog to download firmware from control plane 2024-05-24 15:32:00 +02:00
expire_project_invitations.rb Change rubocop TargetRubyVersion to 3.4 2025-04-26 06:51:19 +09:00
heartbeat.rb Add missing service logging to heartbeat 2024-03-29 11:15:53 -07:00
install_dnsmasq.rb Absorb leaf into reap 2025-06-26 03:49:53 +09:00
install_rhizome.rb Change rubocop TargetRubyVersion to 3.4 2025-04-26 06:51:19 +09:00
learn_cpu.rb Fix learning total_dies in arm64. 2024-11-22 12:08:50 -08:00
learn_memory.rb Add an identifier to all Prog label methods 2023-08-23 12:09:57 +03:00
learn_network.rb VmHost learn network without IPv6 2025-09-04 14:15:35 +02:00
learn_os.rb Save OS version for VmHost 2024-11-21 11:50:30 -08:00
learn_pci.rb Replace unnecessary new_with_id calls with new 2025-08-06 01:55:51 +09:00
learn_storage.rb Replace unnecessary new_with_id calls with new 2025-08-06 01:55:51 +09:00
log_vm_host_utilizations.rb Log how many runners can fit into available capacity 2025-07-17 09:59:55 +01:00
page_nexus.rb Use create_with_id in progs and routes 2025-08-07 02:13:08 +09:00
redeliver_github_failures.rb Increase the frequency of redeliveries for failed GitHub webhook events 2025-03-25 14:16:06 +03:00
remove_boot_image.rb Program to remove a boot image. 2024-05-16 09:32:05 -07:00
resolve_globally_blocked_dnsnames.rb Better NetAddr/Sequel integration 2025-06-12 07:32:57 +09:00
rotate_ssh_key.rb Add an identifier to all Prog label methods 2023-08-23 12:09:57 +03:00
rotate_storage_kek.rb Remove unnecessary transactions in progs 2025-02-11 10:05:55 +03:00
setup_grafana.rb Absorb leaf into reap 2025-06-26 03:49:53 +09:00
setup_hugepages.rb Change the hugepages arithmetic. 2024-02-27 11:34:14 -08:00
setup_nftables.rb Change rubocop TargetRubyVersion to 3.4 2025-04-26 06:51:19 +09:00
setup_node_exporter.rb Add node_exporter installation prog to VmHost 2025-06-25 10:59:23 +02:00
setup_sysstat.rb Install Sysstat. 2023-11-10 12:54:43 -08:00
test.rb Combine donate into reap 2025-06-27 01:40:47 +09:00
validate_vat.rb Send an email if the validated VAT is invalid 2025-03-19 09:46:45 +03:00