Use Scheduling V1 API instead of Scheduling v1beta1

k3s-v1.15.3
Bobby (Babak) Salamat 2019-01-30 14:42:46 -08:00
parent 20cece67b5
commit 8574e3e3f4
9 changed files with 24 additions and 25 deletions

View File

@ -38,6 +38,5 @@ func Install(scheme *runtime.Scheme) {
utilruntime.Must(v1.AddToScheme(scheme))
utilruntime.Must(v1beta1.AddToScheme(scheme))
utilruntime.Must(v1alpha1.AddToScheme(scheme))
// TODO(bsalamat): update this in 1.15 to use v1 API.
utilruntime.Must(scheme.SetVersionPriority(v1beta1.SchemeGroupVersion, v1.SchemeGroupVersion, v1alpha1.SchemeGroupVersion))
utilruntime.Must(scheme.SetVersionPriority(v1.SchemeGroupVersion, v1beta1.SchemeGroupVersion, v1alpha1.SchemeGroupVersion))
}

View File

@ -45,7 +45,7 @@ import (
networkingv1beta1 "k8s.io/api/networking/v1beta1"
policyv1beta1 "k8s.io/api/policy/v1beta1"
rbacv1 "k8s.io/api/rbac/v1"
schedulingv1beta1 "k8s.io/api/scheduling/v1beta1"
schedulingv1 "k8s.io/api/scheduling/v1"
storagev1 "k8s.io/api/storage/v1"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
@ -191,7 +191,7 @@ func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]describe.Desc
{Group: rbacv1.GroupName, Kind: "RoleBinding"}: &RoleBindingDescriber{c},
{Group: rbacv1.GroupName, Kind: "ClusterRoleBinding"}: &ClusterRoleBindingDescriber{c},
{Group: networkingv1.GroupName, Kind: "NetworkPolicy"}: &NetworkPolicyDescriber{c},
{Group: schedulingv1beta1.GroupName, Kind: "PriorityClass"}: &PriorityClassDescriber{c},
{Group: schedulingv1.GroupName, Kind: "PriorityClass"}: &PriorityClassDescriber{c},
}
return m, nil
@ -3790,7 +3790,7 @@ type PriorityClassDescriber struct {
}
func (s *PriorityClassDescriber) Describe(namespace, name string, describerSettings describe.DescriberSettings) (string, error) {
pc, err := s.SchedulingV1beta1().PriorityClasses().Get(name, metav1.GetOptions{})
pc, err := s.SchedulingV1().PriorityClasses().Get(name, metav1.GetOptions{})
if err != nil {
return "", err
}
@ -3803,7 +3803,7 @@ func (s *PriorityClassDescriber) Describe(namespace, name string, describerSetti
return describePriorityClass(pc, events)
}
func describePriorityClass(pc *schedulingv1beta1.PriorityClass, events *corev1.EventList) (string, error) {
func describePriorityClass(pc *schedulingv1.PriorityClass, events *corev1.EventList) (string, error) {
return tabbedString(func(out io.Writer) error {
w := NewPrefixWriter(out)
w.Write(LEVEL_0, "Name:\t%s\n", pc.Name)

View File

@ -19,7 +19,7 @@ package versioned
import (
"fmt"
scheduling "k8s.io/api/scheduling/v1beta1"
scheduling "k8s.io/api/scheduling/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/kubectl/generate"

View File

@ -17,7 +17,7 @@ limitations under the License.
package versioned
import (
scheduling "k8s.io/api/scheduling/v1beta1"
scheduling "k8s.io/api/scheduling/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"reflect"

View File

@ -35,7 +35,7 @@ import (
extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
policyv1beta1 "k8s.io/api/policy/v1beta1"
rbacv1beta1 "k8s.io/api/rbac/v1beta1"
schedulingv1beta1 "k8s.io/api/scheduling/v1beta1"
schedulingv1 "k8s.io/api/scheduling/v1"
storagev1 "k8s.io/api/storage/v1"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -441,8 +441,8 @@ func AddHandlers(h printers.PrintHandler) {
priorityClassColumnDefinitions := []metav1beta1.TableColumnDefinition{
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
{Name: "Value", Type: "integer", Description: schedulingv1beta1.PriorityClass{}.SwaggerDoc()["value"]},
{Name: "Global-Default", Type: "boolean", Description: schedulingv1beta1.PriorityClass{}.SwaggerDoc()["globalDefault"]},
{Name: "Value", Type: "integer", Description: schedulingv1.PriorityClass{}.SwaggerDoc()["value"]},
{Name: "Global-Default", Type: "boolean", Description: schedulingv1.PriorityClass{}.SwaggerDoc()["globalDefault"]},
{Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]},
}
h.TableHandler(priorityClassColumnDefinitions, printPriorityClass)

View File

@ -20,7 +20,7 @@ import (
"fmt"
"io"
schedulingv1beta1 "k8s.io/api/scheduling/v1beta1"
schedulingv1 "k8s.io/api/scheduling/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
@ -29,7 +29,7 @@ import (
utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes"
schedulingv1beta1listers "k8s.io/client-go/listers/scheduling/v1beta1"
schedulingv1listers "k8s.io/client-go/listers/scheduling/v1"
api "k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/apis/scheduling"
"k8s.io/kubernetes/pkg/features"
@ -52,7 +52,7 @@ func Register(plugins *admission.Plugins) {
type priorityPlugin struct {
*admission.Handler
client kubernetes.Interface
lister schedulingv1beta1listers.PriorityClassLister
lister schedulingv1listers.PriorityClassLister
}
var _ admission.MutationInterface = &priorityPlugin{}
@ -85,7 +85,7 @@ func (p *priorityPlugin) SetExternalKubeClientSet(client kubernetes.Interface) {
// SetInternalKubeInformerFactory implements the WantsInternalKubeInformerFactory interface.
func (p *priorityPlugin) SetExternalKubeInformerFactory(f informers.SharedInformerFactory) {
priorityInformer := f.Scheduling().V1beta1().PriorityClasses()
priorityInformer := f.Scheduling().V1().PriorityClasses()
p.lister = priorityInformer.Lister()
p.SetReadyFunc(priorityInformer.Informer().HasSynced)
}
@ -244,14 +244,14 @@ func (p *priorityPlugin) validatePriorityClass(a admission.Attributes) error {
return nil
}
func (p *priorityPlugin) getDefaultPriorityClass() (*schedulingv1beta1.PriorityClass, error) {
func (p *priorityPlugin) getDefaultPriorityClass() (*schedulingv1.PriorityClass, error) {
list, err := p.lister.List(labels.Everything())
if err != nil {
return nil, err
}
// In case more than one global default priority class is added as a result of a race condition,
// we pick the one with the lowest priority value.
var defaultPC *schedulingv1beta1.PriorityClass
var defaultPC *schedulingv1.PriorityClass
for _, pci := range list {
if pci.GlobalDefault {
if defaultPC == nil || defaultPC.Value > pci.Value {

View File

@ -21,7 +21,7 @@ import (
"k8s.io/klog"
schedulingv1beta1 "k8s.io/api/scheduling/v1beta1"
schedulingv1 "k8s.io/api/scheduling/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apiserver/pkg/admission"
"k8s.io/apiserver/pkg/authentication/user"
@ -30,7 +30,7 @@ import (
"k8s.io/client-go/informers"
api "k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/apis/scheduling"
"k8s.io/kubernetes/pkg/apis/scheduling/v1beta1"
"k8s.io/kubernetes/pkg/apis/scheduling/v1"
"k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/features"
)
@ -40,11 +40,11 @@ func addPriorityClasses(ctrl *priorityPlugin, priorityClasses []*scheduling.Prio
ctrl.SetExternalKubeInformerFactory(informerFactory)
// First add the existing classes to the cache.
for _, c := range priorityClasses {
s := &schedulingv1beta1.PriorityClass{}
if err := v1beta1.Convert_scheduling_PriorityClass_To_v1beta1_PriorityClass(c, s, nil); err != nil {
s := &schedulingv1.PriorityClass{}
if err := v1.Convert_scheduling_PriorityClass_To_v1_PriorityClass(c, s, nil); err != nil {
return err
}
informerFactory.Scheduling().V1beta1().PriorityClasses().Informer().GetStore().Add(s)
informerFactory.Scheduling().V1().PriorityClasses().Informer().GetStore().Add(s)
}
return nil
}

View File

@ -33,7 +33,7 @@ import (
extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
nodev1alpha1 "k8s.io/api/node/v1alpha1"
rbacv1alpha1 "k8s.io/api/rbac/v1alpha1"
schedulerapi "k8s.io/api/scheduling/v1beta1"
schedulerapi "k8s.io/api/scheduling/v1"
settingsv1alpha1 "k8s.io/api/settings/v1alpha1"
storagev1alpha1 "k8s.io/api/storage/v1alpha1"
"k8s.io/apimachinery/pkg/api/meta"

View File

@ -419,7 +419,7 @@ func GetEtcdStorageData() map[schema.GroupVersionResource]StorageData {
gvr("scheduling.k8s.io", "v1alpha1", "priorityclasses"): {
Stub: `{"metadata":{"name":"pc1"},"Value":1000}`,
ExpectedEtcdPath: "/registry/priorityclasses/pc1",
ExpectedGVK: gvkP("scheduling.k8s.io", "v1beta1", "PriorityClass"),
ExpectedGVK: gvkP("scheduling.k8s.io", "v1", "PriorityClass"),
},
// --
@ -427,6 +427,7 @@ func GetEtcdStorageData() map[schema.GroupVersionResource]StorageData {
gvr("scheduling.k8s.io", "v1beta1", "priorityclasses"): {
Stub: `{"metadata":{"name":"pc2"},"Value":1000}`,
ExpectedEtcdPath: "/registry/priorityclasses/pc2",
ExpectedGVK: gvkP("scheduling.k8s.io", "v1", "PriorityClass"),
},
// --
@ -434,7 +435,6 @@ func GetEtcdStorageData() map[schema.GroupVersionResource]StorageData {
gvr("scheduling.k8s.io", "v1", "priorityclasses"): {
Stub: `{"metadata":{"name":"pc3"},"Value":1000}`,
ExpectedEtcdPath: "/registry/priorityclasses/pc3",
ExpectedGVK: gvkP("scheduling.k8s.io", "v1beta1", "PriorityClass"),
},
// --