mirror of https://github.com/k3s-io/k3s
Add exception to golint check
(*) Fix cleanup of NodePort resources. (*) Fix the logic to select existing policies Fix review comment Fix Bazel Update GoDep License Fix NodePort forwarding to target port Fix Darwin Build break. +1 Implement IsCompatible to validate kernel support for kernel modepull/6/head
parent
63020d5f72
commit
a8d797afdd
|
@ -68231,7 +68231,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
= vendor/github.com/Microsoft/hcsshim/LICENSE d4c2cbbea5ee1e7c86dff68a7073718e -
|
= vendor/github.com/Microsoft/hcsshim/LICENSE d4c2cbbea5ee1e7c86dff68a7073718e
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
@ -81007,35 +81007,6 @@ THE SOFTWARE.
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
|
||||||
= vendor/github.com/sirupsen/logrus licensed under: =
|
|
||||||
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2014 Simon Eskildsen
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
= vendor/github.com/sirupsen/logrus/LICENSE 8dadfef729c08ec4e631c4f6fc5d43a0 -
|
|
||||||
================================================================================
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
= vendor/github.com/spf13/afero licensed under: =
|
= vendor/github.com/spf13/afero licensed under: =
|
||||||
|
|
||||||
|
|
|
@ -11,10 +11,8 @@ go_library(
|
||||||
srcs = [
|
srcs = [
|
||||||
"conntrack.go",
|
"conntrack.go",
|
||||||
"server.go",
|
"server.go",
|
||||||
|
"server_others.go",
|
||||||
] + select({
|
] + select({
|
||||||
"@io_bazel_rules_go//go/platform:linux_amd64": [
|
|
||||||
"server_linux.go",
|
|
||||||
],
|
|
||||||
"@io_bazel_rules_go//go/platform:windows_amd64": [
|
"@io_bazel_rules_go//go/platform:windows_amd64": [
|
||||||
"server_windows.go",
|
"server_windows.go",
|
||||||
],
|
],
|
||||||
|
@ -37,6 +35,7 @@ go_library(
|
||||||
"//pkg/proxy/ipvs:go_default_library",
|
"//pkg/proxy/ipvs:go_default_library",
|
||||||
"//pkg/proxy/userspace:go_default_library",
|
"//pkg/proxy/userspace:go_default_library",
|
||||||
"//pkg/util/configz:go_default_library",
|
"//pkg/util/configz:go_default_library",
|
||||||
|
"//pkg/util/dbus:go_default_library",
|
||||||
"//pkg/util/iptables:go_default_library",
|
"//pkg/util/iptables:go_default_library",
|
||||||
"//pkg/util/ipvs:go_default_library",
|
"//pkg/util/ipvs:go_default_library",
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
|
@ -55,6 +54,8 @@ go_library(
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
|
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||||
"//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library",
|
"//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library",
|
||||||
|
@ -64,20 +65,12 @@ go_library(
|
||||||
"//vendor/k8s.io/client-go/tools/clientcmd:go_default_library",
|
"//vendor/k8s.io/client-go/tools/clientcmd:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library",
|
"//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library",
|
||||||
"//vendor/k8s.io/client-go/tools/record:go_default_library",
|
"//vendor/k8s.io/client-go/tools/record:go_default_library",
|
||||||
|
"//vendor/k8s.io/utils/exec:go_default_library",
|
||||||
] + select({
|
] + select({
|
||||||
"@io_bazel_rules_go//go/platform:linux_amd64": [
|
|
||||||
"//pkg/util/dbus:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
|
||||||
"//vendor/k8s.io/utils/exec:go_default_library",
|
|
||||||
],
|
|
||||||
"@io_bazel_rules_go//go/platform:windows_amd64": [
|
"@io_bazel_rules_go//go/platform:windows_amd64": [
|
||||||
"//pkg/proxy/winkernel:go_default_library",
|
"//pkg/proxy/winkernel:go_default_library",
|
||||||
"//pkg/proxy/winuserspace:go_default_library",
|
"//pkg/proxy/winuserspace:go_default_library",
|
||||||
"//pkg/util/netsh:go_default_library",
|
"//pkg/util/netsh:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
|
|
||||||
"//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
|
||||||
"//vendor/k8s.io/utils/exec:go_default_library",
|
|
||||||
],
|
],
|
||||||
"//conditions:default": [],
|
"//conditions:default": [],
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -51,6 +51,7 @@ import (
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// NewProxyServer returns a new ProxyServer.
|
||||||
func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndExit bool, scheme *runtime.Scheme, master string) (*ProxyServer, error) {
|
func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndExit bool, scheme *runtime.Scheme, master string) (*ProxyServer, error) {
|
||||||
if config == nil {
|
if config == nil {
|
||||||
return nil, errors.New("config is required")
|
return nil, errors.New("config is required")
|
|
@ -301,6 +301,7 @@ pkg/proxy
|
||||||
pkg/proxy/iptables
|
pkg/proxy/iptables
|
||||||
pkg/proxy/userspace
|
pkg/proxy/userspace
|
||||||
pkg/proxy/util
|
pkg/proxy/util
|
||||||
|
pkg/proxy/winkernel
|
||||||
pkg/proxy/winuserspace
|
pkg/proxy/winuserspace
|
||||||
pkg/quota/evaluator/core
|
pkg/quota/evaluator/core
|
||||||
pkg/quota/generic
|
pkg/quota/generic
|
||||||
|
|
|
@ -65,8 +65,12 @@ func CanUseWinKernelProxier(kcompat KernelCompatTester) (bool, error) {
|
||||||
|
|
||||||
type WindowsKernelCompatTester struct{}
|
type WindowsKernelCompatTester struct{}
|
||||||
|
|
||||||
// Todo : Fix the below API to query the OS version
|
// IsCompatible returns true if winkernel can support this mode of proxy
|
||||||
func (lkct WindowsKernelCompatTester) IsCompatible() error {
|
func (lkct WindowsKernelCompatTester) IsCompatible() error {
|
||||||
|
_, err := hcsshim.HNSListPolicyListRequest()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("Windows kernel is not compatible for Kernel mode")
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -531,6 +535,10 @@ func (svcInfo *serviceInfo) deleteAllHnsLoadBalancerPolicy() {
|
||||||
// Remove the Hns Policy corresponding to this service
|
// Remove the Hns Policy corresponding to this service
|
||||||
deleteHnsLoadBalancerPolicy(svcInfo.hnsID)
|
deleteHnsLoadBalancerPolicy(svcInfo.hnsID)
|
||||||
svcInfo.hnsID = ""
|
svcInfo.hnsID = ""
|
||||||
|
|
||||||
|
deleteHnsLoadBalancerPolicy(svcInfo.nodePorthnsID)
|
||||||
|
svcInfo.nodePorthnsID = ""
|
||||||
|
|
||||||
for _, externalIp := range svcInfo.externalIPs {
|
for _, externalIp := range svcInfo.externalIPs {
|
||||||
deleteHnsLoadBalancerPolicy(externalIp.hnsID)
|
deleteHnsLoadBalancerPolicy(externalIp.hnsID)
|
||||||
externalIp.hnsID = ""
|
externalIp.hnsID = ""
|
||||||
|
@ -576,7 +584,7 @@ func getHnsLoadBalancer(endpoints []hcsshim.HNSEndpoint, isILB bool, vip string,
|
||||||
}
|
}
|
||||||
if elbPolicy.Protocol == protocol && elbPolicy.InternalPort == internalPort && elbPolicy.ExternalPort == externalPort && elbPolicy.ILB == isILB {
|
if elbPolicy.Protocol == protocol && elbPolicy.InternalPort == internalPort && elbPolicy.ExternalPort == externalPort && elbPolicy.ILB == isILB {
|
||||||
if len(vip) > 0 {
|
if len(vip) > 0 {
|
||||||
if len(elbPolicy.VIPs) > 0 && elbPolicy.VIPs[0] != vip {
|
if len(elbPolicy.VIPs) == 0 || elbPolicy.VIPs[0] != vip {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1049,7 +1057,7 @@ func (proxier *Proxier) syncProxyRules() {
|
||||||
false,
|
false,
|
||||||
"", // VIP has to be empty to automatically select the nodeIP
|
"", // VIP has to be empty to automatically select the nodeIP
|
||||||
Enum(svcInfo.protocol),
|
Enum(svcInfo.protocol),
|
||||||
uint16(svcInfo.port),
|
uint16(svcInfo.targetPort),
|
||||||
uint16(svcInfo.nodePort),
|
uint16(svcInfo.nodePort),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1058,7 +1066,7 @@ func (proxier *Proxier) syncProxyRules() {
|
||||||
}
|
}
|
||||||
|
|
||||||
svcInfo.nodePorthnsID = hnsLoadBalancer.ID
|
svcInfo.nodePorthnsID = hnsLoadBalancer.ID
|
||||||
glog.V(3).Infof("Hns LoadBalancer resource created for cluster ip resources %v, Id [%s]", svcInfo.clusterIP, hnsLoadBalancer.ID)
|
glog.V(3).Infof("Hns LoadBalancer resource created for nodePort resources %v, Id [%s]", svcInfo.clusterIP, hnsLoadBalancer.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a Load Balancer Policy for each external IP
|
// Create a Load Balancer Policy for each external IP
|
||||||
|
|
Loading…
Reference in New Issue