diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index e91dc6af38e..7a255c596fe 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -98,6 +98,7 @@ const ( proxyModeUserspace = "userspace" proxyModeIptables = "iptables" experimentalProxyModeAnnotation = "net.experimental.kubernetes.io/proxy-mode" + betaProxyModeAnnotation = "net.beta.kubernetes.io/proxy-mode" ) func checkKnownProxyMode(proxyMode string) bool { @@ -327,9 +328,15 @@ func mayTryIptablesProxy(proxyMode string, client nodeGetter, hostname string) b glog.Errorf("Not trying iptables proxy: got nil Node %q", hostname) return false } - proxyMode, found := node.Annotations[experimentalProxyModeAnnotation] + proxyMode, found := node.Annotations[betaProxyModeAnnotation] if found { - glog.V(1).Infof("Found experimental annotation %q = %q", experimentalProxyModeAnnotation, proxyMode) + glog.V(1).Infof("Found beta annotation %q = %q", betaProxyModeAnnotation, proxyMode) + } else { + // We already published some information about this annotation with the "experimental" name, so we will respect it. + proxyMode, found = node.Annotations[experimentalProxyModeAnnotation] + if found { + glog.V(1).Infof("Found experimental annotation %q = %q", experimentalProxyModeAnnotation, proxyMode) + } } if proxyMode == proxyModeIptables { glog.V(1).Infof("Annotation allows iptables proxy") diff --git a/cmd/kube-proxy/app/server_test.go b/cmd/kube-proxy/app/server_test.go index 87b10e8b7eb..171fe2d5ffa 100644 --- a/cmd/kube-proxy/app/server_test.go +++ b/cmd/kube-proxy/app/server_test.go @@ -45,11 +45,19 @@ func Test_mayTryIptablesProxy(t *testing.T) { {"", "net.experimental.kubernetes.io/proxy-mode", "iptables", true}, {"", "net.experimental.kubernetes.io/proxy-mode", "other", false}, {"", "net.experimental.kubernetes.io/proxy-mode", "", false}, + {"", "net.beta.kubernetes.io/proxy-mode", "userspace", false}, + {"", "net.beta.kubernetes.io/proxy-mode", "iptables", true}, + {"", "net.beta.kubernetes.io/proxy-mode", "other", false}, + {"", "net.beta.kubernetes.io/proxy-mode", "", false}, {"", "proxy-mode", "iptables", false}, {"userspace", "net.experimental.kubernetes.io/proxy-mode", "userspace", false}, {"userspace", "net.experimental.kubernetes.io/proxy-mode", "iptables", false}, {"iptables", "net.experimental.kubernetes.io/proxy-mode", "userspace", true}, {"iptables", "net.experimental.kubernetes.io/proxy-mode", "iptables", true}, + {"userspace", "net.beta.kubernetes.io/proxy-mode", "userspace", false}, + {"userspace", "net.beta.kubernetes.io/proxy-mode", "iptables", false}, + {"iptables", "net.beta.kubernetes.io/proxy-mode", "userspace", true}, + {"iptables", "net.beta.kubernetes.io/proxy-mode", "iptables", true}, } for i, c := range cases { getter := &fakeNodeInterface{}