mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 02:09:56 +00:00
Enhance proxy mode validation
This commit is contained in:
parent
38e3351312
commit
f1e4181315
@ -14,6 +14,7 @@ go_library(
|
|||||||
"//pkg/apis/core/validation:go_default_library",
|
"//pkg/apis/core/validation:go_default_library",
|
||||||
"//pkg/proxy/apis/kubeproxyconfig:go_default_library",
|
"//pkg/proxy/apis/kubeproxyconfig:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -24,6 +24,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
utilnet "k8s.io/apimachinery/pkg/util/net"
|
||||||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
apivalidation "k8s.io/kubernetes/pkg/apis/core/validation"
|
apivalidation "k8s.io/kubernetes/pkg/apis/core/validation"
|
||||||
"k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig"
|
"k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig"
|
||||||
@ -150,33 +151,32 @@ func validateProxyMode(mode kubeproxyconfig.ProxyMode, fldPath *field.Path) fiel
|
|||||||
}
|
}
|
||||||
|
|
||||||
func validateProxyModeLinux(mode kubeproxyconfig.ProxyMode, fldPath *field.Path) field.ErrorList {
|
func validateProxyModeLinux(mode kubeproxyconfig.ProxyMode, fldPath *field.Path) field.ErrorList {
|
||||||
allErrs := field.ErrorList{}
|
validModes := sets.NewString(
|
||||||
|
string(kubeproxyconfig.ProxyModeUserspace),
|
||||||
|
string(kubeproxyconfig.ProxyModeIPTables),
|
||||||
|
string(kubeproxyconfig.ProxyModeIPVS),
|
||||||
|
)
|
||||||
|
|
||||||
switch mode {
|
if mode == "" || validModes.Has(string(mode)) {
|
||||||
case kubeproxyconfig.ProxyModeUserspace:
|
return nil
|
||||||
case kubeproxyconfig.ProxyModeIPTables:
|
|
||||||
case kubeproxyconfig.ProxyModeIPVS:
|
|
||||||
case "":
|
|
||||||
default:
|
|
||||||
modes := []string{string(kubeproxyconfig.ProxyModeUserspace), string(kubeproxyconfig.ProxyModeIPTables), string(kubeproxyconfig.ProxyModeIPVS)}
|
|
||||||
errMsg := fmt.Sprintf("must be %s or blank (blank means the best-available proxy [currently iptables])", strings.Join(modes, ","))
|
|
||||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("ProxyMode"), string(mode), errMsg))
|
|
||||||
}
|
}
|
||||||
return allErrs
|
|
||||||
|
errMsg := fmt.Sprintf("must be %s or blank (blank means the best-available proxy [currently iptables])", strings.Join(validModes.List(), ","))
|
||||||
|
return field.ErrorList{field.Invalid(fldPath.Child("ProxyMode"), string(mode), errMsg)}
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateProxyModeWindows(mode kubeproxyconfig.ProxyMode, fldPath *field.Path) field.ErrorList {
|
func validateProxyModeWindows(mode kubeproxyconfig.ProxyMode, fldPath *field.Path) field.ErrorList {
|
||||||
allErrs := field.ErrorList{}
|
validModes := sets.NewString(
|
||||||
|
string(kubeproxyconfig.ProxyModeUserspace),
|
||||||
|
string(kubeproxyconfig.ProxyModeKernelspace),
|
||||||
|
)
|
||||||
|
|
||||||
switch mode {
|
if mode == "" || validModes.Has(string(mode)) {
|
||||||
case kubeproxyconfig.ProxyModeUserspace:
|
return nil
|
||||||
case kubeproxyconfig.ProxyModeKernelspace:
|
|
||||||
default:
|
|
||||||
modes := []string{string(kubeproxyconfig.ProxyModeUserspace), string(kubeproxyconfig.ProxyModeKernelspace)}
|
|
||||||
errMsg := fmt.Sprintf("must be %s or blank (blank means the most-available proxy [currently userspace])", strings.Join(modes, ","))
|
|
||||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("ProxyMode"), string(mode), errMsg))
|
|
||||||
}
|
}
|
||||||
return allErrs
|
|
||||||
|
errMsg := fmt.Sprintf("must be %s or blank (blank means the most-available proxy [currently userspace])", strings.Join(validModes.List(), ","))
|
||||||
|
return field.ErrorList{field.Invalid(fldPath.Child("ProxyMode"), string(mode), errMsg)}
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateClientConnectionConfiguration(config kubeproxyconfig.ClientConnectionConfiguration, fldPath *field.Path) field.ErrorList {
|
func validateClientConnectionConfiguration(config kubeproxyconfig.ClientConnectionConfiguration, fldPath *field.Path) field.ErrorList {
|
||||||
|
Loading…
Reference in New Issue
Block a user