mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Merge pull request #85279 from RainbowMango/pr_add_metrics_flag_to_proxy
Allow show hidden metrics in kube-proxy
This commit is contained in:
		@@ -82,6 +82,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:darwin": [
 | 
					        "@io_bazel_rules_go//go/platform:darwin": [
 | 
				
			||||||
@@ -89,6 +90,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:dragonfly": [
 | 
					        "@io_bazel_rules_go//go/platform:dragonfly": [
 | 
				
			||||||
@@ -96,6 +98,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:freebsd": [
 | 
					        "@io_bazel_rules_go//go/platform:freebsd": [
 | 
				
			||||||
@@ -103,6 +106,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:ios": [
 | 
					        "@io_bazel_rules_go//go/platform:ios": [
 | 
				
			||||||
@@ -110,6 +114,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:linux": [
 | 
					        "@io_bazel_rules_go//go/platform:linux": [
 | 
				
			||||||
@@ -117,6 +122,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:nacl": [
 | 
					        "@io_bazel_rules_go//go/platform:nacl": [
 | 
				
			||||||
@@ -124,6 +130,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:netbsd": [
 | 
					        "@io_bazel_rules_go//go/platform:netbsd": [
 | 
				
			||||||
@@ -131,6 +138,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:openbsd": [
 | 
					        "@io_bazel_rules_go//go/platform:openbsd": [
 | 
				
			||||||
@@ -138,6 +146,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:plan9": [
 | 
					        "@io_bazel_rules_go//go/platform:plan9": [
 | 
				
			||||||
@@ -145,6 +154,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:solaris": [
 | 
					        "@io_bazel_rules_go//go/platform:solaris": [
 | 
				
			||||||
@@ -152,6 +162,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/util/node:go_default_library",
 | 
					            "//pkg/util/node:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
            "//vendor/k8s.io/utils/net:go_default_library",
 | 
					            "//vendor/k8s.io/utils/net:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "@io_bazel_rules_go//go/platform:windows": [
 | 
					        "@io_bazel_rules_go//go/platform:windows": [
 | 
				
			||||||
@@ -162,6 +173,7 @@ go_library(
 | 
				
			|||||||
            "//pkg/windows/service:go_default_library",
 | 
					            "//pkg/windows/service:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
 | 
				
			||||||
            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
					            "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
 | 
				
			||||||
 | 
					            "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "//conditions:default": [],
 | 
					        "//conditions:default": [],
 | 
				
			||||||
    }),
 | 
					    }),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -150,6 +150,12 @@ func (o *Options) AddFlags(fs *pflag.FlagSet) {
 | 
				
			|||||||
	fs.StringVar(&o.master, "master", o.master, "The address of the Kubernetes API server (overrides any value in kubeconfig)")
 | 
						fs.StringVar(&o.master, "master", o.master, "The address of the Kubernetes API server (overrides any value in kubeconfig)")
 | 
				
			||||||
	fs.StringVar(&o.hostnameOverride, "hostname-override", o.hostnameOverride, "If non-empty, will use this string as identification instead of the actual hostname.")
 | 
						fs.StringVar(&o.hostnameOverride, "hostname-override", o.hostnameOverride, "If non-empty, will use this string as identification instead of the actual hostname.")
 | 
				
			||||||
	fs.StringVar(&o.config.IPVS.Scheduler, "ipvs-scheduler", o.config.IPVS.Scheduler, "The ipvs scheduler type when proxy mode is ipvs")
 | 
						fs.StringVar(&o.config.IPVS.Scheduler, "ipvs-scheduler", o.config.IPVS.Scheduler, "The ipvs scheduler type when proxy mode is ipvs")
 | 
				
			||||||
 | 
						fs.StringVar(&o.config.ShowHiddenMetricsForVersion, "show-hidden-metrics-for-version", o.config.ShowHiddenMetricsForVersion,
 | 
				
			||||||
 | 
							"The previous version for which you want to show hidden metrics. "+
 | 
				
			||||||
 | 
								"Only the previous minor version is meaningful, other values will not be allowed. "+
 | 
				
			||||||
 | 
								"The format is <major>.<minor>, e.g.: '1.16'. "+
 | 
				
			||||||
 | 
								"The purpose of this format is make sure you have the opportunity to notice if the next release hides additional metrics, "+
 | 
				
			||||||
 | 
								"rather than being surprised when they are permanently removed in the release after that.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fs.StringSliceVar(&o.config.IPVS.ExcludeCIDRs, "ipvs-exclude-cidrs", o.config.IPVS.ExcludeCIDRs, "A comma-separated list of CIDR's which the ipvs proxier should not touch when cleaning up IPVS rules.")
 | 
						fs.StringSliceVar(&o.config.IPVS.ExcludeCIDRs, "ipvs-exclude-cidrs", o.config.IPVS.ExcludeCIDRs, "A comma-separated list of CIDR's which the ipvs proxier should not touch when cleaning up IPVS rules.")
 | 
				
			||||||
	fs.StringSliceVar(&o.config.NodePortAddresses, "nodeport-addresses", o.config.NodePortAddresses,
 | 
						fs.StringSliceVar(&o.config.NodePortAddresses, "nodeport-addresses", o.config.NodePortAddresses,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,7 @@ import (
 | 
				
			|||||||
	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 | 
						utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
						utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
				
			||||||
	"k8s.io/client-go/tools/record"
 | 
						"k8s.io/client-go/tools/record"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/features"
 | 
						"k8s.io/kubernetes/pkg/features"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/proxy"
 | 
						"k8s.io/kubernetes/pkg/proxy"
 | 
				
			||||||
	proxyconfigapi "k8s.io/kubernetes/pkg/proxy/apis/config"
 | 
						proxyconfigapi "k8s.io/kubernetes/pkg/proxy/apis/config"
 | 
				
			||||||
@@ -39,7 +40,7 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/proxy/healthcheck"
 | 
						"k8s.io/kubernetes/pkg/proxy/healthcheck"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/proxy/iptables"
 | 
						"k8s.io/kubernetes/pkg/proxy/iptables"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/proxy/ipvs"
 | 
						"k8s.io/kubernetes/pkg/proxy/ipvs"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/proxy/metrics"
 | 
						proxymetrics "k8s.io/kubernetes/pkg/proxy/metrics"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/proxy/userspace"
 | 
						"k8s.io/kubernetes/pkg/proxy/userspace"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/configz"
 | 
						"k8s.io/kubernetes/pkg/util/configz"
 | 
				
			||||||
	utilipset "k8s.io/kubernetes/pkg/util/ipset"
 | 
						utilipset "k8s.io/kubernetes/pkg/util/ipset"
 | 
				
			||||||
@@ -105,6 +106,10 @@ func newProxyServer(
 | 
				
			|||||||
		}, nil
 | 
							}, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if len(config.ShowHiddenMetricsForVersion) > 0 {
 | 
				
			||||||
 | 
							metrics.SetShowHidden()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	client, eventClient, err := createClients(config.ClientConnection, master)
 | 
						client, eventClient, err := createClients(config.ClientConnection, master)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
@@ -167,7 +172,7 @@ func newProxyServer(
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, fmt.Errorf("unable to create proxier: %v", err)
 | 
								return nil, fmt.Errorf("unable to create proxier: %v", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		metrics.RegisterMetrics()
 | 
							proxymetrics.RegisterMetrics()
 | 
				
			||||||
	} else if proxyMode == proxyModeIPVS {
 | 
						} else if proxyMode == proxyModeIPVS {
 | 
				
			||||||
		klog.V(0).Info("Using ipvs Proxier.")
 | 
							klog.V(0).Info("Using ipvs Proxier.")
 | 
				
			||||||
		if utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) {
 | 
							if utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) {
 | 
				
			||||||
@@ -234,7 +239,7 @@ func newProxyServer(
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, fmt.Errorf("unable to create proxier: %v", err)
 | 
								return nil, fmt.Errorf("unable to create proxier: %v", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		metrics.RegisterMetrics()
 | 
							proxymetrics.RegisterMetrics()
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		klog.V(0).Info("Using userspace Proxier.")
 | 
							klog.V(0).Info("Using userspace Proxier.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/types"
 | 
						"k8s.io/apimachinery/pkg/types"
 | 
				
			||||||
	utilnet "k8s.io/apimachinery/pkg/util/net"
 | 
						utilnet "k8s.io/apimachinery/pkg/util/net"
 | 
				
			||||||
	"k8s.io/client-go/tools/record"
 | 
						"k8s.io/client-go/tools/record"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/proxy"
 | 
						"k8s.io/kubernetes/pkg/proxy"
 | 
				
			||||||
	proxyconfigapi "k8s.io/kubernetes/pkg/proxy/apis/config"
 | 
						proxyconfigapi "k8s.io/kubernetes/pkg/proxy/apis/config"
 | 
				
			||||||
	proxyconfigscheme "k8s.io/kubernetes/pkg/proxy/apis/config/scheme"
 | 
						proxyconfigscheme "k8s.io/kubernetes/pkg/proxy/apis/config/scheme"
 | 
				
			||||||
@@ -67,6 +68,10 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi
 | 
				
			|||||||
		return &ProxyServer{}, nil
 | 
							return &ProxyServer{}, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if len(config.ShowHiddenMetricsForVersion) > 0 {
 | 
				
			||||||
 | 
							metrics.SetShowHidden()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	client, eventClient, err := createClients(config.ClientConnection, master)
 | 
						client, eventClient, err := createClients(config.ClientConnection, master)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,6 +86,7 @@ var kubeProxyMarshalCases = []struct {
 | 
				
			|||||||
			nodePortAddresses: null
 | 
								nodePortAddresses: null
 | 
				
			||||||
			oomScoreAdj: null
 | 
								oomScoreAdj: null
 | 
				
			||||||
			portRange: ""
 | 
								portRange: ""
 | 
				
			||||||
 | 
								showHiddenMetricsForVersion: ""
 | 
				
			||||||
			udpIdleTimeout: 0s
 | 
								udpIdleTimeout: 0s
 | 
				
			||||||
			winkernel:
 | 
								winkernel:
 | 
				
			||||||
			  enableDSR: false
 | 
								  enableDSR: false
 | 
				
			||||||
@@ -140,6 +141,7 @@ var kubeProxyMarshalCases = []struct {
 | 
				
			|||||||
			nodePortAddresses: null
 | 
								nodePortAddresses: null
 | 
				
			||||||
			oomScoreAdj: null
 | 
								oomScoreAdj: null
 | 
				
			||||||
			portRange: ""
 | 
								portRange: ""
 | 
				
			||||||
 | 
								showHiddenMetricsForVersion: ""
 | 
				
			||||||
			udpIdleTimeout: 0s
 | 
								udpIdleTimeout: 0s
 | 
				
			||||||
			winkernel:
 | 
								winkernel:
 | 
				
			||||||
			  enableDSR: false
 | 
								  enableDSR: false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,6 +35,7 @@ Mode: ""
 | 
				
			|||||||
NodePortAddresses: null
 | 
					NodePortAddresses: null
 | 
				
			||||||
OOMScoreAdj: null
 | 
					OOMScoreAdj: null
 | 
				
			||||||
PortRange: ""
 | 
					PortRange: ""
 | 
				
			||||||
 | 
					ShowHiddenMetricsForVersion: ""
 | 
				
			||||||
UDPIdleTimeout: 0s
 | 
					UDPIdleTimeout: 0s
 | 
				
			||||||
Winkernel:
 | 
					Winkernel:
 | 
				
			||||||
  EnableDSR: false
 | 
					  EnableDSR: false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,7 @@ mode: ""
 | 
				
			|||||||
nodePortAddresses: null
 | 
					nodePortAddresses: null
 | 
				
			||||||
oomScoreAdj: -999
 | 
					oomScoreAdj: -999
 | 
				
			||||||
portRange: ""
 | 
					portRange: ""
 | 
				
			||||||
 | 
					showHiddenMetricsForVersion: ""
 | 
				
			||||||
udpIdleTimeout: 250ms
 | 
					udpIdleTimeout: 250ms
 | 
				
			||||||
winkernel:
 | 
					winkernel:
 | 
				
			||||||
  enableDSR: false
 | 
					  enableDSR: false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,6 +35,7 @@ Mode: ""
 | 
				
			|||||||
NodePortAddresses: null
 | 
					NodePortAddresses: null
 | 
				
			||||||
OOMScoreAdj: -999
 | 
					OOMScoreAdj: -999
 | 
				
			||||||
PortRange: ""
 | 
					PortRange: ""
 | 
				
			||||||
 | 
					ShowHiddenMetricsForVersion: ""
 | 
				
			||||||
UDPIdleTimeout: 250ms
 | 
					UDPIdleTimeout: 250ms
 | 
				
			||||||
Winkernel:
 | 
					Winkernel:
 | 
				
			||||||
  EnableDSR: false
 | 
					  EnableDSR: false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,7 @@ mode: ""
 | 
				
			|||||||
nodePortAddresses: null
 | 
					nodePortAddresses: null
 | 
				
			||||||
oomScoreAdj: -999
 | 
					oomScoreAdj: -999
 | 
				
			||||||
portRange: ""
 | 
					portRange: ""
 | 
				
			||||||
 | 
					showHiddenMetricsForVersion: ""
 | 
				
			||||||
udpIdleTimeout: 250ms
 | 
					udpIdleTimeout: 250ms
 | 
				
			||||||
winkernel:
 | 
					winkernel:
 | 
				
			||||||
  enableDSR: false
 | 
					  enableDSR: false
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -162,6 +162,8 @@ type KubeProxyConfiguration struct {
 | 
				
			|||||||
	NodePortAddresses []string
 | 
						NodePortAddresses []string
 | 
				
			||||||
	// winkernel contains winkernel-related configuration options.
 | 
						// winkernel contains winkernel-related configuration options.
 | 
				
			||||||
	Winkernel KubeProxyWinkernelConfiguration
 | 
						Winkernel KubeProxyWinkernelConfiguration
 | 
				
			||||||
 | 
						// ShowHiddenMetricsForVersion is the version for which you want to show hidden metrics.
 | 
				
			||||||
 | 
						ShowHiddenMetricsForVersion string
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Currently, three modes of proxy are available in Linux platform: 'userspace' (older, going to be EOL), 'iptables'
 | 
					// Currently, three modes of proxy are available in Linux platform: 'userspace' (older, going to be EOL), 'iptables'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -120,6 +120,7 @@ func autoConvert_v1alpha1_KubeProxyConfiguration_To_config_KubeProxyConfiguratio
 | 
				
			|||||||
	if err := Convert_v1alpha1_KubeProxyWinkernelConfiguration_To_config_KubeProxyWinkernelConfiguration(&in.Winkernel, &out.Winkernel, s); err != nil {
 | 
						if err := Convert_v1alpha1_KubeProxyWinkernelConfiguration_To_config_KubeProxyWinkernelConfiguration(&in.Winkernel, &out.Winkernel, s); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						out.ShowHiddenMetricsForVersion = in.ShowHiddenMetricsForVersion
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -157,6 +158,7 @@ func autoConvert_config_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguratio
 | 
				
			|||||||
	if err := Convert_config_KubeProxyWinkernelConfiguration_To_v1alpha1_KubeProxyWinkernelConfiguration(&in.Winkernel, &out.Winkernel, s); err != nil {
 | 
						if err := Convert_config_KubeProxyWinkernelConfiguration_To_v1alpha1_KubeProxyWinkernelConfiguration(&in.Winkernel, &out.Winkernel, s); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						out.ShowHiddenMetricsForVersion = in.ShowHiddenMetricsForVersion
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,7 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
 | 
					        "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/config:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/config:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,6 +27,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/validation/field"
 | 
						"k8s.io/apimachinery/pkg/util/validation/field"
 | 
				
			||||||
	componentbaseconfig "k8s.io/component-base/config"
 | 
						componentbaseconfig "k8s.io/component-base/config"
 | 
				
			||||||
 | 
						"k8s.io/component-base/metrics"
 | 
				
			||||||
	apivalidation "k8s.io/kubernetes/pkg/apis/core/validation"
 | 
						apivalidation "k8s.io/kubernetes/pkg/apis/core/validation"
 | 
				
			||||||
	kubefeatures "k8s.io/kubernetes/pkg/features"
 | 
						kubefeatures "k8s.io/kubernetes/pkg/features"
 | 
				
			||||||
	kubeproxyconfig "k8s.io/kubernetes/pkg/proxy/apis/config"
 | 
						kubeproxyconfig "k8s.io/kubernetes/pkg/proxy/apis/config"
 | 
				
			||||||
@@ -87,6 +88,7 @@ func Validate(config *kubeproxyconfig.KubeProxyConfiguration) field.ErrorList {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	allErrs = append(allErrs, validateKubeProxyNodePortAddress(config.NodePortAddresses, newPath.Child("NodePortAddresses"))...)
 | 
						allErrs = append(allErrs, validateKubeProxyNodePortAddress(config.NodePortAddresses, newPath.Child("NodePortAddresses"))...)
 | 
				
			||||||
 | 
						allErrs = append(allErrs, validateShowHiddenMetricsVersion(config.ShowHiddenMetricsForVersion, newPath.Child("ShowHiddenMetricsForVersion"))...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return allErrs
 | 
						return allErrs
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -274,3 +276,13 @@ func validateIPVSExcludeCIDRs(excludeCIDRs []string, fldPath *field.Path) field.
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return allErrs
 | 
						return allErrs
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func validateShowHiddenMetricsVersion(version string, fldPath *field.Path) field.ErrorList {
 | 
				
			||||||
 | 
						allErrs := field.ErrorList{}
 | 
				
			||||||
 | 
						errs := metrics.ValidateShowHiddenMetricsVersion(version)
 | 
				
			||||||
 | 
						for _, e := range errs {
 | 
				
			||||||
 | 
							allErrs = append(allErrs, field.Invalid(fldPath, version, e.Error()))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return allErrs
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -158,6 +158,8 @@ type KubeProxyConfiguration struct {
 | 
				
			|||||||
	NodePortAddresses []string `json:"nodePortAddresses"`
 | 
						NodePortAddresses []string `json:"nodePortAddresses"`
 | 
				
			||||||
	// winkernel contains winkernel-related configuration options.
 | 
						// winkernel contains winkernel-related configuration options.
 | 
				
			||||||
	Winkernel KubeProxyWinkernelConfiguration `json:"winkernel"`
 | 
						Winkernel KubeProxyWinkernelConfiguration `json:"winkernel"`
 | 
				
			||||||
 | 
						// ShowHiddenMetricsForVersion is the version for which you want to show hidden metrics.
 | 
				
			||||||
 | 
						ShowHiddenMetricsForVersion string `json:"showHiddenMetricsForVersion"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Currently, three modes of proxy are available in Linux platform: 'userspace' (older, going to be EOL), 'iptables'
 | 
					// Currently, three modes of proxy are available in Linux platform: 'userspace' (older, going to be EOL), 'iptables'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user