Merge pull request #32246 from caesarxuchao/fed-1.5

Automatic merge from submit-queue

Update federation controllers to use release 1.5 clientset

This PR is based on #32243, we won't merge it until next week, to make cherry-picks easier.
This commit is contained in:
Kubernetes Submit Queue 2016-09-28 04:17:20 -07:00 committed by GitHub
commit dc06ceb87d
23 changed files with 124 additions and 112 deletions

View File

@ -26,7 +26,7 @@ import (
"net/http/pprof" "net/http/pprof"
"strconv" "strconv"
federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options" "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options"
"k8s.io/kubernetes/federation/pkg/dnsprovider" "k8s.io/kubernetes/federation/pkg/dnsprovider"
clustercontroller "k8s.io/kubernetes/federation/pkg/federation-controller/cluster" clustercontroller "k8s.io/kubernetes/federation/pkg/federation-controller/cluster"

View File

@ -23,7 +23,7 @@ import (
"github.com/golang/glog" "github.com/golang/glog"
federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
cluster_cache "k8s.io/kubernetes/federation/client/cache" cluster_cache "k8s.io/kubernetes/federation/client/cache"
federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"

View File

@ -24,7 +24,7 @@ import (
"testing" "testing"
federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
controller_util "k8s.io/kubernetes/federation/pkg/federation-controller/util" controller_util "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/unversioned"

View File

@ -23,14 +23,14 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/federation/pkg/federation-controller/util" "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
extensions_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" extensions_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
"k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/conversion" "k8s.io/kubernetes/pkg/conversion"
@ -83,7 +83,7 @@ type IngressController struct {
ingressInformerController cache.ControllerInterface ingressInformerController cache.ControllerInterface
// Client to federated api server. // Client to federated api server.
federatedApiClient federation_release_1_4.Interface federatedApiClient federationclientset.Interface
// Backoff manager for ingresses // Backoff manager for ingresses
ingressBackoff *flowcontrol.Backoff ingressBackoff *flowcontrol.Backoff
@ -101,7 +101,7 @@ type IngressController struct {
} }
// NewIngressController returns a new ingress controller // NewIngressController returns a new ingress controller
func NewIngressController(client federation_release_1_4.Interface) *IngressController { func NewIngressController(client federationclientset.Interface) *IngressController {
glog.V(4).Infof("->NewIngressController V(4)") glog.V(4).Infof("->NewIngressController V(4)")
broadcaster := record.NewBroadcaster() broadcaster := record.NewBroadcaster()
broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client)) broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client))
@ -144,7 +144,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
// Federated informer on ingresses in members of federation. // Federated informer on ingresses in members of federation.
ic.ingressFederatedInformer = util.NewFederatedInformer( ic.ingressFederatedInformer = util.NewFederatedInformer(
client, client,
func(cluster *federation_api.Cluster, targetClient kube_release_1_4.Interface) (cache.Store, cache.ControllerInterface) { func(cluster *federation_api.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.ControllerInterface) {
return cache.NewInformer( return cache.NewInformer(
&cache.ListWatch{ &cache.ListWatch{
ListFunc: func(options api.ListOptions) (pkg_runtime.Object, error) { ListFunc: func(options api.ListOptions) (pkg_runtime.Object, error) {
@ -176,7 +176,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
// Federated informer on configmaps for ingress controllers in members of the federation. // Federated informer on configmaps for ingress controllers in members of the federation.
ic.configMapFederatedInformer = util.NewFederatedInformer( ic.configMapFederatedInformer = util.NewFederatedInformer(
client, client,
func(cluster *federation_api.Cluster, targetClient kube_release_1_4.Interface) (cache.Store, cache.ControllerInterface) { func(cluster *federation_api.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.ControllerInterface) {
glog.V(4).Infof("Returning new informer for cluster %q", cluster.Name) glog.V(4).Infof("Returning new informer for cluster %q", cluster.Name)
return cache.NewInformer( return cache.NewInformer(
&cache.ListWatch{ &cache.ListWatch{
@ -213,7 +213,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
// Federated ingress updater along with Create/Update/Delete operations. // Federated ingress updater along with Create/Update/Delete operations.
ic.federatedIngressUpdater = util.NewFederatedUpdater(ic.ingressFederatedInformer, ic.federatedIngressUpdater = util.NewFederatedUpdater(ic.ingressFederatedInformer,
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
ingress := obj.(*extensions_v1beta1.Ingress) ingress := obj.(*extensions_v1beta1.Ingress)
glog.V(4).Infof("Attempting to create Ingress: %v", ingress) glog.V(4).Infof("Attempting to create Ingress: %v", ingress)
_, err := client.Extensions().Ingresses(ingress.Namespace).Create(ingress) _, err := client.Extensions().Ingresses(ingress.Namespace).Create(ingress)
@ -224,7 +224,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
} }
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
ingress := obj.(*extensions_v1beta1.Ingress) ingress := obj.(*extensions_v1beta1.Ingress)
glog.V(4).Infof("Attempting to update Ingress: %v", ingress) glog.V(4).Infof("Attempting to update Ingress: %v", ingress)
_, err := client.Extensions().Ingresses(ingress.Namespace).Update(ingress) _, err := client.Extensions().Ingresses(ingress.Namespace).Update(ingress)
@ -235,7 +235,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
} }
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
ingress := obj.(*extensions_v1beta1.Ingress) ingress := obj.(*extensions_v1beta1.Ingress)
glog.V(4).Infof("Attempting to delete Ingress: %v", ingress) glog.V(4).Infof("Attempting to delete Ingress: %v", ingress)
err := client.Extensions().Ingresses(ingress.Namespace).Delete(ingress.Name, &api.DeleteOptions{}) err := client.Extensions().Ingresses(ingress.Namespace).Delete(ingress.Name, &api.DeleteOptions{})
@ -244,14 +244,14 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
// Federated configmap updater along with Create/Update/Delete operations. Only Update should ever be called. // Federated configmap updater along with Create/Update/Delete operations. Only Update should ever be called.
ic.federatedConfigMapUpdater = util.NewFederatedUpdater(ic.configMapFederatedInformer, ic.federatedConfigMapUpdater = util.NewFederatedUpdater(ic.configMapFederatedInformer,
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
configMap := obj.(*v1.ConfigMap) configMap := obj.(*v1.ConfigMap)
configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace} configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace}
glog.Errorf("Internal error: Incorrectly attempting to create ConfigMap: %q", configMapName) glog.Errorf("Internal error: Incorrectly attempting to create ConfigMap: %q", configMapName)
_, err := client.Core().ConfigMaps(configMap.Namespace).Create(configMap) _, err := client.Core().ConfigMaps(configMap.Namespace).Create(configMap)
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
configMap := obj.(*v1.ConfigMap) configMap := obj.(*v1.ConfigMap)
configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace} configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace}
glog.V(4).Infof("Attempting to update ConfigMap: %v", configMap) glog.V(4).Infof("Attempting to update ConfigMap: %v", configMap)
@ -263,7 +263,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
} }
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
configMap := obj.(*v1.ConfigMap) configMap := obj.(*v1.ConfigMap)
configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace} configMapName := types.NamespacedName{Name: configMap.Name, Namespace: configMap.Namespace}
glog.Errorf("Internal error: Incorrectly attempting to delete ConfigMap: %q", configMapName) glog.Errorf("Internal error: Incorrectly attempting to delete ConfigMap: %q", configMapName)

View File

@ -23,13 +23,13 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
fake_federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4/fake" fake_fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5/fake"
"k8s.io/kubernetes/federation/pkg/federation-controller/util" "k8s.io/kubernetes/federation/pkg/federation-controller/util"
. "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
extensions_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" extensions_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
fake_kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/fake" fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -45,7 +45,7 @@ func TestIngressController(t *testing.T) {
cfg2 := NewConfigMap("bar") // Different UID from cfg1, so that we can check that they get reconciled. cfg2 := NewConfigMap("bar") // Different UID from cfg1, so that we can check that they get reconciled.
t.Log("Creating fake infrastructure") t.Log("Creating fake infrastructure")
fedClient := &fake_federation_release_1_4.Clientset{} fedClient := &fake_fedclientset.Clientset{}
RegisterFakeList("clusters", &fedClient.Fake, &fakeClusterList) RegisterFakeList("clusters", &fedClient.Fake, &fakeClusterList)
RegisterFakeList("ingresses", &fedClient.Fake, &extensions_v1beta1.IngressList{Items: []extensions_v1beta1.Ingress{}}) RegisterFakeList("ingresses", &fedClient.Fake, &extensions_v1beta1.IngressList{Items: []extensions_v1beta1.Ingress{}})
fedIngressWatch := RegisterFakeWatch("ingresses", &fedClient.Fake) fedIngressWatch := RegisterFakeWatch("ingresses", &fedClient.Fake)
@ -53,7 +53,7 @@ func TestIngressController(t *testing.T) {
fedClusterUpdateChan := RegisterFakeCopyOnUpdate("clusters", &fedClient.Fake, clusterWatch) fedClusterUpdateChan := RegisterFakeCopyOnUpdate("clusters", &fedClient.Fake, clusterWatch)
fedIngressUpdateChan := RegisterFakeCopyOnUpdate("ingresses", &fedClient.Fake, fedIngressWatch) fedIngressUpdateChan := RegisterFakeCopyOnUpdate("ingresses", &fedClient.Fake, fedIngressWatch)
cluster1Client := &fake_kube_release_1_4.Clientset{} cluster1Client := &fake_kubeclientset.Clientset{}
RegisterFakeList("ingresses", &cluster1Client.Fake, &extensions_v1beta1.IngressList{Items: []extensions_v1beta1.Ingress{}}) RegisterFakeList("ingresses", &cluster1Client.Fake, &extensions_v1beta1.IngressList{Items: []extensions_v1beta1.Ingress{}})
RegisterFakeList("configmaps", &cluster1Client.Fake, &fakeConfigMapList1) RegisterFakeList("configmaps", &cluster1Client.Fake, &fakeConfigMapList1)
cluster1IngressWatch := RegisterFakeWatch("ingresses", &cluster1Client.Fake) cluster1IngressWatch := RegisterFakeWatch("ingresses", &cluster1Client.Fake)
@ -61,7 +61,7 @@ func TestIngressController(t *testing.T) {
cluster1IngressCreateChan := RegisterFakeCopyOnCreate("ingresses", &cluster1Client.Fake, cluster1IngressWatch) cluster1IngressCreateChan := RegisterFakeCopyOnCreate("ingresses", &cluster1Client.Fake, cluster1IngressWatch)
cluster1IngressUpdateChan := RegisterFakeCopyOnUpdate("ingresses", &cluster1Client.Fake, cluster1IngressWatch) cluster1IngressUpdateChan := RegisterFakeCopyOnUpdate("ingresses", &cluster1Client.Fake, cluster1IngressWatch)
cluster2Client := &fake_kube_release_1_4.Clientset{} cluster2Client := &fake_kubeclientset.Clientset{}
RegisterFakeList("ingresses", &cluster2Client.Fake, &extensions_v1beta1.IngressList{Items: []extensions_v1beta1.Ingress{}}) RegisterFakeList("ingresses", &cluster2Client.Fake, &extensions_v1beta1.IngressList{Items: []extensions_v1beta1.Ingress{}})
RegisterFakeList("configmaps", &cluster2Client.Fake, &fakeConfigMapList2) RegisterFakeList("configmaps", &cluster2Client.Fake, &fakeConfigMapList2)
cluster2IngressWatch := RegisterFakeWatch("ingresses", &cluster2Client.Fake) cluster2IngressWatch := RegisterFakeWatch("ingresses", &cluster2Client.Fake)
@ -69,7 +69,7 @@ func TestIngressController(t *testing.T) {
cluster2IngressCreateChan := RegisterFakeCopyOnCreate("ingresses", &cluster2Client.Fake, cluster2IngressWatch) cluster2IngressCreateChan := RegisterFakeCopyOnCreate("ingresses", &cluster2Client.Fake, cluster2IngressWatch)
cluster2ConfigMapUpdateChan := RegisterFakeCopyOnUpdate("configmaps", &cluster2Client.Fake, cluster2ConfigMapWatch) cluster2ConfigMapUpdateChan := RegisterFakeCopyOnUpdate("configmaps", &cluster2Client.Fake, cluster2ConfigMapWatch)
clientFactoryFunc := func(cluster *federation_api.Cluster) (kube_release_1_4.Interface, error) { clientFactoryFunc := func(cluster *federation_api.Cluster) (kubeclientset.Interface, error) {
switch cluster.Name { switch cluster.Name {
case cluster1.Name: case cluster1.Name:
return cluster1Client, nil return cluster1Client, nil

View File

@ -22,14 +22,14 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/federation/pkg/federation-controller/util" "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/errors"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
"k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
pkg_runtime "k8s.io/kubernetes/pkg/runtime" pkg_runtime "k8s.io/kubernetes/pkg/runtime"
@ -64,7 +64,7 @@ type NamespaceController struct {
namespaceInformerController cache.ControllerInterface namespaceInformerController cache.ControllerInterface
// Client to federated api server. // Client to federated api server.
federatedApiClient federation_release_1_4.Interface federatedApiClient federationclientset.Interface
// Backoff manager for namespaces // Backoff manager for namespaces
namespaceBackoff *flowcontrol.Backoff namespaceBackoff *flowcontrol.Backoff
@ -79,7 +79,7 @@ type NamespaceController struct {
} }
// NewNamespaceController returns a new namespace controller // NewNamespaceController returns a new namespace controller
func NewNamespaceController(client federation_release_1_4.Interface) *NamespaceController { func NewNamespaceController(client federationclientset.Interface) *NamespaceController {
broadcaster := record.NewBroadcaster() broadcaster := record.NewBroadcaster()
broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client)) broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client))
recorder := broadcaster.NewRecorder(api.EventSource{Component: "federated-namespace-controller"}) recorder := broadcaster.NewRecorder(api.EventSource{Component: "federated-namespace-controller"})
@ -115,7 +115,7 @@ func NewNamespaceController(client federation_release_1_4.Interface) *NamespaceC
// Federated informer on namespaces in members of federation. // Federated informer on namespaces in members of federation.
nc.namespaceFederatedInformer = util.NewFederatedInformer( nc.namespaceFederatedInformer = util.NewFederatedInformer(
client, client,
func(cluster *federation_api.Cluster, targetClient kube_release_1_4.Interface) (cache.Store, cache.ControllerInterface) { func(cluster *federation_api.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.ControllerInterface) {
return cache.NewInformer( return cache.NewInformer(
&cache.ListWatch{ &cache.ListWatch{
ListFunc: func(options api.ListOptions) (pkg_runtime.Object, error) { ListFunc: func(options api.ListOptions) (pkg_runtime.Object, error) {
@ -144,17 +144,17 @@ func NewNamespaceController(client federation_release_1_4.Interface) *NamespaceC
// Federated updeater along with Create/Update/Delete operations. // Federated updeater along with Create/Update/Delete operations.
nc.federatedUpdater = util.NewFederatedUpdater(nc.namespaceFederatedInformer, nc.federatedUpdater = util.NewFederatedUpdater(nc.namespaceFederatedInformer,
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
namespace := obj.(*api_v1.Namespace) namespace := obj.(*api_v1.Namespace)
_, err := client.Core().Namespaces().Create(namespace) _, err := client.Core().Namespaces().Create(namespace)
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
namespace := obj.(*api_v1.Namespace) namespace := obj.(*api_v1.Namespace)
_, err := client.Core().Namespaces().Update(namespace) _, err := client.Core().Namespaces().Update(namespace)
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
namespace := obj.(*api_v1.Namespace) namespace := obj.(*api_v1.Namespace)
err := client.Core().Namespaces().Delete(namespace.Name, &api.DeleteOptions{}) err := client.Core().Namespaces().Delete(namespace.Name, &api.DeleteOptions{})
return err return err

View File

@ -22,13 +22,13 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
fake_federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4/fake" fake_fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5/fake"
. "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
"k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/api/unversioned"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
fake_kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/fake" fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
"k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/client/testing/core"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
@ -45,19 +45,19 @@ func TestNamespaceController(t *testing.T) {
}, },
} }
fakeClient := &fake_federation_release_1_4.Clientset{} fakeClient := &fake_fedclientset.Clientset{}
RegisterFakeList("clusters", &fakeClient.Fake, &federation_api.ClusterList{Items: []federation_api.Cluster{*cluster1}}) RegisterFakeList("clusters", &fakeClient.Fake, &federation_api.ClusterList{Items: []federation_api.Cluster{*cluster1}})
RegisterFakeList("namespaces", &fakeClient.Fake, &api_v1.NamespaceList{Items: []api_v1.Namespace{}}) RegisterFakeList("namespaces", &fakeClient.Fake, &api_v1.NamespaceList{Items: []api_v1.Namespace{}})
namespaceWatch := RegisterFakeWatch("namespaces", &fakeClient.Fake) namespaceWatch := RegisterFakeWatch("namespaces", &fakeClient.Fake)
clusterWatch := RegisterFakeWatch("clusters", &fakeClient.Fake) clusterWatch := RegisterFakeWatch("clusters", &fakeClient.Fake)
cluster1Client := &fake_kube_release_1_4.Clientset{} cluster1Client := &fake_kubeclientset.Clientset{}
cluster1Watch := RegisterFakeWatch("namespaces", &cluster1Client.Fake) cluster1Watch := RegisterFakeWatch("namespaces", &cluster1Client.Fake)
RegisterFakeList("namespaces", &cluster1Client.Fake, &api_v1.NamespaceList{Items: []api_v1.Namespace{}}) RegisterFakeList("namespaces", &cluster1Client.Fake, &api_v1.NamespaceList{Items: []api_v1.Namespace{}})
cluster1CreateChan := RegisterFakeCopyOnCreate("namespaces", &cluster1Client.Fake, cluster1Watch) cluster1CreateChan := RegisterFakeCopyOnCreate("namespaces", &cluster1Client.Fake, cluster1Watch)
cluster1UpdateChan := RegisterFakeCopyOnUpdate("namespaces", &cluster1Client.Fake, cluster1Watch) cluster1UpdateChan := RegisterFakeCopyOnUpdate("namespaces", &cluster1Client.Fake, cluster1Watch)
cluster2Client := &fake_kube_release_1_4.Clientset{} cluster2Client := &fake_kubeclientset.Clientset{}
cluster2Watch := RegisterFakeWatch("namespaces", &cluster2Client.Fake) cluster2Watch := RegisterFakeWatch("namespaces", &cluster2Client.Fake)
RegisterFakeList("namespaces", &cluster2Client.Fake, &api_v1.NamespaceList{Items: []api_v1.Namespace{}}) RegisterFakeList("namespaces", &cluster2Client.Fake, &api_v1.NamespaceList{Items: []api_v1.Namespace{}})
cluster2CreateChan := RegisterFakeCopyOnCreate("namespaces", &cluster2Client.Fake, cluster2Watch) cluster2CreateChan := RegisterFakeCopyOnCreate("namespaces", &cluster2Client.Fake, cluster2Watch)
@ -87,7 +87,7 @@ func TestNamespaceController(t *testing.T) {
namespaceController := NewNamespaceController(fakeClient) namespaceController := NewNamespaceController(fakeClient)
informer := ToFederatedInformerForTestOnly(namespaceController.namespaceFederatedInformer) informer := ToFederatedInformerForTestOnly(namespaceController.namespaceFederatedInformer)
informer.SetClientFactory(func(cluster *federation_api.Cluster) (kube_release_1_4.Interface, error) { informer.SetClientFactory(func(cluster *federation_api.Cluster) (kubeclientset.Interface, error) {
switch cluster.Name { switch cluster.Name {
case cluster1.Name: case cluster1.Name:
return cluster1Client, nil return cluster1Client, nil

View File

@ -28,7 +28,7 @@ import (
fed "k8s.io/kubernetes/federation/apis/federation" fed "k8s.io/kubernetes/federation/apis/federation"
fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
planner "k8s.io/kubernetes/federation/pkg/federation-controller/replicaset/planner" planner "k8s.io/kubernetes/federation/pkg/federation-controller/replicaset/planner"
fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink"
@ -36,7 +36,7 @@ import (
apiv1 "k8s.io/kubernetes/pkg/api/v1" apiv1 "k8s.io/kubernetes/pkg/api/v1"
extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
"k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"

View File

@ -23,13 +23,13 @@ import (
"time" "time"
fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
fedclientfake "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4/fake" fedclientfake "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5/fake"
"k8s.io/kubernetes/federation/pkg/federation-controller/util/test" "k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
"k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/api/meta"
apiv1 "k8s.io/kubernetes/pkg/api/v1" apiv1 "k8s.io/kubernetes/pkg/api/v1"
extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" extensionsv1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
kubeclientfake "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/fake" kubeclientfake "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
"k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/client/testing/core"
"k8s.io/kubernetes/pkg/watch" "k8s.io/kubernetes/pkg/watch"
@ -97,7 +97,7 @@ func TestReplicaSetController(t *testing.T) {
kube2Podwatch := watch.NewFake() kube2Podwatch := watch.NewFake()
kube2clientset.PrependWatchReactor("pods", core.DefaultWatchReactor(kube2Podwatch, nil)) kube2clientset.PrependWatchReactor("pods", core.DefaultWatchReactor(kube2Podwatch, nil))
fedInformerClientFactory := func(cluster *fedv1.Cluster) (kube_release_1_4.Interface, error) { fedInformerClientFactory := func(cluster *fedv1.Cluster) (kubeclientset.Interface, error) {
switch cluster.Name { switch cluster.Name {
case "k8s-1": case "k8s-1":
return kube1clientset, nil return kube1clientset, nil

View File

@ -21,13 +21,13 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/federation/pkg/federation-controller/util" "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
"k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
pkg_runtime "k8s.io/kubernetes/pkg/runtime" pkg_runtime "k8s.io/kubernetes/pkg/runtime"
@ -61,7 +61,7 @@ type SecretController struct {
secretInformerController cache.ControllerInterface secretInformerController cache.ControllerInterface
// Client to federated api server. // Client to federated api server.
federatedApiClient federation_release_1_4.Interface federatedApiClient federationclientset.Interface
// Backoff manager for secrets // Backoff manager for secrets
secretBackoff *flowcontrol.Backoff secretBackoff *flowcontrol.Backoff
@ -76,7 +76,7 @@ type SecretController struct {
} }
// NewSecretController returns a new secret controller // NewSecretController returns a new secret controller
func NewSecretController(client federation_release_1_4.Interface) *SecretController { func NewSecretController(client federationclientset.Interface) *SecretController {
broadcaster := record.NewBroadcaster() broadcaster := record.NewBroadcaster()
broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client)) broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(client))
recorder := broadcaster.NewRecorder(api.EventSource{Component: "federated-secrets-controller"}) recorder := broadcaster.NewRecorder(api.EventSource{Component: "federated-secrets-controller"})
@ -112,7 +112,7 @@ func NewSecretController(client federation_release_1_4.Interface) *SecretControl
// Federated informer on secrets in members of federation. // Federated informer on secrets in members of federation.
secretcontroller.secretFederatedInformer = util.NewFederatedInformer( secretcontroller.secretFederatedInformer = util.NewFederatedInformer(
client, client,
func(cluster *federation_api.Cluster, targetClient kube_release_1_4.Interface) (cache.Store, cache.ControllerInterface) { func(cluster *federation_api.Cluster, targetClient kubeclientset.Interface) (cache.Store, cache.ControllerInterface) {
return cache.NewInformer( return cache.NewInformer(
&cache.ListWatch{ &cache.ListWatch{
ListFunc: func(options api.ListOptions) (pkg_runtime.Object, error) { ListFunc: func(options api.ListOptions) (pkg_runtime.Object, error) {
@ -143,17 +143,17 @@ func NewSecretController(client federation_release_1_4.Interface) *SecretControl
// Federated updeater along with Create/Update/Delete operations. // Federated updeater along with Create/Update/Delete operations.
secretcontroller.federatedUpdater = util.NewFederatedUpdater(secretcontroller.secretFederatedInformer, secretcontroller.federatedUpdater = util.NewFederatedUpdater(secretcontroller.secretFederatedInformer,
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
secret := obj.(*api_v1.Secret) secret := obj.(*api_v1.Secret)
_, err := client.Core().Secrets(secret.Namespace).Create(secret) _, err := client.Core().Secrets(secret.Namespace).Create(secret)
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
secret := obj.(*api_v1.Secret) secret := obj.(*api_v1.Secret)
_, err := client.Core().Secrets(secret.Namespace).Update(secret) _, err := client.Core().Secrets(secret.Namespace).Update(secret)
return err return err
}, },
func(client kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(client kubeclientset.Interface, obj pkg_runtime.Object) error {
secret := obj.(*api_v1.Secret) secret := obj.(*api_v1.Secret)
err := client.Core().Secrets(secret.Namespace).Delete(secret.Name, &api.DeleteOptions{}) err := client.Core().Secrets(secret.Namespace).Delete(secret.Name, &api.DeleteOptions{})
return err return err

View File

@ -23,11 +23,11 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
fake_federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4/fake" fake_fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5/fake"
. "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
fake_kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/fake" fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -37,26 +37,26 @@ func TestSecretController(t *testing.T) {
cluster1 := NewCluster("cluster1", api_v1.ConditionTrue) cluster1 := NewCluster("cluster1", api_v1.ConditionTrue)
cluster2 := NewCluster("cluster2", api_v1.ConditionTrue) cluster2 := NewCluster("cluster2", api_v1.ConditionTrue)
fakeClient := &fake_federation_release_1_4.Clientset{} fakeClient := &fake_fedclientset.Clientset{}
RegisterFakeList("clusters", &fakeClient.Fake, &federation_api.ClusterList{Items: []federation_api.Cluster{*cluster1}}) RegisterFakeList("clusters", &fakeClient.Fake, &federation_api.ClusterList{Items: []federation_api.Cluster{*cluster1}})
RegisterFakeList("secrets", &fakeClient.Fake, &api_v1.SecretList{Items: []api_v1.Secret{}}) RegisterFakeList("secrets", &fakeClient.Fake, &api_v1.SecretList{Items: []api_v1.Secret{}})
secretWatch := RegisterFakeWatch("secrets", &fakeClient.Fake) secretWatch := RegisterFakeWatch("secrets", &fakeClient.Fake)
clusterWatch := RegisterFakeWatch("clusters", &fakeClient.Fake) clusterWatch := RegisterFakeWatch("clusters", &fakeClient.Fake)
cluster1Client := &fake_kube_release_1_4.Clientset{} cluster1Client := &fake_kubeclientset.Clientset{}
cluster1Watch := RegisterFakeWatch("secrets", &cluster1Client.Fake) cluster1Watch := RegisterFakeWatch("secrets", &cluster1Client.Fake)
RegisterFakeList("secrets", &cluster1Client.Fake, &api_v1.SecretList{Items: []api_v1.Secret{}}) RegisterFakeList("secrets", &cluster1Client.Fake, &api_v1.SecretList{Items: []api_v1.Secret{}})
cluster1CreateChan := RegisterFakeCopyOnCreate("secrets", &cluster1Client.Fake, cluster1Watch) cluster1CreateChan := RegisterFakeCopyOnCreate("secrets", &cluster1Client.Fake, cluster1Watch)
cluster1UpdateChan := RegisterFakeCopyOnUpdate("secrets", &cluster1Client.Fake, cluster1Watch) cluster1UpdateChan := RegisterFakeCopyOnUpdate("secrets", &cluster1Client.Fake, cluster1Watch)
cluster2Client := &fake_kube_release_1_4.Clientset{} cluster2Client := &fake_kubeclientset.Clientset{}
cluster2Watch := RegisterFakeWatch("secrets", &cluster2Client.Fake) cluster2Watch := RegisterFakeWatch("secrets", &cluster2Client.Fake)
RegisterFakeList("secrets", &cluster2Client.Fake, &api_v1.SecretList{Items: []api_v1.Secret{}}) RegisterFakeList("secrets", &cluster2Client.Fake, &api_v1.SecretList{Items: []api_v1.Secret{}})
cluster2CreateChan := RegisterFakeCopyOnCreate("secrets", &cluster2Client.Fake, cluster2Watch) cluster2CreateChan := RegisterFakeCopyOnCreate("secrets", &cluster2Client.Fake, cluster2Watch)
secretController := NewSecretController(fakeClient) secretController := NewSecretController(fakeClient)
informer := ToFederatedInformerForTestOnly(secretController.secretFederatedInformer) informer := ToFederatedInformerForTestOnly(secretController.secretFederatedInformer)
informer.SetClientFactory(func(cluster *federation_api.Cluster) (kube_release_1_4.Interface, error) { informer.SetClientFactory(func(cluster *federation_api.Cluster) (kubeclientset.Interface, error) {
switch cluster.Name { switch cluster.Name {
case cluster1.Name: case cluster1.Name:
return cluster1Client, nil return cluster1Client, nil

View File

@ -23,7 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
v1 "k8s.io/kubernetes/pkg/api/v1" v1 "k8s.io/kubernetes/pkg/api/v1"
cache "k8s.io/kubernetes/pkg/client/cache" cache "k8s.io/kubernetes/pkg/client/cache"
release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
"k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/restclient"
pkg_runtime "k8s.io/kubernetes/pkg/runtime" pkg_runtime "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/pkg/util/wait"
@ -37,7 +37,7 @@ import (
) )
type clusterCache struct { type clusterCache struct {
clientset *release_1_4.Clientset clientset *kubeclientset.Clientset
cluster *v1beta1.Cluster cluster *v1beta1.Cluster
// A store of services, populated by the serviceController // A store of services, populated by the serviceController
serviceStore cache.StoreToServiceLister serviceStore cache.StoreToServiceLister
@ -196,10 +196,10 @@ func (cc *clusterClientCache) addToClientMap(obj interface{}) {
} }
} }
func newClusterClientset(c *v1beta1.Cluster) (*release_1_4.Clientset, error) { func newClusterClientset(c *v1beta1.Cluster) (*kubeclientset.Clientset, error) {
clusterConfig, err := util.BuildClusterConfig(c) clusterConfig, err := util.BuildClusterConfig(c)
if clusterConfig != nil { if clusterConfig != nil {
clientset := release_1_4.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, UserAgentName)) clientset := kubeclientset.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, UserAgentName))
return clientset, nil return clientset, nil
} }
return nil, err return nil, err

View File

@ -20,7 +20,7 @@ import (
"fmt" "fmt"
"time" "time"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
v1 "k8s.io/kubernetes/pkg/api/v1" v1 "k8s.io/kubernetes/pkg/api/v1"
cache "k8s.io/kubernetes/pkg/client/cache" cache "k8s.io/kubernetes/pkg/client/cache"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
@ -75,7 +75,7 @@ ForLoop:
// Whenever there is change on endpoint, the federation service should be updated // Whenever there is change on endpoint, the federation service should be updated
// key is the namespaced name of endpoint // key is the namespaced name of endpoint
func (cc *clusterClientCache) syncEndpoint(key, clusterName string, clusterCache *clusterCache, serviceCache *serviceCache, fedClient federation_release_1_4.Interface, serviceController *ServiceController) error { func (cc *clusterClientCache) syncEndpoint(key, clusterName string, clusterCache *clusterCache, serviceCache *serviceCache, fedClient fedclientset.Interface, serviceController *ServiceController) error {
cachedService, ok := serviceCache.get(key) cachedService, ok := serviceCache.get(key)
if !ok { if !ok {
// here we filtered all non-federation services // here we filtered all non-federation services

View File

@ -20,7 +20,7 @@ import (
"fmt" "fmt"
"time" "time"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/errors"
v1 "k8s.io/kubernetes/pkg/api/v1" v1 "k8s.io/kubernetes/pkg/api/v1"
cache "k8s.io/kubernetes/pkg/client/cache" cache "k8s.io/kubernetes/pkg/client/cache"
@ -77,7 +77,7 @@ ForLoop:
} }
// Whenever there is change on service, the federation service should be updated // Whenever there is change on service, the federation service should be updated
func (cc *clusterClientCache) syncService(key, clusterName string, clusterCache *clusterCache, serviceCache *serviceCache, fedClient federation_release_1_4.Interface, sc *ServiceController) error { func (cc *clusterClientCache) syncService(key, clusterName string, clusterCache *clusterCache, serviceCache *serviceCache, fedClient fedclientset.Interface, sc *ServiceController) error {
// obj holds the latest service info from apiserver, return if there is no federation cache for the service // obj holds the latest service info from apiserver, return if there is no federation cache for the service
cachedService, ok := serviceCache.get(key) cachedService, ok := serviceCache.get(key)
if !ok { if !ok {
@ -258,7 +258,7 @@ func (cc *clusterClientCache) processServiceUpdate(cachedService *cachedService,
return needUpdate return needUpdate
} }
func (cc *clusterClientCache) persistFedServiceUpdate(cachedService *cachedService, fedClient federation_release_1_4.Interface) error { func (cc *clusterClientCache) persistFedServiceUpdate(cachedService *cachedService, fedClient fedclientset.Interface) error {
service := cachedService.lastState service := cachedService.lastState
glog.V(5).Infof("Persist federation service status %s/%s", service.Namespace, service.Name) glog.V(5).Infof("Persist federation service status %s/%s", service.Namespace, service.Name)
var err error var err error

View File

@ -26,13 +26,13 @@ import (
"github.com/golang/glog" "github.com/golang/glog"
v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federationcache "k8s.io/kubernetes/federation/client/cache" federationcache "k8s.io/kubernetes/federation/client/cache"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/federation/pkg/dnsprovider" "k8s.io/kubernetes/federation/pkg/dnsprovider"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/errors"
v1 "k8s.io/kubernetes/pkg/api/v1" v1 "k8s.io/kubernetes/pkg/api/v1"
cache "k8s.io/kubernetes/pkg/client/cache" cache "k8s.io/kubernetes/pkg/client/cache"
release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
"k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
pkg_runtime "k8s.io/kubernetes/pkg/runtime" pkg_runtime "k8s.io/kubernetes/pkg/runtime"
@ -100,7 +100,7 @@ type serviceCache struct {
type ServiceController struct { type ServiceController struct {
dns dnsprovider.Interface dns dnsprovider.Interface
federationClient federation_release_1_4.Interface federationClient fedclientset.Interface
federationName string federationName string
zoneName string zoneName string
// each federation should be configured with a single zone (e.g. "mycompany.com") // each federation should be configured with a single zone (e.g. "mycompany.com")
@ -135,7 +135,7 @@ type ServiceController struct {
// New returns a new service controller to keep DNS provider service resources // New returns a new service controller to keep DNS provider service resources
// (like Kubernetes Services and DNS server records for service discovery) in sync with the registry. // (like Kubernetes Services and DNS server records for service discovery) in sync with the registry.
func New(federationClient federation_release_1_4.Interface, dns dnsprovider.Interface, federationName, zoneName string) *ServiceController { func New(federationClient fedclientset.Interface, dns dnsprovider.Interface, federationName, zoneName string) *ServiceController {
broadcaster := record.NewBroadcaster() broadcaster := record.NewBroadcaster()
// federationClient event is not supported yet // federationClient event is not supported yet
// broadcaster.StartRecordingToSink(&unversioned_core.EventSinkImpl{Interface: kubeClient.Core().Events("")}) // broadcaster.StartRecordingToSink(&unversioned_core.EventSinkImpl{Interface: kubeClient.Core().Events("")})
@ -322,7 +322,7 @@ func wantsDNSRecords(service *v1.Service) bool {
// processServiceForCluster creates or updates service to all registered running clusters, // processServiceForCluster creates or updates service to all registered running clusters,
// update DNS records and update the service info with DNS entries to federation apiserver. // update DNS records and update the service info with DNS entries to federation apiserver.
// the function returns any error caught // the function returns any error caught
func (s *ServiceController) processServiceForCluster(cachedService *cachedService, clusterName string, service *v1.Service, client *release_1_4.Clientset) error { func (s *ServiceController) processServiceForCluster(cachedService *cachedService, clusterName string, service *v1.Service, client *kubeclientset.Clientset) error {
glog.V(4).Infof("Process service %s/%s for cluster %s", service.Namespace, service.Name, clusterName) glog.V(4).Infof("Process service %s/%s for cluster %s", service.Namespace, service.Name, clusterName)
// Create or Update k8s Service // Create or Update k8s Service
err := s.ensureClusterService(cachedService, clusterName, service, client) err := s.ensureClusterService(cachedService, clusterName, service, client)
@ -382,7 +382,7 @@ func (s *ServiceController) deleteFederationService(cachedService *cachedService
return nil, !retryable return nil, !retryable
} }
func (s *ServiceController) deleteClusterService(clusterName string, cachedService *cachedService, clientset *release_1_4.Clientset) error { func (s *ServiceController) deleteClusterService(clusterName string, cachedService *cachedService, clientset *kubeclientset.Clientset) error {
service := cachedService.lastState service := cachedService.lastState
glog.V(4).Infof("Deleting service %s/%s from cluster %s", service.Namespace, service.Name, clusterName) glog.V(4).Infof("Deleting service %s/%s from cluster %s", service.Namespace, service.Name, clusterName)
var err error var err error
@ -399,7 +399,7 @@ func (s *ServiceController) deleteClusterService(clusterName string, cachedServi
return err return err
} }
func (s *ServiceController) ensureClusterService(cachedService *cachedService, clusterName string, service *v1.Service, client *release_1_4.Clientset) error { func (s *ServiceController) ensureClusterService(cachedService *cachedService, clusterName string, service *v1.Service, client *kubeclientset.Clientset) error {
var err error var err error
var needUpdate bool var needUpdate bool
for i := 0; i < clientRetryCount; i++ { for i := 0; i < clientRetryCount; i++ {

View File

@ -24,7 +24,7 @@ import (
"github.com/golang/glog" "github.com/golang/glog"
federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_v1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/restclient"
client "k8s.io/kubernetes/pkg/client/unversioned" client "k8s.io/kubernetes/pkg/client/unversioned"
@ -133,10 +133,10 @@ var KubeconfigGetterForSecret = func(secretName string) clientcmd.KubeconfigGett
} }
// Retruns Clientset for the given cluster. // Retruns Clientset for the given cluster.
func GetClientsetForCluster(cluster *federation_v1beta1.Cluster) (*federation_release_1_4.Clientset, error) { func GetClientsetForCluster(cluster *federation_v1beta1.Cluster) (*fedclientset.Clientset, error) {
clusterConfig, err := BuildClusterConfig(cluster) clusterConfig, err := BuildClusterConfig(cluster)
if err != nil && clusterConfig != nil { if err != nil && clusterConfig != nil {
clientset := federation_release_1_4.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, userAgentName)) clientset := fedclientset.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, userAgentName))
return clientset, nil return clientset, nil
} }
return nil, err return nil, err

View File

@ -17,7 +17,7 @@ limitations under the License.
package eventsink package eventsink
import ( import (
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
api "k8s.io/kubernetes/pkg/api" api "k8s.io/kubernetes/pkg/api"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/client/record"
@ -25,13 +25,13 @@ import (
// Implemnts k8s.io/kubernetes/pkg/client/record.EventSink. // Implemnts k8s.io/kubernetes/pkg/client/record.EventSink.
type FederatedEventSink struct { type FederatedEventSink struct {
clientset federation_release_1_4.Interface clientset fedclientset.Interface
} }
// To check if all required functions are implemented. // To check if all required functions are implemented.
var _ record.EventSink = &FederatedEventSink{} var _ record.EventSink = &FederatedEventSink{}
func NewFederatedEventSink(clientset federation_release_1_4.Interface) *FederatedEventSink { func NewFederatedEventSink(clientset fedclientset.Interface) *FederatedEventSink {
return &FederatedEventSink{ return &FederatedEventSink{
clientset: clientset, clientset: clientset,
} }

View File

@ -19,7 +19,7 @@ package eventsink
import ( import (
"testing" "testing"
fake_federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4/fake" fake_fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5/fake"
. "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
api "k8s.io/kubernetes/pkg/api" api "k8s.io/kubernetes/pkg/api"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
@ -30,7 +30,7 @@ import (
) )
func TestEventSink(t *testing.T) { func TestEventSink(t *testing.T) {
fakeFederationClient := &fake_federation_release_1_4.Clientset{} fakeFederationClient := &fake_fedclientset.Clientset{}
createdChan := make(chan runtime.Object, 100) createdChan := make(chan runtime.Object, 100)
fakeFederationClient.AddReactor("create", "events", func(action core.Action) (bool, runtime.Object, error) { fakeFederationClient.AddReactor("create", "events", func(action core.Action) (bool, runtime.Object, error) {
createAction := action.(core.CreateAction) createAction := action.(core.CreateAction)

View File

@ -23,11 +23,11 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
api "k8s.io/kubernetes/pkg/api" api "k8s.io/kubernetes/pkg/api"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
"k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/restclient"
pkg_runtime "k8s.io/kubernetes/pkg/runtime" pkg_runtime "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/watch" "k8s.io/kubernetes/pkg/watch"
@ -72,7 +72,7 @@ type FederatedReadOnlyStore interface {
// An interface to access federation members and clients. // An interface to access federation members and clients.
type FederationView interface { type FederationView interface {
// GetClientsetForCluster returns a clientset for the cluster, if present. // GetClientsetForCluster returns a clientset for the cluster, if present.
GetClientsetForCluster(clusterName string) (kube_release_1_4.Interface, error) GetClientsetForCluster(clusterName string) (kubeclientset.Interface, error)
// GetReadyClusers returns all clusters for which the sub-informers are run. // GetReadyClusers returns all clusters for which the sub-informers are run.
GetReadyClusters() ([]*federation_api.Cluster, error) GetReadyClusters() ([]*federation_api.Cluster, error)
@ -106,12 +106,12 @@ type FederatedInformer interface {
type FederatedInformerForTestOnly interface { type FederatedInformerForTestOnly interface {
FederatedInformer FederatedInformer
SetClientFactory(func(*federation_api.Cluster) (kube_release_1_4.Interface, error)) SetClientFactory(func(*federation_api.Cluster) (kubeclientset.Interface, error))
} }
// A function that should be used to create an informer on the target object. Store should use // A function that should be used to create an informer on the target object. Store should use
// cache.DeletionHandlingMetaNamespaceKeyFunc as a keying function. // cache.DeletionHandlingMetaNamespaceKeyFunc as a keying function.
type TargetInformerFactory func(*federation_api.Cluster, kube_release_1_4.Interface) (cache.Store, cache.ControllerInterface) type TargetInformerFactory func(*federation_api.Cluster, kubeclientset.Interface) (cache.Store, cache.ControllerInterface)
// A structure with cluster lifecycle handler functions. Cluster is available (and ClusterAvailable is fired) // A structure with cluster lifecycle handler functions. Cluster is available (and ClusterAvailable is fired)
// when it is created in federated etcd and ready. Cluster becomes unavailable (and ClusterUnavailable is fired) // when it is created in federated etcd and ready. Cluster becomes unavailable (and ClusterUnavailable is fired)
@ -127,16 +127,16 @@ type ClusterLifecycleHandlerFuncs struct {
// Builds a FederatedInformer for the given federation client and factory. // Builds a FederatedInformer for the given federation client and factory.
func NewFederatedInformer( func NewFederatedInformer(
federationClient federation_release_1_4.Interface, federationClient federationclientset.Interface,
targetInformerFactory TargetInformerFactory, targetInformerFactory TargetInformerFactory,
clusterLifecycle *ClusterLifecycleHandlerFuncs) FederatedInformer { clusterLifecycle *ClusterLifecycleHandlerFuncs) FederatedInformer {
federatedInformer := &federatedInformerImpl{ federatedInformer := &federatedInformerImpl{
targetInformerFactory: targetInformerFactory, targetInformerFactory: targetInformerFactory,
clientFactory: func(cluster *federation_api.Cluster) (kube_release_1_4.Interface, error) { clientFactory: func(cluster *federation_api.Cluster) (kubeclientset.Interface, error) {
clusterConfig, err := BuildClusterConfig(cluster) clusterConfig, err := BuildClusterConfig(cluster)
if err == nil && clusterConfig != nil { if err == nil && clusterConfig != nil {
clientset := kube_release_1_4.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, userAgentName)) clientset := kubeclientset.NewForConfigOrDie(restclient.AddUserAgent(clusterConfig, userAgentName))
return clientset, nil return clientset, nil
} }
return nil, err return nil, err
@ -255,7 +255,7 @@ type federatedInformerImpl struct {
targetInformers map[string]informer targetInformers map[string]informer
// A function to build clients. // A function to build clients.
clientFactory func(*federation_api.Cluster) (kube_release_1_4.Interface, error) clientFactory func(*federation_api.Cluster) (kubeclientset.Interface, error)
} }
type federatedStoreImpl struct { type federatedStoreImpl struct {
@ -283,7 +283,7 @@ func (f *federatedInformerImpl) Start() {
go f.clusterInformer.controller.Run(f.clusterInformer.stopChan) go f.clusterInformer.controller.Run(f.clusterInformer.stopChan)
} }
func (f *federatedInformerImpl) SetClientFactory(clientFactory func(*federation_api.Cluster) (kube_release_1_4.Interface, error)) { func (f *federatedInformerImpl) SetClientFactory(clientFactory func(*federation_api.Cluster) (kubeclientset.Interface, error)) {
f.Lock() f.Lock()
defer f.Unlock() defer f.Unlock()
@ -291,13 +291,13 @@ func (f *federatedInformerImpl) SetClientFactory(clientFactory func(*federation_
} }
// GetClientsetForCluster returns a clientset for the cluster, if present. // GetClientsetForCluster returns a clientset for the cluster, if present.
func (f *federatedInformerImpl) GetClientsetForCluster(clusterName string) (kube_release_1_4.Interface, error) { func (f *federatedInformerImpl) GetClientsetForCluster(clusterName string) (kubeclientset.Interface, error) {
f.Lock() f.Lock()
defer f.Unlock() defer f.Unlock()
return f.getClientsetForClusterUnlocked(clusterName) return f.getClientsetForClusterUnlocked(clusterName)
} }
func (f *federatedInformerImpl) getClientsetForClusterUnlocked(clusterName string) (kube_release_1_4.Interface, error) { func (f *federatedInformerImpl) getClientsetForClusterUnlocked(clusterName string) (kubeclientset.Interface, error) {
// No locking needed. Will happen in f.GetCluster. // No locking needed. Will happen in f.GetCluster.
glog.V(4).Infof("Getting clientset for cluster %q", clusterName) glog.V(4).Infof("Getting clientset for cluster %q", clusterName)
if cluster, found, err := f.getReadyClusterUnlocked(clusterName); found && err == nil { if cluster, found, err := f.getReadyClusterUnlocked(clusterName); found && err == nil {

View File

@ -21,12 +21,12 @@ import (
"time" "time"
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
fake_federation_release_1_4 "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4/fake" fakefederationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5/fake"
api "k8s.io/kubernetes/pkg/api" api "k8s.io/kubernetes/pkg/api"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache" "k8s.io/kubernetes/pkg/client/cache"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
fake_kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/fake" fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
"k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/client/testing/core"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/watch" "k8s.io/kubernetes/pkg/watch"
@ -37,7 +37,7 @@ import (
// Basic test for Federated Informer. Checks whether the subinformer are added and deleted // Basic test for Federated Informer. Checks whether the subinformer are added and deleted
// when the corresponding cluster entries appear and disappear from etcd. // when the corresponding cluster entries appear and disappear from etcd.
func TestFederatedInformer(t *testing.T) { func TestFederatedInformer(t *testing.T) {
fakeFederationClient := &fake_federation_release_1_4.Clientset{} fakeFederationClient := &fakefederationclientset.Clientset{}
// Add a single cluster to federation and remove it when needed. // Add a single cluster to federation and remove it when needed.
cluster := federation_api.Cluster{ cluster := federation_api.Cluster{
@ -63,7 +63,7 @@ func TestFederatedInformer(t *testing.T) {
return true, fakeWatch, nil return true, fakeWatch, nil
}) })
fakeKubeClient := &fake_kube_release_1_4.Clientset{} fakeKubeClient := &fake_kubeclientset.Clientset{}
// There is a single service ns1/s1 in cluster mycluster. // There is a single service ns1/s1 in cluster mycluster.
service := api_v1.Service{ service := api_v1.Service{
ObjectMeta: api_v1.ObjectMeta{ ObjectMeta: api_v1.ObjectMeta{
@ -78,7 +78,7 @@ func TestFederatedInformer(t *testing.T) {
return true, watch.NewFake(), nil return true, watch.NewFake(), nil
}) })
targetInformerFactory := func(cluster *federation_api.Cluster, clientset kube_release_1_4.Interface) (cache.Store, cache.ControllerInterface) { targetInformerFactory := func(cluster *federation_api.Cluster, clientset kubeclientset.Interface) (cache.Store, cache.ControllerInterface) {
return cache.NewInformer( return cache.NewInformer(
&cache.ListWatch{ &cache.ListWatch{
ListFunc: func(options api.ListOptions) (runtime.Object, error) { ListFunc: func(options api.ListOptions) (runtime.Object, error) {
@ -107,7 +107,7 @@ func TestFederatedInformer(t *testing.T) {
} }
informer := NewFederatedInformer(fakeFederationClient, targetInformerFactory, &lifecycle).(*federatedInformerImpl) informer := NewFederatedInformer(fakeFederationClient, targetInformerFactory, &lifecycle).(*federatedInformerImpl)
informer.clientFactory = func(cluster *federation_api.Cluster) (kube_release_1_4.Interface, error) { informer.clientFactory = func(cluster *federation_api.Cluster) (kubeclientset.Interface, error) {
return fakeKubeClient, nil return fakeKubeClient, nil
} }
assert.NotNil(t, informer) assert.NotNil(t, informer)

View File

@ -20,7 +20,7 @@ import (
"fmt" "fmt"
"time" "time"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
pkg_runtime "k8s.io/kubernetes/pkg/runtime" pkg_runtime "k8s.io/kubernetes/pkg/runtime"
) )
@ -52,7 +52,7 @@ type FederatedUpdater interface {
} }
// A function that executes some operation using the passed client and object. // A function that executes some operation using the passed client and object.
type FederatedOperationHandler func(kube_release_1_4.Interface, pkg_runtime.Object) error type FederatedOperationHandler func(kubeclientset.Interface, pkg_runtime.Object) error
type federatedUpdaterImpl struct { type federatedUpdaterImpl struct {
federation FederationView federation FederationView

View File

@ -23,8 +23,8 @@ import (
federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1" federation_api "k8s.io/kubernetes/federation/apis/federation/v1beta1"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
fake_kube_release_1_4 "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4/fake" fake_kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/fake"
pkg_runtime "k8s.io/kubernetes/pkg/runtime" pkg_runtime "k8s.io/kubernetes/pkg/runtime"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -34,8 +34,8 @@ import (
type fakeFederationView struct { type fakeFederationView struct {
} }
func (f fakeFederationView) GetClientsetForCluster(clusterName string) (kube_release_1_4.Interface, error) { func (f fakeFederationView) GetClientsetForCluster(clusterName string) (kubeclientset.Interface, error) {
return &fake_kube_release_1_4.Clientset{}, nil return &fake_kubeclientset.Clientset{}, nil
} }
func (f *fakeFederationView) GetReadyClusters() ([]*federation_api.Cluster, error) { func (f *fakeFederationView) GetReadyClusters() ([]*federation_api.Cluster, error) {
@ -55,12 +55,12 @@ func TestFederatedUpdaterOK(t *testing.T) {
updateChan := make(chan string, 5) updateChan := make(chan string, 5)
updater := NewFederatedUpdater(&fakeFederationView{}, updater := NewFederatedUpdater(&fakeFederationView{},
func(_ kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(_ kubeclientset.Interface, obj pkg_runtime.Object) error {
service := obj.(*api_v1.Service) service := obj.(*api_v1.Service)
addChan <- service.Name addChan <- service.Name
return nil return nil
}, },
func(_ kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(_ kubeclientset.Interface, obj pkg_runtime.Object) error {
service := obj.(*api_v1.Service) service := obj.(*api_v1.Service)
updateChan <- service.Name updateChan <- service.Name
return nil return nil
@ -86,7 +86,7 @@ func TestFederatedUpdaterOK(t *testing.T) {
func TestFederatedUpdaterError(t *testing.T) { func TestFederatedUpdaterError(t *testing.T) {
updater := NewFederatedUpdater(&fakeFederationView{}, updater := NewFederatedUpdater(&fakeFederationView{},
func(_ kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(_ kubeclientset.Interface, obj pkg_runtime.Object) error {
return fmt.Errorf("boom") return fmt.Errorf("boom")
}, noop, noop) }, noop, noop)
@ -106,7 +106,7 @@ func TestFederatedUpdaterError(t *testing.T) {
func TestFederatedUpdaterTimeout(t *testing.T) { func TestFederatedUpdaterTimeout(t *testing.T) {
start := time.Now() start := time.Now()
updater := NewFederatedUpdater(&fakeFederationView{}, updater := NewFederatedUpdater(&fakeFederationView{},
func(_ kube_release_1_4.Interface, obj pkg_runtime.Object) error { func(_ kubeclientset.Interface, obj pkg_runtime.Object) error {
time.Sleep(time.Minute) time.Sleep(time.Minute)
return nil return nil
}, },
@ -136,6 +136,6 @@ func makeService(cluster, name string) *api_v1.Service {
} }
} }
func noop(_ kube_release_1_4.Interface, _ pkg_runtime.Object) error { func noop(_ kubeclientset.Interface, _ pkg_runtime.Object) error {
return nil return nil
} }

View File

@ -18,6 +18,7 @@ package fake
import ( import (
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
policy "k8s.io/kubernetes/pkg/apis/policy/v1alpha1"
"k8s.io/kubernetes/pkg/client/restclient" "k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/testing/core" "k8s.io/kubernetes/pkg/client/testing/core"
) )
@ -44,3 +45,14 @@ func (c *FakePods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Requ
_, _ = c.Fake.Invokes(action, &v1.Pod{}) _, _ = c.Fake.Invokes(action, &v1.Pod{})
return &restclient.Request{} return &restclient.Request{}
} }
func (c *FakePods) Evict(eviction *policy.Eviction) error {
action := core.CreateActionImpl{}
action.Verb = "create"
action.Resource = podsResource
action.Subresource = "eviction"
action.Object = eviction
_, err := c.Fake.Invokes(action, eviction)
return err
}