Merge pull request #40980 from k82cn/fix_39136
Automatic merge from submit-queue (batch tested with PRs 40980, 40985) Updated NodeRef to clientv1.ObjectReference. fixes #40979
This commit is contained in:
		@@ -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",
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
    ],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
 
 | 
			
		||||
@@ -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()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
    ],
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
    ],
 | 
			
		||||
 
 | 
			
		||||
@@ -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),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user