diff --git a/pkg/asset/installconfig/gcp/validation.go b/pkg/asset/installconfig/gcp/validation.go index e1c5a550ae7..9283d45af87 100644 --- a/pkg/asset/installconfig/gcp/validation.go +++ b/pkg/asset/installconfig/gcp/validation.go @@ -393,7 +393,7 @@ func validatePreexistingServiceAccount(client API, ic *types.InstallConfig) fiel // checked for any public zone that can be used. func ValidatePreExistingPublicDNS(client API, ic *types.InstallConfig) field.ErrorList { // If this is an internal cluster, this check is not necessary - if ic.Publish == types.InternalPublishingStrategy { + if ic.Publish == types.InternalPublishingStrategy || ic.GCP.UserProvisionedDNS == dnstypes.UserProvisionedDNSEnabled { return nil } allErrs := field.ErrorList{} diff --git a/pkg/asset/installconfig/gcp/validation_test.go b/pkg/asset/installconfig/gcp/validation_test.go index 6ccb5e5b883..fd771407918 100644 --- a/pkg/asset/installconfig/gcp/validation_test.go +++ b/pkg/asset/installconfig/gcp/validation_test.go @@ -26,6 +26,7 @@ import ( "github.com/openshift/installer/pkg/asset/installconfig/gcp/mock" "github.com/openshift/installer/pkg/ipnet" "github.com/openshift/installer/pkg/types" + customDNS "github.com/openshift/installer/pkg/types/dns" "github.com/openshift/installer/pkg/types/gcp" ) @@ -116,6 +117,7 @@ var ( validateXpnSA = func(ic *types.InstallConfig) { ic.ControlPlane.Platform.GCP.ServiceAccount = validXpnSA } invalidateXpnSA = func(ic *types.InstallConfig) { ic.ControlPlane.Platform.GCP.ServiceAccount = invalidXpnSA } invalidateBaseDomain = func(ic *types.InstallConfig) { ic.BaseDomain = invalidBaseDomain } + enableCustomDNS = func(ic *types.InstallConfig) { ic.GCP.UserProvisionedDNS = customDNS.UserProvisionedDNSEnabled } validServiceEndpoint = func(ic *types.InstallConfig) { ic.Publish = types.InternalPublishingStrategy @@ -485,6 +487,12 @@ func TestGCPInstallConfigValidation(t *testing.T) { expectedError: true, expectedErrMsg: `baseDomain: Not found: "invalid.installer.domain."`, }, + { + name: "Custom DNS does not require existing base domain", + edits: editFunctions{enableCustomDNS, invalidateBaseDomain}, + records: []*dns.ResourceRecordSet{}, + expectedError: false, + }, } mockCtrl := gomock.NewController(t) defer mockCtrl.Finish()