From f6aa8bbb8fb373fa6ca959fe3d4190041c868c22 Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Mon, 6 Feb 2017 05:09:27 +0800 Subject: [PATCH] Updated NodeRef to clientv1.ObjectReference. --- cmd/kube-proxy/app/BUILD | 2 +- cmd/kube-proxy/app/options/BUILD | 2 +- cmd/kube-proxy/app/options/options.go | 4 ++-- cmd/kube-proxy/app/server.go | 16 ++++++++++++---- cmd/kubemark/BUILD | 1 + cmd/kubemark/hollow-node.go | 17 ++++++++++++++++- pkg/kubemark/BUILD | 3 ++- pkg/kubemark/hollow_proxy.go | 8 +++++--- pkg/proxy/iptables/BUILD | 2 +- pkg/proxy/iptables/proxier.go | 4 ++-- 10 files changed, 43 insertions(+), 16 deletions(-) diff --git a/cmd/kube-proxy/app/BUILD b/cmd/kube-proxy/app/BUILD index 2725f9851bf..de6e8eb49c8 100644 --- a/cmd/kube-proxy/app/BUILD +++ b/cmd/kube-proxy/app/BUILD @@ -18,7 +18,6 @@ go_library( deps = [ "//cmd/kube-proxy/app/options:go_default_library", "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/config:go_default_library", @@ -42,6 +41,7 @@ go_library( "//vendor:k8s.io/apimachinery/pkg/types", "//vendor:k8s.io/apimachinery/pkg/util/net", "//vendor:k8s.io/apimachinery/pkg/util/wait", + "//vendor:k8s.io/client-go/kubernetes", "//vendor:k8s.io/client-go/kubernetes/typed/core/v1", "//vendor:k8s.io/client-go/pkg/api/v1", "//vendor:k8s.io/client-go/tools/clientcmd", diff --git a/cmd/kube-proxy/app/options/BUILD b/cmd/kube-proxy/app/options/BUILD index 92f7d5b3060..8dd3df2507d 100644 --- a/cmd/kube-proxy/app/options/BUILD +++ b/cmd/kube-proxy/app/options/BUILD @@ -13,7 +13,6 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/componentconfig/v1alpha1:go_default_library", "//pkg/features:go_default_library", @@ -21,6 +20,7 @@ go_library( "//pkg/util:go_default_library", "//vendor:github.com/spf13/pflag", "//vendor:k8s.io/apiserver/pkg/util/feature", + "//vendor:k8s.io/client-go/pkg/api/v1", ], ) diff --git a/cmd/kube-proxy/app/options/options.go b/cmd/kube-proxy/app/options/options.go index 4cf31116bb2..9ce8fff94ed 100644 --- a/cmd/kube-proxy/app/options/options.go +++ b/cmd/kube-proxy/app/options/options.go @@ -22,8 +22,8 @@ import ( "time" utilfeature "k8s.io/apiserver/pkg/util/feature" + clientv1 "k8s.io/client-go/pkg/api/v1" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" _ "k8s.io/kubernetes/pkg/features" @@ -45,7 +45,7 @@ type ProxyServerConfig struct { KubeAPIBurst int32 ConfigSyncPeriod time.Duration CleanupAndExit bool - NodeRef *v1.ObjectReference + NodeRef *clientv1.ObjectReference Master string Kubeconfig string } diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index c1e82c957c8..da6727d8e5b 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -32,6 +32,7 @@ import ( "k8s.io/apimachinery/pkg/types" utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/wait" + clientgoclientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" clientv1 "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/tools/clientcmd" @@ -39,7 +40,6 @@ import ( "k8s.io/client-go/tools/record" "k8s.io/kubernetes/cmd/kube-proxy/app/options" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/v1" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/proxy" proxyconfig "k8s.io/kubernetes/pkg/proxy/config" @@ -63,6 +63,7 @@ import ( type ProxyServer struct { Client clientset.Interface + EventClient v1core.EventsGetter Config *options.ProxyServerConfig IptInterface utiliptables.Interface Proxier proxy.ProxyProvider @@ -87,6 +88,7 @@ func checkKnownProxyMode(proxyMode string) bool { func NewProxyServer( client clientset.Interface, + eventClient v1core.EventsGetter, config *options.ProxyServerConfig, iptInterface utiliptables.Interface, proxier proxy.ProxyProvider, @@ -97,6 +99,7 @@ func NewProxyServer( ) (*ProxyServer, error) { return &ProxyServer{ Client: client, + EventClient: eventClient, Config: config, IptInterface: iptInterface, Proxier: proxier, @@ -203,6 +206,11 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err glog.Fatalf("Invalid API configuration: %v", err) } + eventClient, err := clientgoclientset.NewForConfig(kubeconfig) + if err != nil { + return nil, err + } + // Create event recorder hostname := nodeutil.GetHostname(config.HostnameOverride) eventBroadcaster := record.NewBroadcaster() @@ -303,7 +311,7 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err endpointsConfig.Channel("api"), ) - config.NodeRef = &v1.ObjectReference{ + config.NodeRef = &clientv1.ObjectReference{ Kind: "Node", Name: hostname, UID: types.UID(hostname), @@ -312,7 +320,7 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err conntracker := realConntracker{} - return NewProxyServer(client, config, iptInterface, proxier, eventBroadcaster, recorder, conntracker, proxyMode) + return NewProxyServer(client, eventClient, config, iptInterface, proxier, eventBroadcaster, recorder, conntracker, proxyMode) } // Run runs the specified ProxyServer. This should never exit (unless CleanupAndExit is set). @@ -327,7 +335,7 @@ func (s *ProxyServer) Run() error { return nil } - s.Broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(s.Client.Core().RESTClient()).Events("")}) + s.Broadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: s.EventClient.Events("")}) // Start up a webserver if requested if s.Config.HealthzPort > 0 { diff --git a/cmd/kubemark/BUILD b/cmd/kubemark/BUILD index f240eda3256..5ff40589133 100644 --- a/cmd/kubemark/BUILD +++ b/cmd/kubemark/BUILD @@ -34,6 +34,7 @@ go_library( "//vendor:github.com/spf13/pflag", "//vendor:k8s.io/apimachinery/pkg/util/sets", "//vendor:k8s.io/apiserver/pkg/util/flag", + "//vendor:k8s.io/client-go/kubernetes", "//vendor:k8s.io/client-go/pkg/api/v1", "//vendor:k8s.io/client-go/rest", "//vendor:k8s.io/client-go/tools/clientcmd", diff --git a/cmd/kubemark/hollow-node.go b/cmd/kubemark/hollow-node.go index 6e0dd89c4ea..dce53e35912 100644 --- a/cmd/kubemark/hollow-node.go +++ b/cmd/kubemark/hollow-node.go @@ -21,6 +21,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/util/flag" + clientgoclientset "k8s.io/client-go/kubernetes" clientv1 "k8s.io/client-go/pkg/api/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -140,7 +141,21 @@ func main() { endpointsConfig := proxyconfig.NewEndpointsConfig() endpointsConfig.RegisterHandler(&kubemark.FakeProxyHandler{}) - hollowProxy := kubemark.NewHollowProxyOrDie(config.NodeName, internalClientset, endpointsConfig, serviceConfig, iptInterface, eventBroadcaster, recorder) + eventClient, err := clientgoclientset.NewForConfig(clientConfig) + if err != nil { + glog.Fatalf("Failed to create API Server client: %v", err) + } + + hollowProxy := kubemark.NewHollowProxyOrDie( + config.NodeName, + internalClientset, + eventClient, + endpointsConfig, + serviceConfig, + iptInterface, + eventBroadcaster, + recorder, + ) hollowProxy.Run() } } diff --git a/pkg/kubemark/BUILD b/pkg/kubemark/BUILD index 1058f05aa75..accdd89e766 100644 --- a/pkg/kubemark/BUILD +++ b/pkg/kubemark/BUILD @@ -19,7 +19,6 @@ go_library( "//cmd/kube-proxy/app/options:go_default_library", "//cmd/kubelet/app:go_default_library", "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/componentconfig/v1alpha1:go_default_library", "//pkg/client/clientset_generated/clientset:go_default_library", @@ -42,6 +41,8 @@ go_library( "//vendor:github.com/golang/glog", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/types", + "//vendor:k8s.io/client-go/kubernetes/typed/core/v1", + "//vendor:k8s.io/client-go/pkg/api/v1", "//vendor:k8s.io/client-go/tools/record", ], ) diff --git a/pkg/kubemark/hollow_proxy.go b/pkg/kubemark/hollow_proxy.go index 9547101207c..441fbc27c94 100644 --- a/pkg/kubemark/hollow_proxy.go +++ b/pkg/kubemark/hollow_proxy.go @@ -20,11 +20,12 @@ import ( "time" "k8s.io/apimachinery/pkg/types" + v1core "k8s.io/client-go/kubernetes/typed/core/v1" + clientv1 "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/tools/record" proxyapp "k8s.io/kubernetes/cmd/kube-proxy/app" "k8s.io/kubernetes/cmd/kube-proxy/app/options" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/v1" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" proxyconfig "k8s.io/kubernetes/pkg/proxy/config" "k8s.io/kubernetes/pkg/util" @@ -53,6 +54,7 @@ func (*FakeProxier) SyncLoop() { func NewHollowProxyOrDie( nodeName string, client clientset.Interface, + eventClient v1core.EventsGetter, endpointsConfig *proxyconfig.EndpointsConfig, serviceConfig *proxyconfig.ServiceConfig, iptInterface utiliptables.Interface, @@ -63,7 +65,7 @@ func NewHollowProxyOrDie( config := options.NewProxyConfig() config.OOMScoreAdj = util.Int32Ptr(0) config.ResourceContainer = "" - config.NodeRef = &v1.ObjectReference{ + config.NodeRef = &clientv1.ObjectReference{ Kind: "Node", Name: nodeName, UID: types.UID(nodeName), @@ -76,7 +78,7 @@ func NewHollowProxyOrDie( endpointsConfig.Channel("api"), ) - hollowProxy, err := proxyapp.NewProxyServer(client, config, iptInterface, &FakeProxier{}, broadcaster, recorder, nil, "fake") + hollowProxy, err := proxyapp.NewProxyServer(client, eventClient, config, iptInterface, &FakeProxier{}, broadcaster, recorder, nil, "fake") if err != nil { glog.Fatalf("Error while creating ProxyServer: %v\n", err) } diff --git a/pkg/proxy/iptables/BUILD b/pkg/proxy/iptables/BUILD index f9366d0198d..0c5cc6891d1 100644 --- a/pkg/proxy/iptables/BUILD +++ b/pkg/proxy/iptables/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/api/service:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/features:go_default_library", "//pkg/proxy:go_default_library", "//pkg/proxy/healthcheck:go_default_library", @@ -29,6 +28,7 @@ go_library( "//vendor:k8s.io/apimachinery/pkg/types", "//vendor:k8s.io/apimachinery/pkg/util/sets", "//vendor:k8s.io/apiserver/pkg/util/feature", + "//vendor:k8s.io/client-go/pkg/api/v1", "//vendor:k8s.io/client-go/tools/record", "//vendor:k8s.io/client-go/util/flowcontrol", ], diff --git a/pkg/proxy/iptables/proxier.go b/pkg/proxy/iptables/proxier.go index 6f63fb80d08..36a32c320c7 100644 --- a/pkg/proxy/iptables/proxier.go +++ b/pkg/proxy/iptables/proxier.go @@ -38,11 +38,11 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" utilfeature "k8s.io/apiserver/pkg/util/feature" + clientv1 "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/tools/record" "k8s.io/client-go/util/flowcontrol" "k8s.io/kubernetes/pkg/api" apiservice "k8s.io/kubernetes/pkg/api/service" - "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" @@ -1010,7 +1010,7 @@ func (proxier *Proxier) syncProxyRules() { msg := fmt.Sprintf("can't open %s, skipping this externalIP: %v", lp.String(), err) proxier.recorder.Eventf( - &v1.ObjectReference{ + &clientv1.ObjectReference{ Kind: "Node", Name: proxier.hostname, UID: types.UID(proxier.hostname),