Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
a780db9a
Commit
a780db9a
authored
Sep 07, 2016
by
Chao Xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
changes in federation controllers
parent
31d8f112
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
124 additions
and
112 deletions
+124
-112
controllermanager.go
...md/federation-controller-manager/app/controllermanager.go
+1
-1
clustercontroller.go
...on/pkg/federation-controller/cluster/clustercontroller.go
+1
-1
clustercontroller_test.go
...g/federation-controller/cluster/clustercontroller_test.go
+1
-1
ingress_controller.go
...n/pkg/federation-controller/ingress/ingress_controller.go
+12
-12
ingress_controller_test.go
.../federation-controller/ingress/ingress_controller_test.go
+7
-7
namespace_controller.go
...g/federation-controller/namespace/namespace_controller.go
+8
-8
namespace_controller_test.go
...eration-controller/namespace/namespace_controller_test.go
+7
-7
replicasetcontroller.go
.../federation-controller/replicaset/replicasetcontroller.go
+2
-2
replicasetcontroller_test.go
...ration-controller/replicaset/replicasetcontroller_test.go
+4
-4
secret_controller.go
...ion/pkg/federation-controller/secret/secret_controller.go
+8
-8
secret_controller_test.go
...kg/federation-controller/secret/secret_controller_test.go
+7
-7
cluster_helper.go
...ation/pkg/federation-controller/service/cluster_helper.go
+4
-4
endpoint_helper.go
...tion/pkg/federation-controller/service/endpoint_helper.go
+2
-2
service_helper.go
...ation/pkg/federation-controller/service/service_helper.go
+3
-3
servicecontroller.go
...on/pkg/federation-controller/service/servicecontroller.go
+7
-7
cluster_util.go
federation/pkg/federation-controller/util/cluster_util.go
+3
-3
eventsink.go
...ion/pkg/federation-controller/util/eventsink/eventsink.go
+3
-3
eventsink_test.go
...kg/federation-controller/util/eventsink/eventsink_test.go
+2
-2
federated_informer.go
...tion/pkg/federation-controller/util/federated_informer.go
+12
-12
federated_informer_test.go
...pkg/federation-controller/util/federated_informer_test.go
+7
-7
federated_updater.go
...ation/pkg/federation-controller/util/federated_updater.go
+2
-2
federated_updater_test.go
.../pkg/federation-controller/util/federated_updater_test.go
+9
-9
fake_pod_expansion.go
...ated/release_1_5/typed/core/v1/fake/fake_pod_expansion.go
+12
-0
No files found.
federation/cmd/federation-controller-manager/app/controllermanager.go
View file @
a780db9a
...
...
@@ -26,7 +26,7 @@ import (
"net/http/pprof"
"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/pkg/dnsprovider"
clustercontroller
"k8s.io/kubernetes/federation/pkg/federation-controller/cluster"
...
...
federation/pkg/federation-controller/cluster/clustercontroller.go
View file @
a780db9a
...
...
@@ -23,7 +23,7 @@ import (
"github.com/golang/glog"
federation_v1beta1
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
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/client/cache"
"k8s.io/kubernetes/pkg/controller"
...
...
federation/pkg/federation-controller/cluster/clustercontroller_test.go
View file @
a780db9a
...
...
@@ -24,7 +24,7 @@ import (
"testing"
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"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/unversioned"
...
...
federation/pkg/federation-controller/ingress/ingress_controller.go
View file @
a780db9a
...
...
@@ -23,14 +23,14 @@ import (
"time"
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation
_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
federation
clientset
"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/eventsink"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/v1"
extensions_v1beta1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/client/cache"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/conversion"
...
...
@@ -83,7 +83,7 @@ type IngressController struct {
ingressInformerController
cache
.
ControllerInterface
// Client to federated api server.
federatedApiClient
federation
_release_1_4
.
Interface
federatedApiClient
federation
clientset
.
Interface
// Backoff manager for ingresses
ingressBackoff
*
flowcontrol
.
Backoff
...
...
@@ -101,7 +101,7 @@ type IngressController struct {
}
// NewIngressController returns a new ingress controller
func
NewIngressController
(
client
federation
_release_1_4
.
Interface
)
*
IngressController
{
func
NewIngressController
(
client
federation
clientset
.
Interface
)
*
IngressController
{
glog
.
V
(
4
)
.
Infof
(
"->NewIngressController V(4)"
)
broadcaster
:=
record
.
NewBroadcaster
()
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.
ic
.
ingressFederatedInformer
=
util
.
NewFederatedInformer
(
client
,
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
_release_1_4
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
clientset
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
return
cache
.
NewInformer
(
&
cache
.
ListWatch
{
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.
ic
.
configMapFederatedInformer
=
util
.
NewFederatedInformer
(
client
,
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
_release_1_4
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
clientset
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
glog
.
V
(
4
)
.
Infof
(
"Returning new informer for cluster %q"
,
cluster
.
Name
)
return
cache
.
NewInformer
(
&
cache
.
ListWatch
{
...
...
@@ -213,7 +213,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
// Federated ingress updater along with Create/Update/Delete operations.
ic
.
federatedIngressUpdater
=
util
.
NewFederatedUpdater
(
ic
.
ingressFederatedInformer
,
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
ingress
:=
obj
.
(
*
extensions_v1beta1
.
Ingress
)
glog
.
V
(
4
)
.
Infof
(
"Attempting to create Ingress: %v"
,
ingress
)
_
,
err
:=
client
.
Extensions
()
.
Ingresses
(
ingress
.
Namespace
)
.
Create
(
ingress
)
...
...
@@ -224,7 +224,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
}
return
err
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
ingress
:=
obj
.
(
*
extensions_v1beta1
.
Ingress
)
glog
.
V
(
4
)
.
Infof
(
"Attempting to update Ingress: %v"
,
ingress
)
_
,
err
:=
client
.
Extensions
()
.
Ingresses
(
ingress
.
Namespace
)
.
Update
(
ingress
)
...
...
@@ -235,7 +235,7 @@ func NewIngressController(client federation_release_1_4.Interface) *IngressContr
}
return
err
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
ingress
:=
obj
.
(
*
extensions_v1beta1
.
Ingress
)
glog
.
V
(
4
)
.
Infof
(
"Attempting to delete Ingress: %v"
,
ingress
)
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.
ic
.
federatedConfigMapUpdater
=
util
.
NewFederatedUpdater
(
ic
.
configMapFederatedInformer
,
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
configMap
:=
obj
.
(
*
v1
.
ConfigMap
)
configMapName
:=
types
.
NamespacedName
{
Name
:
configMap
.
Name
,
Namespace
:
configMap
.
Namespace
}
glog
.
Errorf
(
"Internal error: Incorrectly attempting to create ConfigMap: %q"
,
configMapName
)
_
,
err
:=
client
.
Core
()
.
ConfigMaps
(
configMap
.
Namespace
)
.
Create
(
configMap
)
return
err
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
configMap
:=
obj
.
(
*
v1
.
ConfigMap
)
configMapName
:=
types
.
NamespacedName
{
Name
:
configMap
.
Name
,
Namespace
:
configMap
.
Namespace
}
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
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
configMap
:=
obj
.
(
*
v1
.
ConfigMap
)
configMapName
:=
types
.
NamespacedName
{
Name
:
configMap
.
Name
,
Namespace
:
configMap
.
Namespace
}
glog
.
Errorf
(
"Internal error: Incorrectly attempting to delete ConfigMap: %q"
,
configMapName
)
...
...
federation/pkg/federation-controller/ingress/ingress_controller_test.go
View file @
a780db9a
...
...
@@ -23,13 +23,13 @@ import (
"time"
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
fake_fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
/fake"
fake_fed
clientset
"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/test"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
extensions_v1beta1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
fake_kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
/fake"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
fake_kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
/fake"
"k8s.io/kubernetes/pkg/runtime"
"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.
t
.
Log
(
"Creating fake infrastructure"
)
fedClient
:=
&
fake_fed
eration_release_1_4
.
Clientset
{}
fedClient
:=
&
fake_fed
clientset
.
Clientset
{}
RegisterFakeList
(
"clusters"
,
&
fedClient
.
Fake
,
&
fakeClusterList
)
RegisterFakeList
(
"ingresses"
,
&
fedClient
.
Fake
,
&
extensions_v1beta1
.
IngressList
{
Items
:
[]
extensions_v1beta1
.
Ingress
{}})
fedIngressWatch
:=
RegisterFakeWatch
(
"ingresses"
,
&
fedClient
.
Fake
)
...
...
@@ -53,7 +53,7 @@ func TestIngressController(t *testing.T) {
fedClusterUpdateChan
:=
RegisterFakeCopyOnUpdate
(
"clusters"
,
&
fedClient
.
Fake
,
clusterWatch
)
fedIngressUpdateChan
:=
RegisterFakeCopyOnUpdate
(
"ingresses"
,
&
fedClient
.
Fake
,
fedIngressWatch
)
cluster1Client
:=
&
fake_kube
_release_1_4
.
Clientset
{}
cluster1Client
:=
&
fake_kube
clientset
.
Clientset
{}
RegisterFakeList
(
"ingresses"
,
&
cluster1Client
.
Fake
,
&
extensions_v1beta1
.
IngressList
{
Items
:
[]
extensions_v1beta1
.
Ingress
{}})
RegisterFakeList
(
"configmaps"
,
&
cluster1Client
.
Fake
,
&
fakeConfigMapList1
)
cluster1IngressWatch
:=
RegisterFakeWatch
(
"ingresses"
,
&
cluster1Client
.
Fake
)
...
...
@@ -61,7 +61,7 @@ func TestIngressController(t *testing.T) {
cluster1IngressCreateChan
:=
RegisterFakeCopyOnCreate
(
"ingresses"
,
&
cluster1Client
.
Fake
,
cluster1IngressWatch
)
cluster1IngressUpdateChan
:=
RegisterFakeCopyOnUpdate
(
"ingresses"
,
&
cluster1Client
.
Fake
,
cluster1IngressWatch
)
cluster2Client
:=
&
fake_kube
_release_1_4
.
Clientset
{}
cluster2Client
:=
&
fake_kube
clientset
.
Clientset
{}
RegisterFakeList
(
"ingresses"
,
&
cluster2Client
.
Fake
,
&
extensions_v1beta1
.
IngressList
{
Items
:
[]
extensions_v1beta1
.
Ingress
{}})
RegisterFakeList
(
"configmaps"
,
&
cluster2Client
.
Fake
,
&
fakeConfigMapList2
)
cluster2IngressWatch
:=
RegisterFakeWatch
(
"ingresses"
,
&
cluster2Client
.
Fake
)
...
...
@@ -69,7 +69,7 @@ func TestIngressController(t *testing.T) {
cluster2IngressCreateChan
:=
RegisterFakeCopyOnCreate
(
"ingresses"
,
&
cluster2Client
.
Fake
,
cluster2IngressWatch
)
cluster2ConfigMapUpdateChan
:=
RegisterFakeCopyOnUpdate
(
"configmaps"
,
&
cluster2Client
.
Fake
,
cluster2ConfigMapWatch
)
clientFactoryFunc
:=
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
_release_1_4
.
Interface
,
error
)
{
clientFactoryFunc
:=
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
clientset
.
Interface
,
error
)
{
switch
cluster
.
Name
{
case
cluster1
.
Name
:
return
cluster1Client
,
nil
...
...
federation/pkg/federation-controller/namespace/namespace_controller.go
View file @
a780db9a
...
...
@@ -22,14 +22,14 @@ import (
"time"
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation
_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
federation
clientset
"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/eventsink"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -64,7 +64,7 @@ type NamespaceController struct {
namespaceInformerController
cache
.
ControllerInterface
// Client to federated api server.
federatedApiClient
federation
_release_1_4
.
Interface
federatedApiClient
federation
clientset
.
Interface
// Backoff manager for namespaces
namespaceBackoff
*
flowcontrol
.
Backoff
...
...
@@ -79,7 +79,7 @@ type NamespaceController struct {
}
// NewNamespaceController returns a new namespace controller
func
NewNamespaceController
(
client
federation
_release_1_4
.
Interface
)
*
NamespaceController
{
func
NewNamespaceController
(
client
federation
clientset
.
Interface
)
*
NamespaceController
{
broadcaster
:=
record
.
NewBroadcaster
()
broadcaster
.
StartRecordingToSink
(
eventsink
.
NewFederatedEventSink
(
client
))
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.
nc
.
namespaceFederatedInformer
=
util
.
NewFederatedInformer
(
client
,
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
_release_1_4
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
clientset
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
return
cache
.
NewInformer
(
&
cache
.
ListWatch
{
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.
nc
.
federatedUpdater
=
util
.
NewFederatedUpdater
(
nc
.
namespaceFederatedInformer
,
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
namespace
:=
obj
.
(
*
api_v1
.
Namespace
)
_
,
err
:=
client
.
Core
()
.
Namespaces
()
.
Create
(
namespace
)
return
err
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
namespace
:=
obj
.
(
*
api_v1
.
Namespace
)
_
,
err
:=
client
.
Core
()
.
Namespaces
()
.
Update
(
namespace
)
return
err
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
namespace
:=
obj
.
(
*
api_v1
.
Namespace
)
err
:=
client
.
Core
()
.
Namespaces
()
.
Delete
(
namespace
.
Name
,
&
api
.
DeleteOptions
{})
return
err
...
...
federation/pkg/federation-controller/namespace/namespace_controller_test.go
View file @
a780db9a
...
...
@@ -22,13 +22,13 @@ import (
"time"
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
fake_fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
/fake"
fake_fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
/fake"
.
"k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
"k8s.io/kubernetes/pkg/api/unversioned"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
extensionsv1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
fake_kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
/fake"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
fake_kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
/fake"
"k8s.io/kubernetes/pkg/client/testing/core"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -45,19 +45,19 @@ func TestNamespaceController(t *testing.T) {
},
}
fakeClient
:=
&
fake_fed
eration_release_1_4
.
Clientset
{}
fakeClient
:=
&
fake_fed
clientset
.
Clientset
{}
RegisterFakeList
(
"clusters"
,
&
fakeClient
.
Fake
,
&
federation_api
.
ClusterList
{
Items
:
[]
federation_api
.
Cluster
{
*
cluster1
}})
RegisterFakeList
(
"namespaces"
,
&
fakeClient
.
Fake
,
&
api_v1
.
NamespaceList
{
Items
:
[]
api_v1
.
Namespace
{}})
namespaceWatch
:=
RegisterFakeWatch
(
"namespaces"
,
&
fakeClient
.
Fake
)
clusterWatch
:=
RegisterFakeWatch
(
"clusters"
,
&
fakeClient
.
Fake
)
cluster1Client
:=
&
fake_kube
_release_1_4
.
Clientset
{}
cluster1Client
:=
&
fake_kube
clientset
.
Clientset
{}
cluster1Watch
:=
RegisterFakeWatch
(
"namespaces"
,
&
cluster1Client
.
Fake
)
RegisterFakeList
(
"namespaces"
,
&
cluster1Client
.
Fake
,
&
api_v1
.
NamespaceList
{
Items
:
[]
api_v1
.
Namespace
{}})
cluster1CreateChan
:=
RegisterFakeCopyOnCreate
(
"namespaces"
,
&
cluster1Client
.
Fake
,
cluster1Watch
)
cluster1UpdateChan
:=
RegisterFakeCopyOnUpdate
(
"namespaces"
,
&
cluster1Client
.
Fake
,
cluster1Watch
)
cluster2Client
:=
&
fake_kube
_release_1_4
.
Clientset
{}
cluster2Client
:=
&
fake_kube
clientset
.
Clientset
{}
cluster2Watch
:=
RegisterFakeWatch
(
"namespaces"
,
&
cluster2Client
.
Fake
)
RegisterFakeList
(
"namespaces"
,
&
cluster2Client
.
Fake
,
&
api_v1
.
NamespaceList
{
Items
:
[]
api_v1
.
Namespace
{}})
cluster2CreateChan
:=
RegisterFakeCopyOnCreate
(
"namespaces"
,
&
cluster2Client
.
Fake
,
cluster2Watch
)
...
...
@@ -87,7 +87,7 @@ func TestNamespaceController(t *testing.T) {
namespaceController
:=
NewNamespaceController
(
fakeClient
)
informer
:=
ToFederatedInformerForTestOnly
(
namespaceController
.
namespaceFederatedInformer
)
informer
.
SetClientFactory
(
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
_release_1_4
.
Interface
,
error
)
{
informer
.
SetClientFactory
(
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
clientset
.
Interface
,
error
)
{
switch
cluster
.
Name
{
case
cluster1
.
Name
:
return
cluster1Client
,
nil
...
...
federation/pkg/federation-controller/replicaset/replicasetcontroller.go
View file @
a780db9a
...
...
@@ -28,7 +28,7 @@ import (
fed
"k8s.io/kubernetes/federation/apis/federation"
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"
fedutil
"k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink"
...
...
@@ -36,7 +36,7 @@ import (
apiv1
"k8s.io/kubernetes/pkg/api/v1"
extensionsv1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"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/controller"
"k8s.io/kubernetes/pkg/runtime"
...
...
federation/pkg/federation-controller/replicaset/replicasetcontroller_test.go
View file @
a780db9a
...
...
@@ -23,13 +23,13 @@ import (
"time"
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/pkg/api/meta"
apiv1
"k8s.io/kubernetes/pkg/api/v1"
extensionsv1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
kubeclientfake
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_
4
/fake"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
kubeclientfake
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_
5
/fake"
"k8s.io/kubernetes/pkg/client/testing/core"
"k8s.io/kubernetes/pkg/watch"
...
...
@@ -97,7 +97,7 @@ func TestReplicaSetController(t *testing.T) {
kube2Podwatch
:=
watch
.
NewFake
()
kube2clientset
.
PrependWatchReactor
(
"pods"
,
core
.
DefaultWatchReactor
(
kube2Podwatch
,
nil
))
fedInformerClientFactory
:=
func
(
cluster
*
fedv1
.
Cluster
)
(
kube
_release_1_4
.
Interface
,
error
)
{
fedInformerClientFactory
:=
func
(
cluster
*
fedv1
.
Cluster
)
(
kube
clientset
.
Interface
,
error
)
{
switch
cluster
.
Name
{
case
"k8s-1"
:
return
kube1clientset
,
nil
...
...
federation/pkg/federation-controller/secret/secret_controller.go
View file @
a780db9a
...
...
@@ -21,13 +21,13 @@ import (
"time"
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation
_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
federation
clientset
"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/eventsink"
"k8s.io/kubernetes/pkg/api"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -61,7 +61,7 @@ type SecretController struct {
secretInformerController
cache
.
ControllerInterface
// Client to federated api server.
federatedApiClient
federation
_release_1_4
.
Interface
federatedApiClient
federation
clientset
.
Interface
// Backoff manager for secrets
secretBackoff
*
flowcontrol
.
Backoff
...
...
@@ -76,7 +76,7 @@ type SecretController struct {
}
// NewSecretController returns a new secret controller
func
NewSecretController
(
client
federation
_release_1_4
.
Interface
)
*
SecretController
{
func
NewSecretController
(
client
federation
clientset
.
Interface
)
*
SecretController
{
broadcaster
:=
record
.
NewBroadcaster
()
broadcaster
.
StartRecordingToSink
(
eventsink
.
NewFederatedEventSink
(
client
))
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.
secretcontroller
.
secretFederatedInformer
=
util
.
NewFederatedInformer
(
client
,
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
_release_1_4
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
func
(
cluster
*
federation_api
.
Cluster
,
targetClient
kube
clientset
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
return
cache
.
NewInformer
(
&
cache
.
ListWatch
{
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.
secretcontroller
.
federatedUpdater
=
util
.
NewFederatedUpdater
(
secretcontroller
.
secretFederatedInformer
,
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
secret
:=
obj
.
(
*
api_v1
.
Secret
)
_
,
err
:=
client
.
Core
()
.
Secrets
(
secret
.
Namespace
)
.
Create
(
secret
)
return
err
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
secret
:=
obj
.
(
*
api_v1
.
Secret
)
_
,
err
:=
client
.
Core
()
.
Secrets
(
secret
.
Namespace
)
.
Update
(
secret
)
return
err
},
func
(
client
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
client
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
secret
:=
obj
.
(
*
api_v1
.
Secret
)
err
:=
client
.
Core
()
.
Secrets
(
secret
.
Namespace
)
.
Delete
(
secret
.
Name
,
&
api
.
DeleteOptions
{})
return
err
...
...
federation/pkg/federation-controller/secret/secret_controller_test.go
View file @
a780db9a
...
...
@@ -23,11 +23,11 @@ import (
"time"
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
fake_fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
/fake"
fake_fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
/fake"
.
"k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
fake_kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
/fake"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
fake_kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
/fake"
"k8s.io/kubernetes/pkg/runtime"
"github.com/stretchr/testify/assert"
...
...
@@ -37,26 +37,26 @@ func TestSecretController(t *testing.T) {
cluster1
:=
NewCluster
(
"cluster1"
,
api_v1
.
ConditionTrue
)
cluster2
:=
NewCluster
(
"cluster2"
,
api_v1
.
ConditionTrue
)
fakeClient
:=
&
fake_fed
eration_release_1_4
.
Clientset
{}
fakeClient
:=
&
fake_fed
clientset
.
Clientset
{}
RegisterFakeList
(
"clusters"
,
&
fakeClient
.
Fake
,
&
federation_api
.
ClusterList
{
Items
:
[]
federation_api
.
Cluster
{
*
cluster1
}})
RegisterFakeList
(
"secrets"
,
&
fakeClient
.
Fake
,
&
api_v1
.
SecretList
{
Items
:
[]
api_v1
.
Secret
{}})
secretWatch
:=
RegisterFakeWatch
(
"secrets"
,
&
fakeClient
.
Fake
)
clusterWatch
:=
RegisterFakeWatch
(
"clusters"
,
&
fakeClient
.
Fake
)
cluster1Client
:=
&
fake_kube
_release_1_4
.
Clientset
{}
cluster1Client
:=
&
fake_kube
clientset
.
Clientset
{}
cluster1Watch
:=
RegisterFakeWatch
(
"secrets"
,
&
cluster1Client
.
Fake
)
RegisterFakeList
(
"secrets"
,
&
cluster1Client
.
Fake
,
&
api_v1
.
SecretList
{
Items
:
[]
api_v1
.
Secret
{}})
cluster1CreateChan
:=
RegisterFakeCopyOnCreate
(
"secrets"
,
&
cluster1Client
.
Fake
,
cluster1Watch
)
cluster1UpdateChan
:=
RegisterFakeCopyOnUpdate
(
"secrets"
,
&
cluster1Client
.
Fake
,
cluster1Watch
)
cluster2Client
:=
&
fake_kube
_release_1_4
.
Clientset
{}
cluster2Client
:=
&
fake_kube
clientset
.
Clientset
{}
cluster2Watch
:=
RegisterFakeWatch
(
"secrets"
,
&
cluster2Client
.
Fake
)
RegisterFakeList
(
"secrets"
,
&
cluster2Client
.
Fake
,
&
api_v1
.
SecretList
{
Items
:
[]
api_v1
.
Secret
{}})
cluster2CreateChan
:=
RegisterFakeCopyOnCreate
(
"secrets"
,
&
cluster2Client
.
Fake
,
cluster2Watch
)
secretController
:=
NewSecretController
(
fakeClient
)
informer
:=
ToFederatedInformerForTestOnly
(
secretController
.
secretFederatedInformer
)
informer
.
SetClientFactory
(
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
_release_1_4
.
Interface
,
error
)
{
informer
.
SetClientFactory
(
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
clientset
.
Interface
,
error
)
{
switch
cluster
.
Name
{
case
cluster1
.
Name
:
return
cluster1Client
,
nil
...
...
federation/pkg/federation-controller/service/cluster_helper.go
View file @
a780db9a
...
...
@@ -23,7 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api"
v1
"k8s.io/kubernetes/pkg/api/v1"
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"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util/wait"
...
...
@@ -37,7 +37,7 @@ import (
)
type
clusterCache
struct
{
clientset
*
release_1_4
.
Clientset
clientset
*
kubeclientset
.
Clientset
cluster
*
v1beta1
.
Cluster
// A store of services, populated by the serviceController
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
)
if
clusterConfig
!=
nil
{
clientset
:=
release_1_4
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
clusterConfig
,
UserAgentName
))
clientset
:=
kubeclientset
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
clusterConfig
,
UserAgentName
))
return
clientset
,
nil
}
return
nil
,
err
...
...
federation/pkg/federation-controller/service/endpoint_helper.go
View file @
a780db9a
...
...
@@ -20,7 +20,7 @@ import (
"fmt"
"time"
fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
"
v1
"k8s.io/kubernetes/pkg/api/v1"
cache
"k8s.io/kubernetes/pkg/client/cache"
"k8s.io/kubernetes/pkg/controller"
...
...
@@ -75,7 +75,7 @@ ForLoop:
// Whenever there is change on endpoint, the federation service should be updated
// key is the namespaced name of endpoint
func
(
cc
*
clusterClientCache
)
syncEndpoint
(
key
,
clusterName
string
,
clusterCache
*
clusterCache
,
serviceCache
*
serviceCache
,
fedClient
fed
eration_release_1_4
.
Interface
,
serviceController
*
ServiceController
)
error
{
func
(
cc
*
clusterClientCache
)
syncEndpoint
(
key
,
clusterName
string
,
clusterCache
*
clusterCache
,
serviceCache
*
serviceCache
,
fedClient
fed
clientset
.
Interface
,
serviceController
*
ServiceController
)
error
{
cachedService
,
ok
:=
serviceCache
.
get
(
key
)
if
!
ok
{
// here we filtered all non-federation services
...
...
federation/pkg/federation-controller/service/service_helper.go
View file @
a780db9a
...
...
@@ -20,7 +20,7 @@ import (
"fmt"
"time"
fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
"
"k8s.io/kubernetes/pkg/api/errors"
v1
"k8s.io/kubernetes/pkg/api/v1"
cache
"k8s.io/kubernetes/pkg/client/cache"
...
...
@@ -77,7 +77,7 @@ ForLoop:
}
// Whenever there is change on service, the federation service should be updated
func
(
cc
*
clusterClientCache
)
syncService
(
key
,
clusterName
string
,
clusterCache
*
clusterCache
,
serviceCache
*
serviceCache
,
fedClient
fed
eration_release_1_4
.
Interface
,
sc
*
ServiceController
)
error
{
func
(
cc
*
clusterClientCache
)
syncService
(
key
,
clusterName
string
,
clusterCache
*
clusterCache
,
serviceCache
*
serviceCache
,
fedClient
fed
clientset
.
Interface
,
sc
*
ServiceController
)
error
{
// obj holds the latest service info from apiserver, return if there is no federation cache for the service
cachedService
,
ok
:=
serviceCache
.
get
(
key
)
if
!
ok
{
...
...
@@ -257,7 +257,7 @@ func (cc *clusterClientCache) processServiceUpdate(cachedService *cachedService,
return
needUpdate
}
func
(
cc
*
clusterClientCache
)
persistFedServiceUpdate
(
cachedService
*
cachedService
,
fedClient
fed
eration_release_1_4
.
Interface
)
error
{
func
(
cc
*
clusterClientCache
)
persistFedServiceUpdate
(
cachedService
*
cachedService
,
fedClient
fed
clientset
.
Interface
)
error
{
service
:=
cachedService
.
lastState
glog
.
V
(
5
)
.
Infof
(
"Persist federation service status %s/%s"
,
service
.
Namespace
,
service
.
Name
)
var
err
error
...
...
federation/pkg/federation-controller/service/servicecontroller.go
View file @
a780db9a
...
...
@@ -26,13 +26,13 @@ import (
"github.com/golang/glog"
v1beta1
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
federationcache
"k8s.io/kubernetes/federation/client/cache"
fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
"
"k8s.io/kubernetes/federation/pkg/dnsprovider"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
v1
"k8s.io/kubernetes/pkg/api/v1"
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/controller"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -100,7 +100,7 @@ type serviceCache struct {
type
ServiceController
struct
{
dns
dnsprovider
.
Interface
federationClient
fed
eration_release_1_4
.
Interface
federationClient
fed
clientset
.
Interface
federationName
string
zoneName
string
// 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
// (like Kubernetes Services and DNS server records for service discovery) in sync with the registry.
func
New
(
federationClient
fed
eration_release_1_4
.
Interface
,
dns
dnsprovider
.
Interface
,
federationName
,
zoneName
string
)
*
ServiceController
{
func
New
(
federationClient
fed
clientset
.
Interface
,
dns
dnsprovider
.
Interface
,
federationName
,
zoneName
string
)
*
ServiceController
{
broadcaster
:=
record
.
NewBroadcaster
()
// federationClient event is not supported yet
// 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,
// update DNS records and update the service info with DNS entries to federation apiserver.
// 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
)
// Create or Update k8s Service
err
:=
s
.
ensureClusterService
(
cachedService
,
clusterName
,
service
,
client
)
...
...
@@ -382,7 +382,7 @@ func (s *ServiceController) deleteFederationService(cachedService *cachedService
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
glog
.
V
(
4
)
.
Infof
(
"Deleting service %s/%s from cluster %s"
,
service
.
Namespace
,
service
.
Name
,
clusterName
)
var
err
error
...
...
@@ -399,7 +399,7 @@ func (s *ServiceController) deleteClusterService(clusterName string, cachedServi
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
needUpdate
bool
for
i
:=
0
;
i
<
clientRetryCount
;
i
++
{
...
...
federation/pkg/federation-controller/util/cluster_util.go
View file @
a780db9a
...
...
@@ -24,7 +24,7 @@ import (
"github.com/golang/glog"
federation_v1beta1
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/client/restclient"
client
"k8s.io/kubernetes/pkg/client/unversioned"
...
...
@@ -133,10 +133,10 @@ var KubeconfigGetterForSecret = func(secretName string) clientcmd.KubeconfigGett
}
// Retruns Clientset for the given cluster.
func
GetClientsetForCluster
(
cluster
*
federation_v1beta1
.
Cluster
)
(
*
fed
eration_release_1_4
.
Clientset
,
error
)
{
func
GetClientsetForCluster
(
cluster
*
federation_v1beta1
.
Cluster
)
(
*
fed
clientset
.
Clientset
,
error
)
{
clusterConfig
,
err
:=
BuildClusterConfig
(
cluster
)
if
err
!=
nil
&&
clusterConfig
!=
nil
{
clientset
:=
fed
eration_release_1_4
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
clusterConfig
,
userAgentName
))
clientset
:=
fed
clientset
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
clusterConfig
,
userAgentName
))
return
clientset
,
nil
}
return
nil
,
err
...
...
federation/pkg/federation-controller/util/eventsink/eventsink.go
View file @
a780db9a
...
...
@@ -17,7 +17,7 @@ limitations under the License.
package
eventsink
import
(
fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
"
api
"k8s.io/kubernetes/pkg/api"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/record"
...
...
@@ -25,13 +25,13 @@ import (
// Implemnts k8s.io/kubernetes/pkg/client/record.EventSink.
type
FederatedEventSink
struct
{
clientset
fed
eration_release_1_4
.
Interface
clientset
fed
clientset
.
Interface
}
// To check if all required functions are implemented.
var
_
record
.
EventSink
=
&
FederatedEventSink
{}
func
NewFederatedEventSink
(
clientset
fed
eration_release_1_4
.
Interface
)
*
FederatedEventSink
{
func
NewFederatedEventSink
(
clientset
fed
clientset
.
Interface
)
*
FederatedEventSink
{
return
&
FederatedEventSink
{
clientset
:
clientset
,
}
...
...
federation/pkg/federation-controller/util/eventsink/eventsink_test.go
View file @
a780db9a
...
...
@@ -19,7 +19,7 @@ package eventsink
import
(
"testing"
fake_fed
eration_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
/fake"
fake_fed
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
/fake"
.
"k8s.io/kubernetes/federation/pkg/federation-controller/util/test"
api
"k8s.io/kubernetes/pkg/api"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
...
...
@@ -30,7 +30,7 @@ import (
)
func
TestEventSink
(
t
*
testing
.
T
)
{
fakeFederationClient
:=
&
fake_fed
eration_release_1_4
.
Clientset
{}
fakeFederationClient
:=
&
fake_fed
clientset
.
Clientset
{}
createdChan
:=
make
(
chan
runtime
.
Object
,
100
)
fakeFederationClient
.
AddReactor
(
"create"
,
"events"
,
func
(
action
core
.
Action
)
(
bool
,
runtime
.
Object
,
error
)
{
createAction
:=
action
.
(
core
.
CreateAction
)
...
...
federation/pkg/federation-controller/util/federated_informer.go
View file @
a780db9a
...
...
@@ -23,11 +23,11 @@ import (
"time"
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
federation
_release_1_4
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4
"
federation
clientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
"
api
"k8s.io/kubernetes/pkg/api"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
"k8s.io/kubernetes/pkg/client/restclient"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/watch"
...
...
@@ -72,7 +72,7 @@ type FederatedReadOnlyStore interface {
// An interface to access federation members and clients.
type
FederationView
interface
{
// GetClientsetForCluster returns a clientset for the cluster, if present.
GetClientsetForCluster
(
clusterName
string
)
(
kube
_release_1_4
.
Interface
,
error
)
GetClientsetForCluster
(
clusterName
string
)
(
kube
clientset
.
Interface
,
error
)
// GetReadyClusers returns all clusters for which the sub-informers are run.
GetReadyClusters
()
([]
*
federation_api
.
Cluster
,
error
)
...
...
@@ -106,12 +106,12 @@ type FederatedInformer interface {
type
FederatedInformerForTestOnly
interface
{
FederatedInformer
SetClientFactory
(
func
(
*
federation_api
.
Cluster
)
(
kube
_release_1_4
.
Interface
,
error
))
SetClientFactory
(
func
(
*
federation_api
.
Cluster
)
(
kube
clientset
.
Interface
,
error
))
}
// A function that should be used to create an informer on the target object. Store should use
// 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
,
kube
clientset
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
// 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)
...
...
@@ -127,16 +127,16 @@ type ClusterLifecycleHandlerFuncs struct {
// Builds a FederatedInformer for the given federation client and factory.
func
NewFederatedInformer
(
federationClient
federation
_release_1_4
.
Interface
,
federationClient
federation
clientset
.
Interface
,
targetInformerFactory
TargetInformerFactory
,
clusterLifecycle
*
ClusterLifecycleHandlerFuncs
)
FederatedInformer
{
federatedInformer
:=
&
federatedInformerImpl
{
targetInformerFactory
:
targetInformerFactory
,
clientFactory
:
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
_release_1_4
.
Interface
,
error
)
{
clientFactory
:
func
(
cluster
*
federation_api
.
Cluster
)
(
kube
clientset
.
Interface
,
error
)
{
clusterConfig
,
err
:=
BuildClusterConfig
(
cluster
)
if
err
==
nil
&&
clusterConfig
!=
nil
{
clientset
:=
kube
_release_1_4
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
clusterConfig
,
userAgentName
))
clientset
:=
kube
clientset
.
NewForConfigOrDie
(
restclient
.
AddUserAgent
(
clusterConfig
,
userAgentName
))
return
clientset
,
nil
}
return
nil
,
err
...
...
@@ -255,7 +255,7 @@ type federatedInformerImpl struct {
targetInformers
map
[
string
]
informer
// A function to build clients.
clientFactory
func
(
*
federation_api
.
Cluster
)
(
kube
_release_1_4
.
Interface
,
error
)
clientFactory
func
(
*
federation_api
.
Cluster
)
(
kube
clientset
.
Interface
,
error
)
}
type
federatedStoreImpl
struct
{
...
...
@@ -283,7 +283,7 @@ func (f *federatedInformerImpl) Start() {
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
)
(
kube
clientset
.
Interface
,
error
))
{
f
.
Lock
()
defer
f
.
Unlock
()
...
...
@@ -291,13 +291,13 @@ func (f *federatedInformerImpl) SetClientFactory(clientFactory func(*federation_
}
// 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
)
(
kube
clientset
.
Interface
,
error
)
{
f
.
Lock
()
defer
f
.
Unlock
()
return
f
.
getClientsetForClusterUnlocked
(
clusterName
)
}
func
(
f
*
federatedInformerImpl
)
getClientsetForClusterUnlocked
(
clusterName
string
)
(
kube
_release_1_4
.
Interface
,
error
)
{
func
(
f
*
federatedInformerImpl
)
getClientsetForClusterUnlocked
(
clusterName
string
)
(
kube
clientset
.
Interface
,
error
)
{
// No locking needed. Will happen in f.GetCluster.
glog
.
V
(
4
)
.
Infof
(
"Getting clientset for cluster %q"
,
clusterName
)
if
cluster
,
found
,
err
:=
f
.
getReadyClusterUnlocked
(
clusterName
);
found
&&
err
==
nil
{
...
...
federation/pkg/federation-controller/util/federated_informer_test.go
View file @
a780db9a
...
...
@@ -21,12 +21,12 @@ import (
"time"
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
federationclientset
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5
/fake"
api
"k8s.io/kubernetes/pkg/api"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/cache"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
fake_kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
/fake"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
fake_kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
/fake"
"k8s.io/kubernetes/pkg/client/testing/core"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/watch"
...
...
@@ -37,7 +37,7 @@ import (
// Basic test for Federated Informer. Checks whether the subinformer are added and deleted
// when the corresponding cluster entries appear and disappear from etcd.
func
TestFederatedInformer
(
t
*
testing
.
T
)
{
fakeFederationClient
:=
&
fake
_federation_release_1_4
.
Clientset
{}
fakeFederationClient
:=
&
fake
federationclientset
.
Clientset
{}
// Add a single cluster to federation and remove it when needed.
cluster
:=
federation_api
.
Cluster
{
...
...
@@ -63,7 +63,7 @@ func TestFederatedInformer(t *testing.T) {
return
true
,
fakeWatch
,
nil
})
fakeKubeClient
:=
&
fake_kube
_release_1_4
.
Clientset
{}
fakeKubeClient
:=
&
fake_kube
clientset
.
Clientset
{}
// There is a single service ns1/s1 in cluster mycluster.
service
:=
api_v1
.
Service
{
ObjectMeta
:
api_v1
.
ObjectMeta
{
...
...
@@ -78,7 +78,7 @@ func TestFederatedInformer(t *testing.T) {
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
kube
clientset
.
Interface
)
(
cache
.
Store
,
cache
.
ControllerInterface
)
{
return
cache
.
NewInformer
(
&
cache
.
ListWatch
{
ListFunc
:
func
(
options
api
.
ListOptions
)
(
runtime
.
Object
,
error
)
{
...
...
@@ -107,7 +107,7 @@ func TestFederatedInformer(t *testing.T) {
}
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
)
(
kube
clientset
.
Interface
,
error
)
{
return
fakeKubeClient
,
nil
}
assert
.
NotNil
(
t
,
informer
)
...
...
federation/pkg/federation-controller/util/federated_updater.go
View file @
a780db9a
...
...
@@ -20,7 +20,7 @@ import (
"fmt"
"time"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
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.
type
FederatedOperationHandler
func
(
kube
_release_1_4
.
Interface
,
pkg_runtime
.
Object
)
error
type
FederatedOperationHandler
func
(
kube
clientset
.
Interface
,
pkg_runtime
.
Object
)
error
type
federatedUpdaterImpl
struct
{
federation
FederationView
...
...
federation/pkg/federation-controller/util/federated_updater_test.go
View file @
a780db9a
...
...
@@ -23,8 +23,8 @@ import (
federation_api
"k8s.io/kubernetes/federation/apis/federation/v1beta1"
api_v1
"k8s.io/kubernetes/pkg/api/v1"
kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
"
fake_kube
_release_1_4
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_4
/fake"
kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
"
fake_kube
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5
/fake"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
"github.com/stretchr/testify/assert"
...
...
@@ -34,8 +34,8 @@ import (
type
fakeFederationView
struct
{
}
func
(
f
fakeFederationView
)
GetClientsetForCluster
(
clusterName
string
)
(
kube
_release_1_4
.
Interface
,
error
)
{
return
&
fake_kube
_release_1_4
.
Clientset
{},
nil
func
(
f
fakeFederationView
)
GetClientsetForCluster
(
clusterName
string
)
(
kube
clientset
.
Interface
,
error
)
{
return
&
fake_kube
clientset
.
Clientset
{},
nil
}
func
(
f
*
fakeFederationView
)
GetReadyClusters
()
([]
*
federation_api
.
Cluster
,
error
)
{
...
...
@@ -55,12 +55,12 @@ func TestFederatedUpdaterOK(t *testing.T) {
updateChan
:=
make
(
chan
string
,
5
)
updater
:=
NewFederatedUpdater
(
&
fakeFederationView
{},
func
(
_
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
_
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
service
:=
obj
.
(
*
api_v1
.
Service
)
addChan
<-
service
.
Name
return
nil
},
func
(
_
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
_
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
service
:=
obj
.
(
*
api_v1
.
Service
)
updateChan
<-
service
.
Name
return
nil
...
...
@@ -86,7 +86,7 @@ func TestFederatedUpdaterOK(t *testing.T) {
func
TestFederatedUpdaterError
(
t
*
testing
.
T
)
{
updater
:=
NewFederatedUpdater
(
&
fakeFederationView
{},
func
(
_
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
_
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
return
fmt
.
Errorf
(
"boom"
)
},
noop
,
noop
)
...
...
@@ -106,7 +106,7 @@ func TestFederatedUpdaterError(t *testing.T) {
func
TestFederatedUpdaterTimeout
(
t
*
testing
.
T
)
{
start
:=
time
.
Now
()
updater
:=
NewFederatedUpdater
(
&
fakeFederationView
{},
func
(
_
kube
_release_1_4
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
func
(
_
kube
clientset
.
Interface
,
obj
pkg_runtime
.
Object
)
error
{
time
.
Sleep
(
time
.
Minute
)
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
(
_
kube
clientset
.
Interface
,
_
pkg_runtime
.
Object
)
error
{
return
nil
}
pkg/client/clientset_generated/release_1_5/typed/core/v1/fake/fake_pod_expansion.go
View file @
a780db9a
...
...
@@ -18,6 +18,7 @@ package fake
import
(
"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/testing/core"
)
...
...
@@ -44,3 +45,14 @@ func (c *FakePods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Requ
_
,
_
=
c
.
Fake
.
Invokes
(
action
,
&
v1
.
Pod
{})
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
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment