mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
remove internal client dependency in pkg/*
This commit is contained in:
parent
9be22b7329
commit
65ba58a9a5
@ -53,7 +53,6 @@ filegroup(
|
|||||||
"//pkg/auth/authorizer/abac:all-srcs",
|
"//pkg/auth/authorizer/abac:all-srcs",
|
||||||
"//pkg/auth/nodeidentifier:all-srcs",
|
"//pkg/auth/nodeidentifier:all-srcs",
|
||||||
"//pkg/capabilities:all-srcs",
|
"//pkg/capabilities:all-srcs",
|
||||||
"//pkg/client/clientset_generated/internalclientset:all-srcs",
|
|
||||||
"//pkg/client/conditions:all-srcs",
|
"//pkg/client/conditions:all-srcs",
|
||||||
"//pkg/client/leaderelectionconfig:all-srcs",
|
"//pkg/client/leaderelectionconfig:all-srcs",
|
||||||
"//pkg/client/metrics/prometheus:all-srcs",
|
"//pkg/client/metrics/prometheus:all-srcs",
|
||||||
|
@ -20,8 +20,6 @@ go_test(
|
|||||||
"//pkg/api/testapi:go_default_library",
|
"//pkg/api/testapi:go_default_library",
|
||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
"//pkg/apis/core/install:go_default_library",
|
"//pkg/apis/core/install:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
|
||||||
"//pkg/client/clientset_generated/internalclientset/fake:go_default_library",
|
|
||||||
"//pkg/kubelet/server/portforward:go_default_library",
|
"//pkg/kubelet/server/portforward:go_default_library",
|
||||||
"//pkg/kubelet/server/remotecommand:go_default_library",
|
"//pkg/kubelet/server/remotecommand:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
@ -33,6 +31,8 @@ go_test(
|
|||||||
"//staging/src/k8s.io/apimachinery/pkg/util/httpstream:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/httpstream:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/remotecommand:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/remotecommand:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/portforward:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/portforward:go_default_library",
|
||||||
|
@ -19,9 +19,9 @@ package tests
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
corev1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
clientsetfake "k8s.io/client-go/kubernetes/fake"
|
||||||
clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
|
|
||||||
|
|
||||||
_ "k8s.io/kubernetes/pkg/apis/core/install"
|
_ "k8s.io/kubernetes/pkg/apis/core/install"
|
||||||
)
|
)
|
||||||
@ -155,8 +155,8 @@ func TestFakeClientsetInheritsNamespace(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testSA(ns, name string) *api.ServiceAccount {
|
func testSA(ns, name string) *corev1.ServiceAccount {
|
||||||
return &api.ServiceAccount{
|
return &corev1.ServiceAccount{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
Name: name,
|
Name: name,
|
||||||
@ -164,8 +164,8 @@ func testSA(ns, name string) *api.ServiceAccount {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testPod(ns, name string) *api.Pod {
|
func testPod(ns, name string) *corev1.Pod {
|
||||||
return &api.Pod{
|
return &corev1.Pod{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
Name: name,
|
Name: name,
|
||||||
@ -173,8 +173,8 @@ func testPod(ns, name string) *api.Pod {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testNamespace(ns string) *api.Namespace {
|
func testNamespace(ns string) *corev1.Namespace {
|
||||||
return &api.Namespace{
|
return &corev1.Namespace{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: ns,
|
Name: ns,
|
||||||
},
|
},
|
||||||
|
@ -29,12 +29,12 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
. "k8s.io/client-go/tools/cache"
|
. "k8s.io/client-go/tools/cache"
|
||||||
watchtools "k8s.io/client-go/tools/watch"
|
watchtools "k8s.io/client-go/tools/watch"
|
||||||
utiltesting "k8s.io/client-go/util/testing"
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func parseSelectorOrDie(s string) fields.Selector {
|
func parseSelectorOrDie(s string) fields.Selector {
|
||||||
|
@ -9,7 +9,6 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/pkg/kubeapiserver/admission",
|
importpath = "k8s.io/kubernetes/pkg/kubeapiserver/admission",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
|
||||||
"//pkg/quota/v1:go_default_library",
|
"//pkg/quota/v1:go_default_library",
|
||||||
"//pkg/quota/v1/install:go_default_library",
|
"//pkg/quota/v1/install:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
||||||
@ -21,6 +20,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/util/webhook:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/util/webhook:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/discovery/cached/memory:go_default_library",
|
"//staging/src/k8s.io/client-go/discovery/cached/memory:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/informers:go_default_library",
|
"//staging/src/k8s.io/client-go/informers:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/restmapper:go_default_library",
|
"//staging/src/k8s.io/client-go/restmapper:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
|
@ -31,9 +31,9 @@ import (
|
|||||||
"k8s.io/apiserver/pkg/util/webhook"
|
"k8s.io/apiserver/pkg/util/webhook"
|
||||||
cacheddiscovery "k8s.io/client-go/discovery/cached/memory"
|
cacheddiscovery "k8s.io/client-go/discovery/cached/memory"
|
||||||
externalinformers "k8s.io/client-go/informers"
|
externalinformers "k8s.io/client-go/informers"
|
||||||
|
"k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/restmapper"
|
"k8s.io/client-go/restmapper"
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
|
||||||
quotainstall "k8s.io/kubernetes/pkg/quota/v1/install"
|
quotainstall "k8s.io/kubernetes/pkg/quota/v1/install"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -57,12 +57,12 @@ func (c *Config) New(proxyTransport *http.Transport, serviceResolver webhook.Ser
|
|||||||
klog.Fatalf("Error reading from cloud configuration file %s: %#v", c.CloudConfigFile, err)
|
klog.Fatalf("Error reading from cloud configuration file %s: %#v", c.CloudConfigFile, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
internalClient, err := internalclientset.NewForConfig(c.LoopbackClientConfig)
|
clientset, err := kubernetes.NewForConfig(c.LoopbackClientConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
discoveryClient := cacheddiscovery.NewMemCacheClient(internalClient.Discovery())
|
discoveryClient := cacheddiscovery.NewMemCacheClient(clientset.Discovery())
|
||||||
discoveryRESTMapper := restmapper.NewDeferredDiscoveryRESTMapper(discoveryClient)
|
discoveryRESTMapper := restmapper.NewDeferredDiscoveryRESTMapper(discoveryClient)
|
||||||
kubePluginInitializer := NewPluginInitializer(
|
kubePluginInitializer := NewPluginInitializer(
|
||||||
cloudConfig,
|
cloudConfig,
|
||||||
|
@ -16,10 +16,10 @@ go_test(
|
|||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
"//pkg/apis/policy:go_default_library",
|
"//pkg/apis/policy:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/fake:go_default_library",
|
|
||||||
"//pkg/registry/registrytest:go_default_library",
|
"//pkg/registry/registrytest:go_default_library",
|
||||||
"//pkg/securitycontext:go_default_library",
|
"//pkg/securitycontext:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors: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/apis/meta/v1:go_default_library",
|
||||||
@ -36,6 +36,7 @@ go_test(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/storage:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/storage:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/storage/errors:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/storage/errors:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -51,13 +52,13 @@ go_library(
|
|||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
"//pkg/apis/core/validation:go_default_library",
|
"//pkg/apis/core/validation:go_default_library",
|
||||||
"//pkg/apis/policy:go_default_library",
|
"//pkg/apis/policy:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library",
|
|
||||||
"//pkg/kubelet/client:go_default_library",
|
"//pkg/kubelet/client:go_default_library",
|
||||||
"//pkg/printers:go_default_library",
|
"//pkg/printers:go_default_library",
|
||||||
"//pkg/printers/internalversion:go_default_library",
|
"//pkg/printers/internalversion:go_default_library",
|
||||||
"//pkg/printers/storage:go_default_library",
|
"//pkg/printers/storage:go_default_library",
|
||||||
"//pkg/registry/core/pod:go_default_library",
|
"//pkg/registry/core/pod:go_default_library",
|
||||||
"//pkg/registry/core/pod/rest:go_default_library",
|
"//pkg/registry/core/pod/rest:go_default_library",
|
||||||
|
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors: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/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
|
||||||
@ -70,6 +71,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/storage:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/storage:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/storage/errors:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/storage/errors:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/util/dryrun:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/util/dryrun:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
|
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
policyv1beta1 "k8s.io/api/policy/v1beta1"
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
@ -29,10 +30,10 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||||
"k8s.io/apiserver/pkg/registry/rest"
|
"k8s.io/apiserver/pkg/registry/rest"
|
||||||
|
policyclient "k8s.io/client-go/kubernetes/typed/policy/v1beta1"
|
||||||
"k8s.io/client-go/util/retry"
|
"k8s.io/client-go/util/retry"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/policy"
|
"k8s.io/kubernetes/pkg/apis/policy"
|
||||||
policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -153,7 +154,7 @@ func (r *EvictionREST) Create(ctx context.Context, obj runtime.Object, createVal
|
|||||||
}
|
}
|
||||||
|
|
||||||
// checkAndDecrement checks if the provided PodDisruptionBudget allows any disruption.
|
// checkAndDecrement checks if the provided PodDisruptionBudget allows any disruption.
|
||||||
func (r *EvictionREST) checkAndDecrement(namespace string, podName string, pdb policy.PodDisruptionBudget) error {
|
func (r *EvictionREST) checkAndDecrement(namespace string, podName string, pdb policyv1beta1.PodDisruptionBudget) error {
|
||||||
if pdb.Status.ObservedGeneration < pdb.Generation {
|
if pdb.Status.ObservedGeneration < pdb.Generation {
|
||||||
// TODO(mml): Add a Retry-After header. Once there are time-based
|
// TODO(mml): Add a Retry-After header. Once there are time-based
|
||||||
// budgets, we can sometimes compute a sensible suggested value. But
|
// budgets, we can sometimes compute a sensible suggested value. But
|
||||||
@ -192,7 +193,7 @@ func (r *EvictionREST) checkAndDecrement(namespace string, podName string, pdb p
|
|||||||
}
|
}
|
||||||
|
|
||||||
// getPodDisruptionBudgets returns any PDBs that match the pod or err if there's an error.
|
// getPodDisruptionBudgets returns any PDBs that match the pod or err if there's an error.
|
||||||
func (r *EvictionREST) getPodDisruptionBudgets(ctx context.Context, pod *api.Pod) ([]policy.PodDisruptionBudget, error) {
|
func (r *EvictionREST) getPodDisruptionBudgets(ctx context.Context, pod *api.Pod) ([]policyv1beta1.PodDisruptionBudget, error) {
|
||||||
if len(pod.Labels) == 0 {
|
if len(pod.Labels) == 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
@ -202,7 +203,7 @@ func (r *EvictionREST) getPodDisruptionBudgets(ctx context.Context, pod *api.Pod
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var pdbs []policy.PodDisruptionBudget
|
var pdbs []policyv1beta1.PodDisruptionBudget
|
||||||
for _, pdb := range pdbList.Items {
|
for _, pdb := range pdbList.Items {
|
||||||
if pdb.Namespace != pod.Namespace {
|
if pdb.Namespace != pod.Namespace {
|
||||||
continue
|
continue
|
||||||
|
@ -19,13 +19,14 @@ package storage
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
policyv1beta1 "k8s.io/api/policy/v1beta1"
|
||||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/policy"
|
"k8s.io/kubernetes/pkg/apis/policy"
|
||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEviction(t *testing.T) {
|
func TestEviction(t *testing.T) {
|
||||||
@ -38,40 +39,12 @@ func TestEviction(t *testing.T) {
|
|||||||
expectError bool
|
expectError bool
|
||||||
expectDeleted bool
|
expectDeleted bool
|
||||||
}{
|
}{
|
||||||
{
|
|
||||||
name: "no pdbs, unscheduled pod, nil delete options, deletes immediately",
|
|
||||||
pdbs: nil,
|
|
||||||
pod: validNewPod(),
|
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}},
|
|
||||||
expectDeleted: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "no pdbs, scheduled pod, nil delete options, deletes gracefully",
|
|
||||||
pdbs: nil,
|
|
||||||
pod: func() *api.Pod { pod := validNewPod(); pod.Spec.NodeName = "foo"; return pod }(),
|
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}},
|
|
||||||
expectDeleted: false, // not deleted immediately because of graceful deletion
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "no pdbs, scheduled pod, empty delete options, deletes gracefully",
|
|
||||||
pdbs: nil,
|
|
||||||
pod: func() *api.Pod { pod := validNewPod(); pod.Spec.NodeName = "foo"; return pod }(),
|
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: &metav1.DeleteOptions{}},
|
|
||||||
expectDeleted: false, // not deleted immediately because of graceful deletion
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "no pdbs, scheduled pod, graceless delete options, deletes immediately",
|
|
||||||
pdbs: nil,
|
|
||||||
pod: func() *api.Pod { pod := validNewPod(); pod.Spec.NodeName = "foo"; return pod }(),
|
|
||||||
eviction: &policy.Eviction{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, DeleteOptions: metav1.NewDeleteOptions(0)},
|
|
||||||
expectDeleted: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "matching pdbs with no disruptions allowed",
|
name: "matching pdbs with no disruptions allowed",
|
||||||
pdbs: []runtime.Object{&policy.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policy.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
||||||
Status: policy.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 0},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 0},
|
||||||
}},
|
}},
|
||||||
pod: func() *api.Pod {
|
pod: func() *api.Pod {
|
||||||
pod := validNewPod()
|
pod := validNewPod()
|
||||||
@ -84,10 +57,10 @@ func TestEviction(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "matching pdbs with disruptions allowed",
|
name: "matching pdbs with disruptions allowed",
|
||||||
pdbs: []runtime.Object{&policy.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policy.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"a": "true"}}},
|
||||||
Status: policy.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 1},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 1},
|
||||||
}},
|
}},
|
||||||
pod: func() *api.Pod {
|
pod: func() *api.Pod {
|
||||||
pod := validNewPod()
|
pod := validNewPod()
|
||||||
@ -100,10 +73,10 @@ func TestEviction(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "non-matching pdbs",
|
name: "non-matching pdbs",
|
||||||
pdbs: []runtime.Object{&policy.PodDisruptionBudget{
|
pdbs: []runtime.Object{&policyv1beta1.PodDisruptionBudget{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
|
||||||
Spec: policy.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"b": "true"}}},
|
Spec: policyv1beta1.PodDisruptionBudgetSpec{Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"b": "true"}}},
|
||||||
Status: policy.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 0},
|
Status: policyv1beta1.PodDisruptionBudgetStatus{PodDisruptionsAllowed: 0},
|
||||||
}},
|
}},
|
||||||
pod: func() *api.Pod {
|
pod: func() *api.Pod {
|
||||||
pod := validNewPod()
|
pod := validNewPod()
|
||||||
@ -129,7 +102,7 @@ func TestEviction(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
client := fake.NewSimpleClientset(tc.pdbs...)
|
client := fake.NewSimpleClientset(tc.pdbs...)
|
||||||
evictionRest := newEvictionStorage(storage.Store, client.Policy())
|
evictionRest := newEvictionStorage(storage.Store, client.PolicyV1beta1())
|
||||||
_, err := evictionRest.Create(testContext, tc.eviction, nil, &metav1.CreateOptions{})
|
_, err := evictionRest.Create(testContext, tc.eviction, nil, &metav1.CreateOptions{})
|
||||||
if (err != nil) != tc.expectError {
|
if (err != nil) != tc.expectError {
|
||||||
t.Errorf("expected error=%v, got %v", tc.expectError, err)
|
t.Errorf("expected error=%v, got %v", tc.expectError, err)
|
||||||
|
@ -31,10 +31,10 @@ import (
|
|||||||
"k8s.io/apiserver/pkg/storage"
|
"k8s.io/apiserver/pkg/storage"
|
||||||
storeerr "k8s.io/apiserver/pkg/storage/errors"
|
storeerr "k8s.io/apiserver/pkg/storage/errors"
|
||||||
"k8s.io/apiserver/pkg/util/dryrun"
|
"k8s.io/apiserver/pkg/util/dryrun"
|
||||||
|
policyclient "k8s.io/client-go/kubernetes/typed/policy/v1beta1"
|
||||||
podutil "k8s.io/kubernetes/pkg/api/pod"
|
podutil "k8s.io/kubernetes/pkg/api/pod"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/core/validation"
|
"k8s.io/kubernetes/pkg/apis/core/validation"
|
||||||
policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
|
|
||||||
"k8s.io/kubernetes/pkg/kubelet/client"
|
"k8s.io/kubernetes/pkg/kubelet/client"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
||||||
|
@ -24,7 +24,6 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library",
|
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/kubelet/client:go_default_library",
|
"//pkg/kubelet/client:go_default_library",
|
||||||
"//pkg/master/ports:go_default_library",
|
"//pkg/master/ports:go_default_library",
|
||||||
@ -59,6 +58,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/server/storage:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/server/storage:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/storage/etcd/util:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/storage/etcd/util:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
],
|
],
|
||||||
|
@ -36,10 +36,10 @@ import (
|
|||||||
serverstorage "k8s.io/apiserver/pkg/server/storage"
|
serverstorage "k8s.io/apiserver/pkg/server/storage"
|
||||||
etcdutil "k8s.io/apiserver/pkg/storage/etcd/util"
|
etcdutil "k8s.io/apiserver/pkg/storage/etcd/util"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
policyclient "k8s.io/client-go/kubernetes/typed/policy/v1beta1"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
|
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
|
kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
|
||||||
"k8s.io/kubernetes/pkg/master/ports"
|
"k8s.io/kubernetes/pkg/master/ports"
|
||||||
|
@ -15,8 +15,8 @@ go_library(
|
|||||||
"//pkg/apis/scheduling/v1:go_default_library",
|
"//pkg/apis/scheduling/v1:go_default_library",
|
||||||
"//pkg/apis/scheduling/v1alpha1:go_default_library",
|
"//pkg/apis/scheduling/v1alpha1:go_default_library",
|
||||||
"//pkg/apis/scheduling/v1beta1:go_default_library",
|
"//pkg/apis/scheduling/v1beta1:go_default_library",
|
||||||
"//pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion:go_default_library",
|
|
||||||
"//pkg/registry/scheduling/priorityclass/storage: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/api/errors:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1: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",
|
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
|
||||||
@ -25,6 +25,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/registry/rest:go_default_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:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/server/storage: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",
|
||||||
"//vendor/k8s.io/klog:go_default_library",
|
"//vendor/k8s.io/klog:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
|
|
||||||
|
schedulingv1beta1 "k8s.io/api/scheduling/v1beta1"
|
||||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||||
@ -30,12 +31,12 @@ import (
|
|||||||
"k8s.io/apiserver/pkg/registry/rest"
|
"k8s.io/apiserver/pkg/registry/rest"
|
||||||
genericapiserver "k8s.io/apiserver/pkg/server"
|
genericapiserver "k8s.io/apiserver/pkg/server"
|
||||||
serverstorage "k8s.io/apiserver/pkg/server/storage"
|
serverstorage "k8s.io/apiserver/pkg/server/storage"
|
||||||
|
schedulingclient "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/apis/scheduling"
|
"k8s.io/kubernetes/pkg/apis/scheduling"
|
||||||
schedulingapiv1 "k8s.io/kubernetes/pkg/apis/scheduling/v1"
|
schedulingapiv1 "k8s.io/kubernetes/pkg/apis/scheduling/v1"
|
||||||
schedulingapiv1alpha1 "k8s.io/kubernetes/pkg/apis/scheduling/v1alpha1"
|
schedulingapiv1alpha1 "k8s.io/kubernetes/pkg/apis/scheduling/v1alpha1"
|
||||||
schedulingapiv1beta1 "k8s.io/kubernetes/pkg/apis/scheduling/v1beta1"
|
schedulingapiv1beta1 "k8s.io/kubernetes/pkg/apis/scheduling/v1beta1"
|
||||||
schedulingclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion"
|
|
||||||
priorityclassstore "k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/storage"
|
priorityclassstore "k8s.io/kubernetes/pkg/registry/scheduling/priorityclass/storage"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -106,7 +107,12 @@ func AddSystemPriorityClasses() genericapiserver.PostStartHookFunc {
|
|||||||
_, err := schedClientSet.PriorityClasses().Get(pc.Name, metav1.GetOptions{})
|
_, err := schedClientSet.PriorityClasses().Get(pc.Name, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if apierrors.IsNotFound(err) {
|
if apierrors.IsNotFound(err) {
|
||||||
_, err := schedClientSet.PriorityClasses().Create(pc)
|
// 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)
|
||||||
if err != nil && !apierrors.IsAlreadyExists(err) {
|
if err != nil && !apierrors.IsAlreadyExists(err) {
|
||||||
return false, err
|
return false, err
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user