mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
remove deprecated validEgressSelectorNames 'master' (#102242)
* remove deprecated validEgressSelectorNames 'master' Signed-off-by: pacoxu <paco.xu@daocloud.io> * update gce configure: replace deprecated egress name 'master' with 'controlplane' Signed-off-by: pacoxu <paco.xu@daocloud.io> * add dup error for EgressSelection & fix converting alpha/beta to v1 name
This commit is contained in:
parent
5d7ac70051
commit
a48a2efbd4
@ -937,7 +937,7 @@ egressSelections:
|
|||||||
transport:
|
transport:
|
||||||
uds:
|
uds:
|
||||||
udsName: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket
|
udsName: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket
|
||||||
- name: master
|
- name: controlplane
|
||||||
connection:
|
connection:
|
||||||
proxyProtocol: Direct
|
proxyProtocol: Direct
|
||||||
- name: etcd
|
- name: etcd
|
||||||
@ -955,7 +955,7 @@ egressSelections:
|
|||||||
transport:
|
transport:
|
||||||
uds:
|
uds:
|
||||||
udsName: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket
|
udsName: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket
|
||||||
- name: master
|
- name: controlplane
|
||||||
connection:
|
connection:
|
||||||
proxyProtocol: Direct
|
proxyProtocol: Direct
|
||||||
- name: etcd
|
- name: etcd
|
||||||
|
@ -62,8 +62,7 @@ type EgressSelectorConfiguration struct {
|
|||||||
// EgressSelection provides the configuration for a single egress selection client.
|
// EgressSelection provides the configuration for a single egress selection client.
|
||||||
type EgressSelection struct {
|
type EgressSelection struct {
|
||||||
// Name is the name of the egress selection.
|
// Name is the name of the egress selection.
|
||||||
// Currently supported values are "controlplane", "master", "etcd" and "cluster"
|
// Currently supported values are "controlplane", "etcd" and "cluster"
|
||||||
// The "master" egress selector is deprecated in favor of "controlplane"
|
|
||||||
Name string
|
Name string
|
||||||
|
|
||||||
// Connection is the exact information used to configure the egress selection
|
// Connection is the exact information used to configure the egress selection
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
conversion "k8s.io/apimachinery/pkg/conversion"
|
||||||
|
apiserver "k8s.io/apiserver/pkg/apis/apiserver"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Convert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(in *EgressSelection, out *apiserver.EgressSelection, s conversion.Scope) error {
|
||||||
|
if err := autoConvert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(in, out, s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if out.Name == "master" {
|
||||||
|
out.Name = "controlplane"
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -66,11 +66,6 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := s.AddGeneratedConversionFunc((*EgressSelection)(nil), (*apiserver.EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
|
||||||
return Convert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(a.(*EgressSelection), b.(*apiserver.EgressSelection), scope)
|
|
||||||
}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := s.AddGeneratedConversionFunc((*apiserver.EgressSelection)(nil), (*EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
if err := s.AddGeneratedConversionFunc((*apiserver.EgressSelection)(nil), (*EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
return Convert_apiserver_EgressSelection_To_v1alpha1_EgressSelection(a.(*apiserver.EgressSelection), b.(*EgressSelection), scope)
|
return Convert_apiserver_EgressSelection_To_v1alpha1_EgressSelection(a.(*apiserver.EgressSelection), b.(*EgressSelection), scope)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -136,6 +131,11 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := s.AddConversionFunc((*EgressSelection)(nil), (*apiserver.EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
|
return Convert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(a.(*EgressSelection), b.(*apiserver.EgressSelection), scope)
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,11 +213,6 @@ func autoConvert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(in *Egres
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1alpha1_EgressSelection_To_apiserver_EgressSelection is an autogenerated conversion function.
|
|
||||||
func Convert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(in *EgressSelection, out *apiserver.EgressSelection, s conversion.Scope) error {
|
|
||||||
return autoConvert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(in, out, s)
|
|
||||||
}
|
|
||||||
|
|
||||||
func autoConvert_apiserver_EgressSelection_To_v1alpha1_EgressSelection(in *apiserver.EgressSelection, out *EgressSelection, s conversion.Scope) error {
|
func autoConvert_apiserver_EgressSelection_To_v1alpha1_EgressSelection(in *apiserver.EgressSelection, out *EgressSelection, s conversion.Scope) error {
|
||||||
out.Name = in.Name
|
out.Name = in.Name
|
||||||
if err := Convert_apiserver_Connection_To_v1alpha1_Connection(&in.Connection, &out.Connection, s); err != nil {
|
if err := Convert_apiserver_Connection_To_v1alpha1_Connection(&in.Connection, &out.Connection, s); err != nil {
|
||||||
@ -232,7 +227,17 @@ func Convert_apiserver_EgressSelection_To_v1alpha1_EgressSelection(in *apiserver
|
|||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_v1alpha1_EgressSelectorConfiguration_To_apiserver_EgressSelectorConfiguration(in *EgressSelectorConfiguration, out *apiserver.EgressSelectorConfiguration, s conversion.Scope) error {
|
func autoConvert_v1alpha1_EgressSelectorConfiguration_To_apiserver_EgressSelectorConfiguration(in *EgressSelectorConfiguration, out *apiserver.EgressSelectorConfiguration, s conversion.Scope) error {
|
||||||
out.EgressSelections = *(*[]apiserver.EgressSelection)(unsafe.Pointer(&in.EgressSelections))
|
if in.EgressSelections != nil {
|
||||||
|
in, out := &in.EgressSelections, &out.EgressSelections
|
||||||
|
*out = make([]apiserver.EgressSelection, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
if err := Convert_v1alpha1_EgressSelection_To_apiserver_EgressSelection(&(*in)[i], &(*out)[i], s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
out.EgressSelections = nil
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,7 +247,17 @@ func Convert_v1alpha1_EgressSelectorConfiguration_To_apiserver_EgressSelectorCon
|
|||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_apiserver_EgressSelectorConfiguration_To_v1alpha1_EgressSelectorConfiguration(in *apiserver.EgressSelectorConfiguration, out *EgressSelectorConfiguration, s conversion.Scope) error {
|
func autoConvert_apiserver_EgressSelectorConfiguration_To_v1alpha1_EgressSelectorConfiguration(in *apiserver.EgressSelectorConfiguration, out *EgressSelectorConfiguration, s conversion.Scope) error {
|
||||||
out.EgressSelections = *(*[]EgressSelection)(unsafe.Pointer(&in.EgressSelections))
|
if in.EgressSelections != nil {
|
||||||
|
in, out := &in.EgressSelections, &out.EgressSelections
|
||||||
|
*out = make([]EgressSelection, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
if err := Convert_apiserver_EgressSelection_To_v1alpha1_EgressSelection(&(*in)[i], &(*out)[i], s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
out.EgressSelections = nil
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta1
|
||||||
|
|
||||||
|
import (
|
||||||
|
conversion "k8s.io/apimachinery/pkg/conversion"
|
||||||
|
apiserver "k8s.io/apiserver/pkg/apis/apiserver"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Convert_v1beta1_EgressSelection_To_apiserver_EgressSelection(in *EgressSelection, out *apiserver.EgressSelection, s conversion.Scope) error {
|
||||||
|
if err := autoConvert_v1beta1_EgressSelection_To_apiserver_EgressSelection(in, out, s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if out.Name == "master" {
|
||||||
|
out.Name = "controlplane"
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -46,11 +46,6 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := s.AddGeneratedConversionFunc((*EgressSelection)(nil), (*apiserver.EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
|
||||||
return Convert_v1beta1_EgressSelection_To_apiserver_EgressSelection(a.(*EgressSelection), b.(*apiserver.EgressSelection), scope)
|
|
||||||
}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := s.AddGeneratedConversionFunc((*apiserver.EgressSelection)(nil), (*EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
if err := s.AddGeneratedConversionFunc((*apiserver.EgressSelection)(nil), (*EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
return Convert_apiserver_EgressSelection_To_v1beta1_EgressSelection(a.(*apiserver.EgressSelection), b.(*EgressSelection), scope)
|
return Convert_apiserver_EgressSelection_To_v1beta1_EgressSelection(a.(*apiserver.EgressSelection), b.(*EgressSelection), scope)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -106,6 +101,11 @@ func RegisterConversions(s *runtime.Scheme) error {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := s.AddConversionFunc((*EgressSelection)(nil), (*apiserver.EgressSelection)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||||
|
return Convert_v1beta1_EgressSelection_To_apiserver_EgressSelection(a.(*EgressSelection), b.(*apiserver.EgressSelection), scope)
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,11 +139,6 @@ func autoConvert_v1beta1_EgressSelection_To_apiserver_EgressSelection(in *Egress
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert_v1beta1_EgressSelection_To_apiserver_EgressSelection is an autogenerated conversion function.
|
|
||||||
func Convert_v1beta1_EgressSelection_To_apiserver_EgressSelection(in *EgressSelection, out *apiserver.EgressSelection, s conversion.Scope) error {
|
|
||||||
return autoConvert_v1beta1_EgressSelection_To_apiserver_EgressSelection(in, out, s)
|
|
||||||
}
|
|
||||||
|
|
||||||
func autoConvert_apiserver_EgressSelection_To_v1beta1_EgressSelection(in *apiserver.EgressSelection, out *EgressSelection, s conversion.Scope) error {
|
func autoConvert_apiserver_EgressSelection_To_v1beta1_EgressSelection(in *apiserver.EgressSelection, out *EgressSelection, s conversion.Scope) error {
|
||||||
out.Name = in.Name
|
out.Name = in.Name
|
||||||
if err := Convert_apiserver_Connection_To_v1beta1_Connection(&in.Connection, &out.Connection, s); err != nil {
|
if err := Convert_apiserver_Connection_To_v1beta1_Connection(&in.Connection, &out.Connection, s); err != nil {
|
||||||
@ -158,7 +153,17 @@ func Convert_apiserver_EgressSelection_To_v1beta1_EgressSelection(in *apiserver.
|
|||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_v1beta1_EgressSelectorConfiguration_To_apiserver_EgressSelectorConfiguration(in *EgressSelectorConfiguration, out *apiserver.EgressSelectorConfiguration, s conversion.Scope) error {
|
func autoConvert_v1beta1_EgressSelectorConfiguration_To_apiserver_EgressSelectorConfiguration(in *EgressSelectorConfiguration, out *apiserver.EgressSelectorConfiguration, s conversion.Scope) error {
|
||||||
out.EgressSelections = *(*[]apiserver.EgressSelection)(unsafe.Pointer(&in.EgressSelections))
|
if in.EgressSelections != nil {
|
||||||
|
in, out := &in.EgressSelections, &out.EgressSelections
|
||||||
|
*out = make([]apiserver.EgressSelection, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
if err := Convert_v1beta1_EgressSelection_To_apiserver_EgressSelection(&(*in)[i], &(*out)[i], s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
out.EgressSelections = nil
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,7 +173,17 @@ func Convert_v1beta1_EgressSelectorConfiguration_To_apiserver_EgressSelectorConf
|
|||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_apiserver_EgressSelectorConfiguration_To_v1beta1_EgressSelectorConfiguration(in *apiserver.EgressSelectorConfiguration, out *EgressSelectorConfiguration, s conversion.Scope) error {
|
func autoConvert_apiserver_EgressSelectorConfiguration_To_v1beta1_EgressSelectorConfiguration(in *apiserver.EgressSelectorConfiguration, out *EgressSelectorConfiguration, s conversion.Scope) error {
|
||||||
out.EgressSelections = *(*[]EgressSelection)(unsafe.Pointer(&in.EgressSelections))
|
if in.EgressSelections != nil {
|
||||||
|
in, out := &in.EgressSelections, &out.EgressSelections
|
||||||
|
*out = make([]EgressSelection, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
if err := Convert_apiserver_EgressSelection_To_v1beta1_EgressSelection(&(*in)[i], &(*out)[i], s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
out.EgressSelections = nil
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,8 +34,7 @@ import (
|
|||||||
var cfgScheme = runtime.NewScheme()
|
var cfgScheme = runtime.NewScheme()
|
||||||
|
|
||||||
// validEgressSelectorNames contains the set of valid egress selctor names.
|
// validEgressSelectorNames contains the set of valid egress selctor names.
|
||||||
// 'master' is deprecated in favor of 'controlplane' and will be removed in v1.22.
|
var validEgressSelectorNames = sets.NewString("controlplane", "cluster", "etcd")
|
||||||
var validEgressSelectorNames = sets.NewString("master", "controlplane", "cluster", "etcd")
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
install.Install(cfgScheme)
|
install.Install(cfgScheme)
|
||||||
@ -103,27 +102,21 @@ func ValidateEgressSelectorConfiguration(config *apiserver.EgressSelectorConfigu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var foundControlPlane, foundMaster bool
|
seen := sets.String{}
|
||||||
for _, service := range config.EgressSelections {
|
for i, service := range config.EgressSelections {
|
||||||
canonicalName := strings.ToLower(service.Name)
|
canonicalName := strings.ToLower(service.Name)
|
||||||
|
fldPath := field.NewPath("service", "connection")
|
||||||
if !validEgressSelectorNames.Has(canonicalName) {
|
// no duplicate check
|
||||||
allErrs = append(allErrs, field.NotSupported(field.NewPath("egressSelection", "name"), canonicalName, validEgressSelectorNames.List()))
|
if seen.Has(canonicalName) {
|
||||||
|
allErrs = append(allErrs, field.Duplicate(fldPath.Index(i), canonicalName))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
seen.Insert(canonicalName)
|
||||||
|
|
||||||
if canonicalName == "master" {
|
if !validEgressSelectorNames.Has(canonicalName) {
|
||||||
foundMaster = true
|
allErrs = append(allErrs, field.NotSupported(fldPath, canonicalName, validEgressSelectorNames.List()))
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if canonicalName == "controlplane" {
|
|
||||||
foundControlPlane = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// error if both master and controlplane egress selectors are set
|
|
||||||
if foundMaster && foundControlPlane {
|
|
||||||
allErrs = append(allErrs, field.Forbidden(field.NewPath("egressSelection", "name"), "both egressSelection names 'master' and 'controlplane' are specified, only one is allowed"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return allErrs
|
return allErrs
|
||||||
|
@ -188,7 +188,7 @@ egressSelections:
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "master",
|
Name: "controlplane",
|
||||||
Connection: apiserver.Connection{
|
Connection: apiserver.Connection{
|
||||||
ProxyProtocol: "HTTPConnect",
|
ProxyProtocol: "HTTPConnect",
|
||||||
Transport: &apiserver.Transport{
|
Transport: &apiserver.Transport{
|
||||||
@ -338,7 +338,7 @@ func TestValidateEgressSelectorConfiguration(t *testing.T) {
|
|||||||
},
|
},
|
||||||
EgressSelections: []apiserver.EgressSelection{
|
EgressSelections: []apiserver.EgressSelection{
|
||||||
{
|
{
|
||||||
Name: "master",
|
Name: "controlplane",
|
||||||
Connection: apiserver.Connection{
|
Connection: apiserver.Connection{
|
||||||
ProxyProtocol: apiserver.ProtocolDirect,
|
ProxyProtocol: apiserver.ProtocolDirect,
|
||||||
Transport: &apiserver.Transport{},
|
Transport: &apiserver.Transport{},
|
||||||
@ -512,7 +512,7 @@ func TestValidateEgressSelectorConfiguration(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "both master and controlplane egress selection configured",
|
name: "duplicate egress selections configured",
|
||||||
expectError: true,
|
expectError: true,
|
||||||
contents: &apiserver.EgressSelectorConfiguration{
|
contents: &apiserver.EgressSelectorConfiguration{
|
||||||
TypeMeta: metav1.TypeMeta{
|
TypeMeta: metav1.TypeMeta{
|
||||||
@ -527,7 +527,7 @@ func TestValidateEgressSelectorConfiguration(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "master",
|
Name: "controlplane",
|
||||||
Connection: apiserver.Connection{
|
Connection: apiserver.Connection{
|
||||||
ProxyProtocol: apiserver.ProtocolDirect,
|
ProxyProtocol: apiserver.ProtocolDirect,
|
||||||
},
|
},
|
||||||
|
@ -91,10 +91,6 @@ func (s EgressType) AsNetworkContext() NetworkContext {
|
|||||||
|
|
||||||
func lookupServiceName(name string) (EgressType, error) {
|
func lookupServiceName(name string) (EgressType, error) {
|
||||||
switch strings.ToLower(name) {
|
switch strings.ToLower(name) {
|
||||||
// 'master' is deprecated, interpret "master" as controlplane internally until removed in v1.22.
|
|
||||||
case "master":
|
|
||||||
klog.Warning("EgressSelection name 'master' is deprecated, use 'controlplane' instead")
|
|
||||||
return ControlPlane, nil
|
|
||||||
case "controlplane":
|
case "controlplane":
|
||||||
return ControlPlane, nil
|
return ControlPlane, nil
|
||||||
case "etcd":
|
case "etcd":
|
||||||
|
@ -64,7 +64,7 @@ func TestEgressSelector(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "master",
|
Name: "controlplane",
|
||||||
Connection: apiserver.Connection{
|
Connection: apiserver.Connection{
|
||||||
ProxyProtocol: apiserver.ProtocolDirect,
|
ProxyProtocol: apiserver.ProtocolDirect,
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user