switch system priority class to versioned (v1) api

move all the helpers to scheduling v1 helpers

less explicit conversion
This commit is contained in:
yue9944882
2019-04-10 13:10:09 +08:00
parent ea4570a412
commit 09cf42d67c
14 changed files with 60 additions and 54 deletions

View File

@@ -12,6 +12,7 @@ go_test(
embed = [":go_default_library"],
deps = [
"//pkg/apis/scheduling:go_default_library",
"//pkg/apis/scheduling/v1:go_default_library",
"//pkg/registry/registrytest:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library",
@@ -31,6 +32,7 @@ go_library(
importpath = "k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/storage",
deps = [
"//pkg/apis/scheduling:go_default_library",
"//pkg/apis/scheduling/v1:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/printers/internalversion:go_default_library",
"//pkg/printers/storage:go_default_library",

View File

@@ -26,6 +26,7 @@ import (
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
"k8s.io/apiserver/pkg/registry/rest"
"k8s.io/kubernetes/pkg/apis/scheduling"
schedulingapiv1 "k8s.io/kubernetes/pkg/apis/scheduling/v1"
"k8s.io/kubernetes/pkg/printers"
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
printerstorage "k8s.io/kubernetes/pkg/printers/storage"
@@ -68,7 +69,7 @@ func (r *REST) ShortNames() []string {
// Delete ensures that system priority classes are not deleted.
func (r *REST) Delete(ctx context.Context, name string, deleteValidation rest.ValidateObjectFunc, options *metav1.DeleteOptions) (runtime.Object, bool, error) {
for _, spc := range scheduling.SystemPriorityClasses() {
for _, spc := range schedulingapiv1.SystemPriorityClasses() {
if name == spc.Name {
return nil, false, apierrors.NewForbidden(scheduling.Resource("priorityclasses"), spc.Name, errors.New("this is a system priority class and cannot be deleted"))
}

View File

@@ -29,6 +29,7 @@ import (
"k8s.io/apiserver/pkg/registry/rest"
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
"k8s.io/kubernetes/pkg/apis/scheduling"
schedulingapiv1 "k8s.io/kubernetes/pkg/apis/scheduling/v1"
"k8s.io/kubernetes/pkg/registry/registrytest"
)
@@ -118,8 +119,12 @@ func TestDeleteSystemPriorityClass(t *testing.T) {
defer storage.Store.DestroyFunc()
key := "test/system-node-critical"
ctx := genericapirequest.NewContext()
pc := scheduling.SystemPriorityClasses()[0]
if err := storage.Store.Storage.Create(ctx, key, pc, nil, 0, false); err != nil {
pc := schedulingapiv1.SystemPriorityClasses()[0]
internalPc := &scheduling.PriorityClass{}
if err := schedulingapiv1.Convert_v1_PriorityClass_To_scheduling_PriorityClass(pc, internalPc, nil); err != nil {
t.Fatal(err)
}
if err := storage.Store.Storage.Create(ctx, key, internalPc, nil, 0, false); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if _, _, err := storage.Delete(ctx, pc.Name, rest.ValidateAllObjectFunc, nil); err == nil {

View File

@@ -16,7 +16,6 @@ go_library(
"//pkg/apis/scheduling/v1alpha1:go_default_library",
"//pkg/apis/scheduling/v1beta1:go_default_library",
"//pkg/registry/scheduling/priorityclass/storage:go_default_library",
"//staging/src/k8s.io/api/scheduling/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
@@ -25,7 +24,7 @@ go_library(
"//staging/src/k8s.io/apiserver/pkg/registry/rest:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/server/storage:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
],
)

View File

@@ -22,7 +22,6 @@ import (
"k8s.io/klog"
schedulingv1beta1 "k8s.io/api/scheduling/v1beta1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
@@ -31,7 +30,7 @@ import (
"k8s.io/apiserver/pkg/registry/rest"
genericapiserver "k8s.io/apiserver/pkg/server"
serverstorage "k8s.io/apiserver/pkg/server/storage"
schedulingclient "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1"
schedulingclient "k8s.io/client-go/kubernetes/typed/scheduling/v1"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/apis/scheduling"
schedulingapiv1 "k8s.io/kubernetes/pkg/apis/scheduling/v1"
@@ -123,16 +122,11 @@ func AddSystemPriorityClasses() genericapiserver.PostStartHookFunc {
return false, nil
}
for _, pc := range scheduling.SystemPriorityClasses() {
for _, pc := range schedulingapiv1.SystemPriorityClasses() {
_, err := schedClientSet.PriorityClasses().Get(pc.Name, metav1.GetOptions{})
if err != nil {
if apierrors.IsNotFound(err) {
// TODO: Remove this explicit conversion after scheduling api move to v1
v1beta1PriorityClass := &schedulingv1beta1.PriorityClass{}
if err := schedulingapiv1beta1.Convert_scheduling_PriorityClass_To_v1beta1_PriorityClass(pc, v1beta1PriorityClass, nil); err != nil {
return false, err
}
_, err := schedClientSet.PriorityClasses().Create(v1beta1PriorityClass)
_, err := schedClientSet.PriorityClasses().Create(pc)
if err != nil && !apierrors.IsAlreadyExists(err) {
return false, err
} else {