Skip to content

Commit

Permalink
validate override path fields
Browse files Browse the repository at this point in the history
  • Loading branch information
britaniar committed Apr 8, 2024
1 parent 649696e commit 3f5f9a5
Show file tree
Hide file tree
Showing 7 changed files with 484 additions and 294 deletions.
3 changes: 2 additions & 1 deletion apis/placement/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 7 additions & 8 deletions pkg/utils/validator/clusterresourceoverride.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import (

"k8s.io/apimachinery/pkg/util/errors"

fleetv1alpha1 "go.goms.io/fleet/apis/placement/v1alpha1"
fleetv1beta1 "go.goms.io/fleet/apis/placement/v1beta1"
placementv1alpha1 "go.goms.io/fleet/apis/placement/v1alpha1"
placementv1beta1 "go.goms.io/fleet/apis/placement/v1beta1"
)

// ValidateClusterResourceOverride validates cluster resource override fields and returns error.
func ValidateClusterResourceOverride(cro fleetv1alpha1.ClusterResourceOverride, croList *fleetv1alpha1.ClusterResourceOverrideList) error {
func ValidateClusterResourceOverride(cro placementv1alpha1.ClusterResourceOverride, croList *placementv1alpha1.ClusterResourceOverrideList) error {
allErr := make([]error, 0)

// Check if the resource is being selected by resource name
Expand All @@ -30,7 +30,6 @@ func ValidateClusterResourceOverride(cro fleetv1alpha1.ClusterResourceOverride,
allErr = append(allErr, err)
}

// Check if override rule is using label selector
if cro.Spec.Policy != nil {
if err := validateOverridePolicy(cro.Spec.Policy); err != nil {
allErr = append(allErr, err)
Expand All @@ -41,8 +40,8 @@ func ValidateClusterResourceOverride(cro fleetv1alpha1.ClusterResourceOverride,
}

// validateClusterResourceSelectors checks if override is selecting resource by name.
func validateClusterResourceSelectors(cro fleetv1alpha1.ClusterResourceOverride) error {
selectorMap := make(map[fleetv1beta1.ClusterResourceSelector]bool)
func validateClusterResourceSelectors(cro placementv1alpha1.ClusterResourceOverride) error {
selectorMap := make(map[placementv1beta1.ClusterResourceSelector]bool)
allErr := make([]error, 0)
for _, selector := range cro.Spec.ClusterResourceSelectors {
// Check if the resource is not being selected by label selector
Expand All @@ -65,12 +64,12 @@ func validateClusterResourceSelectors(cro fleetv1alpha1.ClusterResourceOverride)

// validateClusterResourceOverrideResourceLimit checks if there is only 1 cluster resource override per resource,
// assuming the resource will be selected by the name only.
func validateClusterResourceOverrideResourceLimit(cro fleetv1alpha1.ClusterResourceOverride, croList *fleetv1alpha1.ClusterResourceOverrideList) error {
func validateClusterResourceOverrideResourceLimit(cro placementv1alpha1.ClusterResourceOverride, croList *placementv1alpha1.ClusterResourceOverrideList) error {
// Check if croList is nil or empty, no need to check for resource limit
if croList == nil || len(croList.Items) == 0 {
return nil
}
overrideMap := make(map[fleetv1beta1.ClusterResourceSelector]string)
overrideMap := make(map[placementv1beta1.ClusterResourceSelector]string)
// Add overrides and its selectors to the map
for _, override := range croList.Items {
selectors := override.Spec.ClusterResourceSelectors
Expand Down
Loading

0 comments on commit 3f5f9a5

Please sign in to comment.