diff --git a/pkg/internal/apis/config/validate.go b/pkg/internal/apis/config/validate.go index 1aebb29418..7829cd074f 100644 --- a/pkg/internal/apis/config/validate.go +++ b/pkg/internal/apis/config/validate.go @@ -20,6 +20,7 @@ import ( "fmt" "net" "regexp" + "strconv" "strings" "sigs.k8s.io/kind/pkg/errors" @@ -171,7 +172,7 @@ func validatePortMappings(portMappings []PortMapping) error { addrString := addr.String() portProtocol := formatPortProtocol(portMapping.HostPort, portMapping.Protocol) - possibleErr := fmt.Errorf("%s: %s:%s", errMsg, addrString, portProtocol) + possibleErr := fmt.Errorf("%s: %s/%s", errMsg, net.JoinHostPort(addrString, strconv.Itoa(int(portMapping.HostPort))), portMapping.Protocol) // in golang 0.0.0.0 and [::] are equivalent, convert [::] -> 0.0.0.0 // https://github.com/golang/go/issues/48723 diff --git a/pkg/internal/apis/config/validate_test.go b/pkg/internal/apis/config/validate_test.go index 5b8b089c7a..41dd2353e0 100644 --- a/pkg/internal/apis/config/validate_test.go +++ b/pkg/internal/apis/config/validate_test.go @@ -18,7 +18,6 @@ package config import ( "fmt" - "sigs.k8s.io/kind/pkg/internal/assert" "testing" "sigs.k8s.io/kind/pkg/errors" @@ -563,7 +562,16 @@ func TestValidatePortMappings(t *testing.T) { t.Parallel() err := validatePortMappings(tc.portMappings) - assert.ExpectError(t, len(tc.expectErr) > 0, err) + + // the error can be: + // - nil, in which case we should expect no errors or fail + if err == nil && len(tc.expectErr) > 0 { + t.Errorf("Test failed, unexpected error: %s", tc.expectErr) + } + + if err != nil && err.Error() != tc.expectErr { + t.Errorf("Test failed, error: %s expected error: %s", err, tc.expectErr) + } }) } }