Skip to content

Commit bb71973

Browse files
committed
fix: ensure migration name length does not exceed google limits
1 parent b0284c9 commit bb71973

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

internal/pkg/resolved/resolved.go

+16-3
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ package resolved
33
import (
44
"context"
55
"fmt"
6-
nais_io_v1 "github.com/nais/liberator/pkg/apis/nais.io/v1"
7-
"github.com/sethvargo/go-retry"
86
"strings"
97
"time"
108

9+
nais_io_v1 "github.com/nais/liberator/pkg/apis/nais.io/v1"
10+
"github.com/nais/liberator/pkg/namegen"
11+
"github.com/sethvargo/go-retry"
12+
1113
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/sql/v1beta1"
1214
"github.com/nais/cloudsql-migrator/internal/pkg/common_main"
1315
"github.com/nais/cloudsql-migrator/internal/pkg/config"
@@ -87,7 +89,18 @@ func MigrationName(sourceName, targetName string) (string, error) {
8789
if len(sourceName) == 0 || len(targetName) == 0 {
8890
return "", fmt.Errorf("source and target must be resolved")
8991
}
90-
return fmt.Sprintf("%s-%s", sourceName, targetName), nil
92+
name := fmt.Sprintf("%s-%s", sourceName, targetName)
93+
94+
const maxlen = 60 // Google allows a max length of 60 for migration job names
95+
if len(name) > maxlen {
96+
var err error
97+
name, err = namegen.ShortName(name, maxlen)
98+
if err != nil {
99+
return "", fmt.Errorf("generating migration name: %w", err)
100+
}
101+
}
102+
103+
return name, nil
91104
}
92105

93106
func (i *Instance) resolveAppPassword(secret *v1.Secret) error {

0 commit comments

Comments
 (0)