mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
restore test behavior for CRD without validation cases
the test doesn't set empty validation but expects CRD controller to treat nil schema specially and publish an empty schema
This commit is contained in:
parent
1cfed1cca6
commit
629bdf5e84
@ -341,13 +341,17 @@ func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, version
|
||||
return nil, fmt.Errorf("require at least one version for CRD")
|
||||
}
|
||||
|
||||
if schema == nil {
|
||||
schema = []byte(`type: object`)
|
||||
}
|
||||
expect := schema
|
||||
props := &v1beta1.JSONSchemaProps{}
|
||||
if schema == nil {
|
||||
// to be backwards compatible, we expect CRD controller to treat
|
||||
// CRD with nil schema specially and publish an empty schema
|
||||
expect = []byte(`type: object`)
|
||||
} else {
|
||||
if err := yaml.Unmarshal(schema, props); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
crd, err := crd.CreateMultiVersionTestCRD(f, group, func(crd *v1beta1.CustomResourceDefinition) {
|
||||
var apiVersions []v1beta1.CustomResourceDefinitionVersion
|
||||
@ -360,16 +364,19 @@ func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, version
|
||||
}
|
||||
crd.Spec.Versions = apiVersions
|
||||
|
||||
// set up validation when input schema isn't nil
|
||||
if schema != nil {
|
||||
crd.Spec.Validation = &v1beta1.CustomResourceValidation{
|
||||
OpenAPIV3Schema: props,
|
||||
}
|
||||
}
|
||||
})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create CRD: %v", err)
|
||||
}
|
||||
|
||||
for _, v := range crd.Crd.Spec.Versions {
|
||||
if err := waitForDefinition(f.ClientSet, definitionName(crd, v.Name), schema); err != nil {
|
||||
if err := waitForDefinition(f.ClientSet, definitionName(crd, v.Name), expect); err != nil {
|
||||
return nil, fmt.Errorf("%v", err)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user