github.com/ironcore-dev/gardener-extension-provider-ironcore@v0.3.2-0.20240314231816-8336447fb9a0/pkg/apis/ironcore/validation/infrastructure.go (about) 1 // SPDX-FileCopyrightText: 2022 SAP SE or an SAP affiliate company and IronCore contributors 2 // SPDX-License-Identifier: Apache-2.0 3 4 package validation 5 6 import ( 7 apivalidation "k8s.io/apimachinery/pkg/api/validation" 8 "k8s.io/apimachinery/pkg/util/validation/field" 9 10 apisironcore "github.com/ironcore-dev/gardener-extension-provider-ironcore/pkg/apis/ironcore" 11 ) 12 13 // ValidateInfrastructureConfig validates a InfrastructureConfig object. 14 func ValidateInfrastructureConfig(infra *apisironcore.InfrastructureConfig, nodesCIDR, podsCIDR, servicesCIDR *string, fldPath *field.Path) field.ErrorList { 15 allErrs := field.ErrorList{} 16 17 if infra.NetworkRef != nil { 18 for _, msg := range apivalidation.NameIsDNSLabel(infra.NetworkRef.Name, false) { 19 allErrs = append(allErrs, field.Invalid(fldPath.Child("networkRef").Child("name"), infra.NetworkRef.Name, msg)) 20 } 21 } 22 23 return allErrs 24 } 25 26 // ValidateInfrastructureConfigUpdate validates a InfrastructureConfig object. 27 func ValidateInfrastructureConfigUpdate(oldConfig, newConfig *apisironcore.InfrastructureConfig, fldPath *field.Path) field.ErrorList { 28 var ( 29 allErrs = field.ErrorList{} 30 ) 31 allErrs = append(allErrs, apivalidation.ValidateImmutableField(newConfig.NetworkRef, oldConfig.NetworkRef, fldPath.Child("networkRef"))...) 32 33 return allErrs 34 }