Merge pull request #85279 from RainbowMango/pr_add_metrics_flag_to_proxy

Allow show hidden metrics in kube-proxy
This commit is contained in:
Kubernetes Prow Robot
2019-12-18 00:57:57 -08:00
committed by GitHub
14 changed files with 56 additions and 3 deletions

View File

@@ -35,6 +35,7 @@ Mode: ""
NodePortAddresses: null
OOMScoreAdj: null
PortRange: ""
ShowHiddenMetricsForVersion: ""
UDPIdleTimeout: 0s
Winkernel:
EnableDSR: false

View File

@@ -36,6 +36,7 @@ mode: ""
nodePortAddresses: null
oomScoreAdj: -999
portRange: ""
showHiddenMetricsForVersion: ""
udpIdleTimeout: 250ms
winkernel:
enableDSR: false

View File

@@ -35,6 +35,7 @@ Mode: ""
NodePortAddresses: null
OOMScoreAdj: -999
PortRange: ""
ShowHiddenMetricsForVersion: ""
UDPIdleTimeout: 250ms
Winkernel:
EnableDSR: false

View File

@@ -36,6 +36,7 @@ mode: ""
nodePortAddresses: null
oomScoreAdj: -999
portRange: ""
showHiddenMetricsForVersion: ""
udpIdleTimeout: 250ms
winkernel:
enableDSR: false

View File

@@ -162,6 +162,8 @@ type KubeProxyConfiguration struct {
NodePortAddresses []string
// winkernel contains winkernel-related configuration options.
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'

View File

@@ -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 {
return err
}
out.ShowHiddenMetricsForVersion = in.ShowHiddenMetricsForVersion
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 {
return err
}
out.ShowHiddenMetricsForVersion = in.ShowHiddenMetricsForVersion
return nil
}

View File

@@ -18,6 +18,7 @@ go_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/component-base/config:go_default_library",
"//staging/src/k8s.io/component-base/metrics:go_default_library",
],
)

View File

@@ -27,6 +27,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/validation/field"
componentbaseconfig "k8s.io/component-base/config"
"k8s.io/component-base/metrics"
apivalidation "k8s.io/kubernetes/pkg/apis/core/validation"
kubefeatures "k8s.io/kubernetes/pkg/features"
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, validateShowHiddenMetricsVersion(config.ShowHiddenMetricsForVersion, newPath.Child("ShowHiddenMetricsForVersion"))...)
return allErrs
}
@@ -274,3 +276,13 @@ func validateIPVSExcludeCIDRs(excludeCIDRs []string, fldPath *field.Path) field.
}
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
}