Skip to content

Commit a7dfad3

Browse files
author
Nont
committed
Change to using 1123 subdomain validation
Signed-off-by: Nont <[email protected]>
1 parent 3cc2eaf commit a7dfad3

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

pkg/utils/validator/clusterresourceplacement.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,13 @@ func validatePolicyForPickFixedPlacementType(policy *placementv1beta1.PlacementP
194194
}
195195
uniqueClusterNames := make(map[string]bool)
196196
for _, name := range policy.ClusterNames {
197-
nameErr := validation.IsDNS1123Label(name)
197+
nameErr := validation.IsDNS1123Subdomain(name)
198198
if nameErr != nil {
199199
allErr = append(allErr, fmt.Errorf("PickFixed cluster name %s is not a valid member name: %s", name, strings.Join(nameErr, "; ")))
200200
}
201+
if len(name) > validation.DNS1035LabelMaxLength {
202+
allErr = append(allErr, fmt.Errorf("PickFixed cluster name %s cannot have length exceeding %d", name, validation.DNS1035LabelMaxLength))
203+
}
201204
if _, ok := uniqueClusterNames[name]; ok {
202205
allErr = append(allErr, fmt.Errorf("cluster names must be unique for policy type %s", placementv1beta1.PickFixedPlacementType))
203206
break

pkg/utils/validator/clusterresourceplacement_test.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -517,10 +517,18 @@ func TestValidateClusterResourcePlacement_PickFixedPlacementPolicy(t *testing.T)
517517
"invalid placement policy - PickFixed with invalid cluster names": {
518518
policy: &placementv1beta1.PlacementPolicy{
519519
PlacementType: placementv1beta1.PickFixedPlacementType,
520-
ClusterNames: []string{"test@,cluster1", "test$cluster2"},
520+
ClusterNames: []string{"test@,cluster1"},
521521
},
522522
wantErr: true,
523-
wantErrMsg: "PickFixed cluster name test@,cluster1 is not a valid member name: a lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?'), PickFixed cluster name test$cluster2 is not a valid member name: a lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?')",
523+
wantErrMsg: "PickFixed cluster name test@,cluster1 is not a valid member name: a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')",
524+
},
525+
"invalid placement policy - PickFixed with too long cluster name": {
526+
policy: &placementv1beta1.PlacementPolicy{
527+
PlacementType: placementv1beta1.PickFixedPlacementType,
528+
ClusterNames: []string{"this-is-a-very-long-cluster-name-that-exceeds-the-maximum-allowed-length-for-dns-labels"},
529+
},
530+
wantErr: true,
531+
wantErrMsg: "PickFixed cluster name this-is-a-very-long-cluster-name-that-exceeds-the-maximum-allowed-length-for-dns-labels cannot have length exceeding 63",
524532
},
525533
"invalid placement policy - PickFixed with non nil number of clusters": {
526534
policy: &placementv1beta1.PlacementPolicy{

0 commit comments

Comments
 (0)