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  }