Skip to content

Commit 286a222

Browse files
committed
Use hash instead of projectname.tenant for byoc delegate domain
1 parent d6be235 commit 286a222

File tree

2 files changed

+15
-23
lines changed

2 files changed

+15
-23
lines changed

src/pkg/cli/client/byoc/aws/byoc.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package aws
33
import (
44
"bytes"
55
"context"
6+
"crypto/sha256"
67
"encoding/base64"
78
"encoding/json"
89
"errors"
@@ -651,18 +652,9 @@ func (b *ByocAws) getProjectDomain(account, zone string) string {
651652
if b.ProjectName == "" {
652653
return "" // no project name => no custom domain
653654
}
654-
var buf strings.Builder
655-
if account != "" {
656-
buf.WriteString(account)
657-
buf.WriteByte('.')
658-
}
659-
projectLabel := byoc.DnsSafeLabel(b.ProjectName)
660-
if projectLabel != byoc.DnsSafeLabel(b.TenantID) {
661-
buf.WriteString(projectLabel)
662-
buf.WriteByte('.')
663-
}
664-
buf.WriteString(byoc.DnsSafe(zone))
665-
return buf.String()
655+
h := sha256.New()
656+
fmt.Fprintf(h, "%s.%s.%s.%s", account, b.ProjectName, b.TenantID, zone)
657+
return fmt.Sprintf("%x", h.Sum(nil)[:8]) + "." + byoc.DnsSafe(zone)
666658
}
667659

668660
func (b *ByocAws) TearDown(ctx context.Context) error {

src/pkg/cli/client/byoc/aws/byoc_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,17 @@ func TestDomainMultipleProjectSupport(t *testing.T) {
2323
PublicFqdn string
2424
PrivateFqdn string
2525
}{
26-
{"tenant1", "tenant1", "web", port80, "web--80.123456789012.example.com", "web.123456789012.example.com", "web.tenant1.internal"},
27-
{"tenant1", "tenant1", "web", hostModePort, "web.tenant1.internal:80", "web.123456789012.example.com", "web.tenant1.internal"},
28-
{"project1", "tenant1", "web", port80, "web--80.123456789012.project1.example.com", "web.123456789012.project1.example.com", "web.project1.internal"},
29-
{"Project1", "tenant1", "web", port80, "web--80.123456789012.project1.example.com", "web.123456789012.project1.example.com", "web.project1.internal"},
30-
{"project1", "tenant1", "web", hostModePort, "web.project1.internal:80", "web.123456789012.project1.example.com", "web.project1.internal"},
31-
{"project1", "tenant1", "api", port8080, "api--8080.123456789012.project1.example.com", "api.123456789012.project1.example.com", "api.project1.internal"},
32-
{"tenant1", "tenant1", "web", port80, "web--80.123456789012.example.com", "web.123456789012.example.com", "web.tenant1.internal"},
33-
{"tenant1", "tenant1", "web", hostModePort, "web.tenant1.internal:80", "web.123456789012.example.com", "web.tenant1.internal"},
34-
{"Project1", "tenant1", "web", port80, "web--80.123456789012.project1.example.com", "web.123456789012.project1.example.com", "web.project1.internal"},
35-
{"Tenant2", "tenant1", "web", port80, "web--80.123456789012.tenant2.example.com", "web.123456789012.tenant2.example.com", "web.tenant2.internal"},
36-
{"tenant1", "tenAnt1", "web", port80, "web--80.123456789012.example.com", "web.123456789012.example.com", "web.tenant1.internal"},
26+
{"tenant1", "tenant1", "web", port80, "web--80.1fa1857b71717f6b.example.com", "web.1fa1857b71717f6b.example.com", "web.tenant1.internal"},
27+
{"tenant1", "tenant1", "web", hostModePort, "web.tenant1.internal:80", "web.1fa1857b71717f6b.example.com", "web.tenant1.internal"},
28+
{"project1", "tenant1", "web", port80, "web--80.1ac7562668796635.example.com", "web.1ac7562668796635.example.com", "web.project1.internal"},
29+
{"Project1", "tenant1", "web", port80, "web--80.40b35d8b26ff71ae.example.com", "web.40b35d8b26ff71ae.example.com", "web.project1.internal"},
30+
{"project1", "tenant1", "web", hostModePort, "web.project1.internal:80", "web.1ac7562668796635.example.com", "web.project1.internal"},
31+
{"project1", "tenant1", "api", port8080, "api--8080.1ac7562668796635.example.com", "api.1ac7562668796635.example.com", "api.project1.internal"},
32+
{"tenant1", "tenant1", "web", port80, "web--80.1fa1857b71717f6b.example.com", "web.1fa1857b71717f6b.example.com", "web.tenant1.internal"},
33+
{"tenant1", "tenant1", "web", hostModePort, "web.tenant1.internal:80", "web.1fa1857b71717f6b.example.com", "web.tenant1.internal"},
34+
{"Project1", "tenant1", "web", port80, "web--80.40b35d8b26ff71ae.example.com", "web.40b35d8b26ff71ae.example.com", "web.project1.internal"},
35+
{"Tenant2", "tenant1", "web", port80, "web--80.f5600a0d61784e9d.example.com", "web.f5600a0d61784e9d.example.com", "web.tenant2.internal"},
36+
{"tenant1", "tenAnt1", "web", port80, "web--80.7360f2237c979f46.example.com", "web.7360f2237c979f46.example.com", "web.tenant1.internal"},
3737
}
3838

3939
for _, tt := range tests {

0 commit comments

Comments
 (0)