-
Notifications
You must be signed in to change notification settings - Fork 776
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🐛 enhanced ud verification of cloneset #1608
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -274,6 +274,8 @@ | |
allErrs = append(allErrs, validateAdvancedStatefulSetUpdate(template.AdvancedStatefulSetTemplate, oldTemplate.AdvancedStatefulSetTemplate, fldPath.Child("advancedStatefulSetTemplate"))...) | ||
} else if template.DeploymentTemplate != nil && oldTemplate.DeploymentTemplate != nil { | ||
allErrs = append(allErrs, validateDeploymentUpdate(template.DeploymentTemplate, oldTemplate.DeploymentTemplate, fldPath.Child("deploymentTemplate"))...) | ||
} else if template.CloneSetTemplate != nil && oldTemplate.CloneSetTemplate != nil { | ||
allErrs = append(allErrs, validateCloneSetUpdate(template.CloneSetTemplate, oldTemplate.CloneSetTemplate, fldPath.Child("cloneSetTemplate"))...) | ||
} | ||
|
||
return allErrs | ||
|
@@ -340,6 +342,19 @@ | |
return allErrs | ||
} | ||
allErrs = append(allErrs, appsvalidation.ValidatePodTemplateSpecForReplicaSet(coreTemplate, nil, selector, 0, fldPath.Child("deploymentTemplate", "spec", "template"), webhookutil.DefaultPodValidationOptions)...) | ||
} else if template.CloneSetTemplate != nil { | ||
labels := labels.Set(template.CloneSetTemplate.Labels) | ||
if !selector.Matches(labels) { | ||
allErrs = append(allErrs, field.Invalid(fldPath.Child("cloneSetTemplate", "metadata", "labels"), template.CloneSetTemplate.Labels, "`selector` does not match template `labels`")) | ||
} | ||
allErrs = append(allErrs, validateCloneSet(template.CloneSetTemplate, fldPath.Child("cloneSetTemplate"))...) | ||
template := template.CloneSetTemplate.Spec.Template | ||
coreTemplate, err := convertor.ConvertPodTemplateSpec(&template) | ||
if err != nil { | ||
allErrs = append(allErrs, field.Invalid(fldPath.Root(), template, fmt.Sprintf("Convert_v1_PodTemplateSpec_To_core_PodTemplateSpec failed: %v", err))) | ||
return allErrs | ||
} | ||
allErrs = append(allErrs, appsvalidation.ValidatePodTemplateSpecForReplicaSet(coreTemplate, selector, 0, fldPath.Child("cloneSetTemplate", "spec", "template"), webhookutil.DefaultPodValidationOptions)...) | ||
Check failure on line 357 in pkg/webhook/uniteddeployment/validating/uniteddeployment_validation.go
|
||
} | ||
|
||
return allErrs | ||
|
@@ -380,6 +395,14 @@ | |
|
||
return allErrs | ||
} | ||
func validateCloneSet(cs *appsv1alpha1.CloneSetTemplateSpec, fldPath *field.Path) field.ErrorList { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The check is too simple, is it possible to refer to the cloneset validate webhook? |
||
allErrs := field.ErrorList{} | ||
if cs.Spec.Replicas != nil { | ||
allErrs = append(allErrs, field.Invalid(fldPath.Child("spec", "replicas"), *cs.Spec.Replicas, "replicas in cloneSetTemplate will not be used")) | ||
} | ||
|
||
return allErrs | ||
} | ||
|
||
func validateStatefulSetUpdate(statefulSet, oldStatefulSet *appsv1alpha1.StatefulSetTemplateSpec, fldPath *field.Path) field.ErrorList { | ||
allErrs := field.ErrorList{} | ||
|
@@ -438,3 +461,12 @@ | |
|
||
return allErrs | ||
} | ||
func validateCloneSetUpdate(cloneSet, oldCloneSet *appsv1alpha1.CloneSetTemplateSpec, fldPath *field.Path) field.ErrorList { | ||
allErrs := field.ErrorList{} | ||
|
||
if cloneSet.Spec.Replicas != nil { | ||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*cloneSet.Spec.Replicas), fldPath.Child("spec", "replicas"))...) | ||
} | ||
|
||
return allErrs | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pkg/webhook/uniteddeployment/validating/uniteddeployment_validation.go:357:163: not enough arguments in call to appsvalidation.ValidatePodTemplateSpecForReplicaSet