ubicloud/spec/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 Change all create_with_id to create 2025-08-06 01:55:51 +09:00
aws Enable transparent cache in AWS runners 2025-08-25 13:49:56 +03:00
dns_zone Use create_with_id in the specs 2025-08-07 02:13:08 +09:00
github Change all create_with_id to create 2025-08-06 01:55:51 +09:00
kubernetes Fix flaky test in k8s node provisioning 2025-09-08 10:19:19 +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 Use create_with_id in the specs 2025-08-07 02:13:08 +09:00
test Add e2e tests for kubernetes 2025-09-08 10:19:03 +02:00
victoria_metrics Change all create_with_id to create 2025-08-06 01:55:51 +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_spec.rb Use create_with_id in the specs 2025-08-07 02:13:08 +09:00
bootstrap_rhizome_spec.rb Check bundle, not bundler in bootstrap_rhizome 2025-09-12 10:53:44 +03:00
check_usage_alerts_spec.rb Remove all skip_if_frozen{_models} calls in the specs 2024-10-30 12:08:24 -07:00
download_boot_image_spec.rb Print image download logs if it's failed 2025-08-27 20:06:15 +03:00
download_cloud_hypervisor_spec.rb Add create_vm_host spec helper 2025-02-03 08:34:22 +03:00
download_firmware_spec.rb Add create_vm_host spec helper 2025-02-03 08:34:22 +03:00
expire_project_invitations_spec.rb Expire project invitation after 7 days 2024-09-10 19:21:45 +03:00
heartbeat_spec.rb Call original Clog.emit message when mocking in the tests 2025-05-31 01:20:38 +09:00
install_dnsmasq_spec.rb Have last exiting child schedule parent strand 2025-06-28 03:30:43 +09:00
install_rhizome_spec.rb Re-enable Rhizome Validation 2024-11-04 13:53:55 +02:00
learn_cpu_spec.rb Fix learning total_dies in arm64. 2024-11-22 12:08:50 -08:00
learn_memory_spec.rb Clean up nap/hop/exit expectations in specs 2023-10-31 18:04:34 +03:00
learn_network_spec.rb VmHost learn network without IPv6 2025-09-04 14:15:35 +02:00
learn_os_spec.rb Switch VM Host Reimage defaults and specs to Ubuntu 24.04 2025-09-12 10:53:44 +03:00
learn_pci_spec.rb Change all create_with_id to create 2025-08-06 01:55:51 +09:00
learn_storage_spec.rb Change all create_with_id to create 2025-08-06 01:55:51 +09:00
log_vm_host_utilizations_spec.rb Log how many runners can fit into available capacity 2025-07-17 09:59:55 +01:00
page_nexus_spec.rb Change rubocop TargetRubyVersion to 3.4 2025-04-26 06:51:19 +09:00
redeliver_github_failures_spec.rb Use Time.utc instead of Time.parse in tests 2025-04-30 16:44:32 +03:00
remove_boot_image_spec.rb Change all create_with_id to create 2025-08-06 01:55:51 +09:00
resolve_globally_blocked_dnsnames_spec.rb Change all create_with_id to create 2025-08-06 01:55:51 +09:00
rotate_ssh_key_spec.rb Add tests for Prog::RotateSshKey 2023-08-07 09:44:56 +03:00
rotate_storage_kek_spec.rb Change rubocop TargetRubyVersion to 3.4 2025-04-26 06:51:19 +09:00
setup_grafana_spec.rb Have last exiting child schedule parent strand 2025-06-28 03:30:43 +09:00
setup_hugepages_spec.rb Change the hugepages arithmetic. 2024-02-27 11:34:14 -08:00
setup_nftables_spec.rb Start using nftables at host to block unused ip addresses 2024-02-21 11:40:20 +01:00
setup_node_exporter_spec.rb Add node_exporter installation prog to VmHost 2025-06-25 10:59:23 +02:00
setup_sysstat_spec.rb Install Sysstat. 2023-11-10 12:54:43 -08:00
test_smoke_spec.rb Add respirate smoke test 2025-05-31 01:20:38 +09:00
validate_vat_spec.rb Send an email if the validated VAT is invalid 2025-03-19 09:46:45 +03:00