Skip to content

Commit

Permalink
PG Unregistration Update (#4168)
Browse files Browse the repository at this point in the history
* Adding version conditional to determine when to use new member unregistration logic

* This is a little less sketchy

* rename variable
  • Loading branch information
davissp14 authored Jan 16, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 962ba63 commit 0a7d265
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions internal/command/postgres/postgres.go
Original file line number Diff line number Diff line change
@@ -208,10 +208,31 @@ func UnregisterMember(ctx context.Context, app *fly.AppCompact, machine *fly.Mac
return err
}

hostname := fmt.Sprintf("%s.vm.%s.internal", machine.ID, app.Name)
machineVersionStr := strings.TrimPrefix(machine.ImageVersion(), "v")

if err := cmd.UnregisterMember(ctx, leader.PrivateIP, hostname); err != nil {
if err2 := cmd.UnregisterMember(ctx, leader.PrivateIP, machine.PrivateIP); err2 != nil {
flyVersion, err := version.NewVersion(machineVersionStr)
if err != nil {
return fmt.Errorf("failed to parse machine version: %w", err)
}

// This is the version where we begin using Machine IDs instead of hostnames
versionGate, err := version.NewVersion("0.0.63")
if err != nil {
return fmt.Errorf("failed to parse logic gate version: %w", err)
}

if flyVersion.LessThan(versionGate) {
// Old logic
hostname := fmt.Sprintf("%s.vm.%s.internal", machine.ID, app.Name)

if err := cmd.UnregisterMember(ctx, leader.PrivateIP, hostname); err != nil {
if err2 := cmd.UnregisterMember(ctx, leader.PrivateIP, machine.PrivateIP); err2 != nil {
return err
}
}

} else {
if err := cmd.UnregisterMember(ctx, leader.PrivateIP, machine.ID); err != nil {
return err
}
}

0 comments on commit 0a7d265

Please sign in to comment.