ubicloud/model
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 Stop using serializer for inference endpoint route 2025-08-26 02:08:44 +09:00
dns_zone Convert SemaphoreMethods to Sequel plugin 2025-07-09 00:42:44 +09:00
github Log blob storage setup completion 2025-08-20 09:27:49 +02:00
kubernetes Use the first functional node for KubernetesCluster#sshable 2025-09-02 13:28:07 +02:00
minio Add ResourceMethods plugin encrypted_columns argument 2025-07-09 05:45:18 +09:00
postgres Implement Prog::Postgres::UpgradePostgresResource 2025-09-15 19:41:58 +02:00
access_control_entry.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
account.rb Support configurable labels for links on admin site 2025-09-04 02:37:23 +09:00
account_identity.rb Add identities association to the account 2024-12-30 12:22:26 +03:00
action_tag.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
action_type.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
address.rb Revert "Revert the use of the ipv4_address table to speed up VmHost#ip4_random_vm_network" 2025-06-21 07:53:00 +09:00
api_key.rb Add ApiKey#path 2025-08-26 02:08:44 +09:00
archived_record.rb Create ArchivedRecord model 2024-12-14 11:48:31 +01:00
assigned_host_address.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
assigned_vm_address.rb Fix AssignedVmAddress#vm association 2025-06-25 05:12:03 +09:00
aws_instance.rb Add migration for EC2 DNS name 2025-08-05 16:26:18 +02:00
billing_info.rb Allow customers to add additional note to invoice 2025-09-05 13:46:45 +03:00
billing_record.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
boot_image.rb Change all create_with_id to create 2025-08-06 01:55:51 +09:00
cert.rb Rename CertsLoadBalancers to LoadBalancerCert 2025-08-08 00:31:44 +09:00
connected_subnet.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
discount_code.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
firewall.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
firewall_rule.rb Add Firewall#display_port_range 2025-08-08 01:52:14 +09:00
github_installation.rb Fix free premium runner upgrade logic 2025-07-03 18:14:55 +03:00
github_runner.rb Check premium utilization for the premium concurrency check as well 2025-07-24 12:56:45 +03:00
globally_blocked_dnsname.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
host_provider.rb Drop HetznerHost table 2025-01-31 14:24:34 +01:00
invoice.rb Allow customers to add additional note to invoice 2025-09-05 13:46:45 +03:00
ipsec_tunnel.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
load_balancer.rb Add LoadBalancer#health_check_url 2025-08-27 04:31:08 +09:00
load_balancer_cert.rb Rename CertsLoadBalancers to LoadBalancerCert 2025-08-08 00:31:44 +09:00
load_balancer_port.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
load_balancer_vm.rb Rename LoadBalancersVms to LoadBalancerVm 2025-08-08 00:31:44 +09:00
load_balancer_vm_port.rb Remove duplicate retry logic for LoadBalancerVmPort healthcheck 2025-09-08 11:47:10 +02:00
location.rb Use arch while selecting the target AMI for Postgres 2025-07-07 10:52:33 +03:00
location_credential.rb Setup individual instance IAMs to be used by cloudwatch agent 2025-07-28 09:44:57 +03:00
locked_domain.rb Make locked_domain.domain column citext instead of text 2025-07-17 00:44:40 +09:00
nic.rb Stop using serializers in the private subnet show template 2025-08-08 01:52:14 +09:00
nic_aws_resource.rb Migration to add network_interface_id column 2025-07-07 10:52:33 +03:00
object_metatag.rb Avoid explicitly casting string arrays used for = ANY/!= ALL 2025-04-30 06:05:53 +09:00
object_tag.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
oidc_provider.rb Replace unnecessary new_with_id calls with new 2025-08-06 01:55:51 +09:00
page.rb Add Page.group_by_vm_host dataset method 2025-09-03 02:39:04 +09:00
payment_method.rb Add PaymentMethod#path 2025-08-26 02:08:44 +09:00
pci_device.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
pg_aws_ami.rb Migration to add arch column to pg_aws_ami 2025-07-07 10:52:33 +03:00
private_subnet.rb Rename FirewallsPrivateSubnets to PrivateSubnetFirewall 2025-08-08 00:31:44 +09:00
private_subnet_aws_resource.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
private_subnet_firewall.rb Rename FirewallsPrivateSubnets to PrivateSubnetFirewall 2025-08-08 00:31:44 +09:00
project.rb Add feature flag for i8g instance family 2025-09-15 19:13:52 +02:00
project_discount_code.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
project_invitation.rb Move unrestrict primary key calls inside the related model 2025-06-04 04:55:45 +09:00
project_quota.rb Move unrestrict primary key calls inside the related model 2025-06-04 04:55:45 +09:00
semaphore.rb Make Semaphore.incr use a single query 2025-06-04 05:26:37 +09:00
spdk_installation.rb Use ResourceMethods plugin in SpdkInstallation 2025-06-04 04:55:45 +09:00
sshable.rb Add ResourceMethods plugin encrypted_columns argument 2025-07-09 05:45:18 +09:00
storage_device.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
storage_key_encryption_key.rb Add ResourceMethods plugin encrypted_columns argument 2025-07-09 05:45:18 +09:00
strand.rb Use FOR NO KEY UPDATE instead of FOR UPDATE 2025-07-04 09:26:06 +09:00
subject_tag.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
usage_alert.rb Convert ResourceMethods to a plugin 2025-06-04 04:55:45 +09:00
vhost_block_backend.rb Clover: Ubiblk setup 2025-06-11 11:24:17 -07:00
victoria_metrics_resource.rb Make VictoriaMetricsResource.redacted_columns unique 2025-07-17 00:44:14 +09:00
victoria_metrics_server.rb Add ResourceMethods plugin encrypted_columns argument 2025-07-09 05:45:18 +09:00
vm.rb Support VMs without IPv6 2025-09-04 14:15:35 +02:00
vm_host.rb Enable retry logic for VmHost monitor healthchecks 2025-09-08 11:47:10 +02:00
vm_host_cpu.rb Move unrestrict primary key calls inside the related model 2025-06-04 04:55:45 +09:00
vm_host_slice.rb Convert SemaphoreMethods to Sequel plugin 2025-07-09 00:42:44 +09:00
vm_pool.rb Convert SemaphoreMethods to Sequel plugin 2025-07-09 00:42:44 +09:00
vm_storage_volume.rb Use vring_workers as num_queues of Ubiblk backed volumes. 2025-09-09 11:58:45 -07:00