Let kube-apiserver host the storage version API

Co-authored-by: Haowei Cai <haoweic@google.com>
This commit is contained in:
Chao Xu
2020-02-24 15:28:51 -08:00
committed by Haowei Cai
parent 3cf80090f0
commit 86dd4ce3b5
16 changed files with 569 additions and 2 deletions

View File

@@ -57,6 +57,7 @@ var statusData = map[schema.GroupVersionResource]string{
gvr("policy", "v1beta1", "poddisruptionbudgets"): `{"status": {"currentHealthy": 5}}`,
gvr("certificates.k8s.io", "v1beta1", "certificatesigningrequests"): `{"status": {"conditions": [{"type": "MyStatus"}]}}`,
gvr("certificates.k8s.io", "v1", "certificatesigningrequests"): `{"status": {"conditions": [{"type": "MyStatus", "status": "True"}]}}`,
gvr("internal.apiserver.k8s.io", "v1alpha1", "storageversions"): `{"status": {"commonEncodingVersion":"v1","storageVersions":[{"apiServerID":"1","decodableVersions":["v1","v2"],"encodingVersion":"v1"}],"conditions":[{"type":"AllEncodingVersionsEqual","status":"True","lastTransitionTime":"2020-01-01T00:00:00Z","reason":"allEncodingVersionsEqual","message":"all encoding versions are set to v1"}]}}`,
}
const statusDefault = `{"status": {"conditions": [{"type": "MyStatus", "status":"true"}]}}`
@@ -69,6 +70,12 @@ var ignoreList = map[schema.GroupVersionResource]struct{}{
gvr("apiregistration.k8s.io", "v1", "apiservices"): {},
}
// Some status-only APIs have empty object on creation. Therefore we don't expect create_test
// managedFields for these APIs
var ignoreCreateManagementList = map[schema.GroupVersionResource]struct{}{
gvr("internal.apiserver.k8s.io", "v1alpha1", "storageversions"): {},
}
func gvr(g, v, r string) schema.GroupVersionResource {
return schema.GroupVersionResource{Group: g, Version: v, Resource: r}
}
@@ -200,7 +207,11 @@ func TestApplyStatus(t *testing.T) {
t.Fatalf("Couldn't find apply_status_test: %v", managedFields)
}
if !findManager(managedFields, "create_test") {
t.Fatalf("Couldn't find create_test: %v", managedFields)
if _, ok := ignoreCreateManagementList[mapping.Resource]; !ok {
t.Fatalf("Couldn't find create_test: %v", managedFields)
}
} else if _, ok := ignoreCreateManagementList[mapping.Resource]; ok {
t.Fatalf("found create_test in ignoreCreateManagementList resource: %v", managedFields)
}
if err := rsc.Delete(context.TODO(), name, *metav1.NewDeleteOptions(0)); err != nil {

View File

@@ -27,6 +27,7 @@ import (
"testing"
"time"
apiserverinternalv1alpha1 "k8s.io/api/apiserverinternal/v1alpha1"
batchv2alpha1 "k8s.io/api/batch/v2alpha1"
discoveryv1alpha1 "k8s.io/api/discovery/v1alpha1"
discoveryv1beta1 "k8s.io/api/discovery/v1beta1"
@@ -172,6 +173,7 @@ func TestServerSidePrint(t *testing.T) {
extensionsv1beta1.SchemeGroupVersion,
nodev1alpha1.SchemeGroupVersion,
flowcontrolv1alpha1.SchemeGroupVersion,
apiserverinternalv1alpha1.SchemeGroupVersion,
},
[]schema.GroupVersionResource{},
)