Merge pull request #94471 from kshitijcode/kubelet-taint-fix-93608

Added support for register-with-taints setting #93608
This commit is contained in:
Kubernetes Prow Robot 2020-09-07 01:33:41 -07:00 committed by GitHub
commit 4e9bdd481e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 0 deletions

View File

@ -17,6 +17,7 @@ go_library(
importpath = "k8s.io/kubernetes/cmd/kubemark",
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/cluster/ports:go_default_library",
"//pkg/kubelet/cadvisor/testing:go_default_library",
"//pkg/kubelet/cm:go_default_library",
@ -25,6 +26,7 @@ go_library(
"//pkg/kubemark:go_default_library",
"//pkg/util/iptables/testing:go_default_library",
"//pkg/util/sysctl/testing:go_default_library",
"//pkg/util/taints:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",

View File

@ -41,6 +41,7 @@ import (
"k8s.io/component-base/version"
"k8s.io/component-base/version/verflag"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/cluster/ports"
cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing"
"k8s.io/kubernetes/pkg/kubelet/cm"
@ -49,6 +50,7 @@ import (
"k8s.io/kubernetes/pkg/kubemark"
fakeiptables "k8s.io/kubernetes/pkg/util/iptables/testing"
fakesysctl "k8s.io/kubernetes/pkg/util/sysctl/testing"
utiltaints "k8s.io/kubernetes/pkg/util/taints"
fakeexec "k8s.io/utils/exec/testing"
)
@ -64,6 +66,7 @@ type hollowNodeConfig struct {
ProxierSyncPeriod time.Duration
ProxierMinSyncPeriod time.Duration
NodeLabels map[string]string
RegisterWithTaints []core.Taint
}
const (
@ -88,6 +91,7 @@ func (c *hollowNodeConfig) addFlags(fs *pflag.FlagSet) {
fs.DurationVar(&c.ProxierMinSyncPeriod, "proxier-min-sync-period", 0, "Minimum period that proxy rules are refreshed in hollow-proxy.")
bindableNodeLabels := cliflag.ConfigurationMap(c.NodeLabels)
fs.Var(&bindableNodeLabels, "node-labels", "Additional node labels")
fs.Var(utiltaints.NewTaintsVar(&c.RegisterWithTaints), "register-with-taints", "Register the node with the given list of taints (comma separated \"<key>=<value>:<effect>\"). No-op if register-node is false.")
}
func (c *hollowNodeConfig) createClientConfigFromFile() (*restclient.Config, error) {
@ -113,6 +117,7 @@ func (c *hollowNodeConfig) createHollowKubeletOptions() *kubemark.HollowKubletOp
MaxPods: maxPods,
PodsPerCore: podsPerCore,
NodeLabels: c.NodeLabels,
RegisterWithTaints: c.RegisterWithTaints,
}
}

View File

@ -17,6 +17,7 @@ go_library(
"//cmd/kube-proxy/app:go_default_library",
"//cmd/kubelet/app:go_default_library",
"//cmd/kubelet/app/options:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/kubelet:go_default_library",
"//pkg/kubelet/apis/config:go_default_library",
"//pkg/kubelet/cadvisor:go_default_library",

View File

@ -28,6 +28,7 @@ import (
internalapi "k8s.io/cri-api/pkg/apis"
kubeletapp "k8s.io/kubernetes/cmd/kubelet/app"
"k8s.io/kubernetes/cmd/kubelet/app/options"
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/kubelet"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/pkg/kubelet/cadvisor"
@ -144,6 +145,7 @@ type HollowKubletOptions struct {
MaxPods int
PodsPerCore int
NodeLabels map[string]string
RegisterWithTaints []core.Taint
}
// Builds a KubeletConfiguration for the HollowKubelet, ensuring that the
@ -164,6 +166,7 @@ func GetHollowKubeletConfig(opt *HollowKubletOptions) (*options.KubeletFlags, *k
f.ContainerRuntimeOptions.ContainerRuntime = kubetypes.RemoteContainerRuntime
f.RegisterNode = true
f.RegisterSchedulable = true
f.RegisterWithTaints = opt.RegisterWithTaints
// Config struct
c, err := options.NewKubeletConfiguration()