From 3da730452fc7042cc83394cb82fa15b8e464f0a6 Mon Sep 17 00:00:00 2001 From: liujian Date: Mon, 29 May 2023 18:20:12 +0800 Subject: [PATCH 1/2] feat: support kubelet start arguments with `kubeletArgs` --- Makefile | 2 +- cmd/kk/pkg/kubernetes/tasks.go | 1 + cmd/kk/pkg/kubernetes/templates/kubelet_env.go | 2 +- docs/config-example.md | 4 ++++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7d8d0767..2ee25be5 100644 --- a/Makefile +++ b/Makefile @@ -241,7 +241,7 @@ verify-gen: generate ## Verify go generated files are up to date .PHONY: kk kk: - CGO_ENABLED=0 go build -trimpath -tags "$(BUILDTAGS)" -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/kk github.com/kubesphere/kubekey/v3/cmd/kk; + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -tags "$(BUILDTAGS)" -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/kk github.com/kubesphere/kubekey/v3/cmd/kk; ALL_MANAGERS = capkk k3s-bootstrap k3s-control-plane diff --git a/cmd/kk/pkg/kubernetes/tasks.go b/cmd/kk/pkg/kubernetes/tasks.go index 4ae9e271..4f83aacf 100644 --- a/cmd/kk/pkg/kubernetes/tasks.go +++ b/cmd/kk/pkg/kubernetes/tasks.go @@ -191,6 +191,7 @@ func (g *GenerateKubeletEnv) Execute(runtime connector.Runtime) error { "NodeIP": host.GetInternalAddress(), "Hostname": host.GetName(), "ContainerRuntime": "", + "KubeletArgs": g.KubeConf.Cluster.Kubernetes.KubeletArgs, }, } diff --git a/cmd/kk/pkg/kubernetes/templates/kubelet_env.go b/cmd/kk/pkg/kubernetes/templates/kubelet_env.go index 08144772..e5170eff 100644 --- a/cmd/kk/pkg/kubernetes/templates/kubelet_env.go +++ b/cmd/kk/pkg/kubernetes/templates/kubelet_env.go @@ -32,7 +32,7 @@ EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. EnvironmentFile=-/etc/default/kubelet -Environment="KUBELET_EXTRA_ARGS=--node-ip={{ .NodeIP }} --hostname-override={{ .Hostname }} {{ if .ContainerRuntime }}--network-plugin=cni{{ end }}" +Environment="KUBELET_EXTRA_ARGS=--node-ip={{ .NodeIP }} --hostname-override={{ .Hostname }} {{ if .ContainerRuntime }}--network-plugin=cni{{ end }} {{range .KubeletArgs }} {{.}}{{ end }}" ExecStart= ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS `))) diff --git a/docs/config-example.md b/docs/config-example.md index 1bbcede5..54dce754 100644 --- a/docs/config-example.md +++ b/docs/config-example.md @@ -55,6 +55,10 @@ spec: #skipConfigureOS: true # Do not pre-configure the host OS (e.g. kernel modules, /etc/hosts, sysctl.conf, NTP servers, etc). You will have to set these things up via other methods before using KubeKey. kubernetes: + #kubelet start arguments + #kubeletArgs: + # Directory path for managing kubelet files (volume mounts, etc). + # - --root-dir=/var/lib/kubelet version: v1.21.5 # Optional extra Subject Alternative Names (SANs) to use for the API Server serving certificate. Can be both IP addresses and DNS names. apiserverCertExtraSans: From bf7ba552157270b2baca69f4499d12ae6c397f73 Mon Sep 17 00:00:00 2001 From: liujian Date: Mon, 29 May 2023 18:37:10 +0800 Subject: [PATCH 2/2] feat: support kubelet start arguments with `kubeletArgs` --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2ee25be5..7d8d0767 100644 --- a/Makefile +++ b/Makefile @@ -241,7 +241,7 @@ verify-gen: generate ## Verify go generated files are up to date .PHONY: kk kk: - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -tags "$(BUILDTAGS)" -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/kk github.com/kubesphere/kubekey/v3/cmd/kk; + CGO_ENABLED=0 go build -trimpath -tags "$(BUILDTAGS)" -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/kk github.com/kubesphere/kubekey/v3/cmd/kk; ALL_MANAGERS = capkk k3s-bootstrap k3s-control-plane