mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #78194 from roycaihw/crd-openapi-e2e
Fix alpha CRD openapi e2e
This commit is contained in:
commit
d83805c479
@ -32,6 +32,7 @@ import (
|
|||||||
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||||
"k8s.io/apiextensions-apiserver/pkg/apiserver/validation"
|
"k8s.io/apiextensions-apiserver/pkg/apiserver/validation"
|
||||||
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
utilversion "k8s.io/apimachinery/pkg/util/version"
|
utilversion "k8s.io/apimachinery/pkg/util/version"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
@ -309,6 +310,10 @@ var _ = SIGDescribe("CustomResourcePublishOpenAPI [Feature:CustomResourcePublish
|
|||||||
}
|
}
|
||||||
|
|
||||||
ginkgo.By("mark a version not serverd")
|
ginkgo.By("mark a version not serverd")
|
||||||
|
crd.Crd, err = crd.APIExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Get(crd.Crd.Name, metav1.GetOptions{})
|
||||||
|
if err != nil {
|
||||||
|
framework.Failf("%v", err)
|
||||||
|
}
|
||||||
crd.Crd.Spec.Versions[1].Served = false
|
crd.Crd.Spec.Versions[1].Served = false
|
||||||
crd.Crd, err = crd.APIExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(crd.Crd)
|
crd.Crd, err = crd.APIExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(crd.Crd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -336,13 +341,17 @@ func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, version
|
|||||||
return nil, fmt.Errorf("require at least one version for CRD")
|
return nil, fmt.Errorf("require at least one version for CRD")
|
||||||
}
|
}
|
||||||
|
|
||||||
if schema == nil {
|
expect := schema
|
||||||
schema = []byte(`type: object`)
|
|
||||||
}
|
|
||||||
props := &v1beta1.JSONSchemaProps{}
|
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 {
|
if err := yaml.Unmarshal(schema, props); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
crd, err := crd.CreateMultiVersionTestCRD(f, group, func(crd *v1beta1.CustomResourceDefinition) {
|
crd, err := crd.CreateMultiVersionTestCRD(f, group, func(crd *v1beta1.CustomResourceDefinition) {
|
||||||
var apiVersions []v1beta1.CustomResourceDefinitionVersion
|
var apiVersions []v1beta1.CustomResourceDefinitionVersion
|
||||||
@ -355,16 +364,19 @@ func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, version
|
|||||||
}
|
}
|
||||||
crd.Spec.Versions = apiVersions
|
crd.Spec.Versions = apiVersions
|
||||||
|
|
||||||
|
// set up validation when input schema isn't nil
|
||||||
|
if schema != nil {
|
||||||
crd.Spec.Validation = &v1beta1.CustomResourceValidation{
|
crd.Spec.Validation = &v1beta1.CustomResourceValidation{
|
||||||
OpenAPIV3Schema: props,
|
OpenAPIV3Schema: props,
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to create CRD: %v", err)
|
return nil, fmt.Errorf("failed to create CRD: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, v := range crd.Crd.Spec.Versions {
|
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)
|
return nil, fmt.Errorf("%v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -579,9 +591,11 @@ properties:
|
|||||||
properties:
|
properties:
|
||||||
dummy:
|
dummy:
|
||||||
description: Dummy property.
|
description: Dummy property.
|
||||||
|
type: object
|
||||||
status:
|
status:
|
||||||
description: Status of Waldo
|
description: Status of Waldo
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
bars:
|
bars:
|
||||||
description: List of Bars and their statuses.`)
|
description: List of Bars and their statuses.
|
||||||
|
type: array`)
|
||||||
|
Loading…
Reference in New Issue
Block a user