diff --git a/pkg/scripts/kubeadm.go b/pkg/scripts/kubeadm.go index 64eeb7a2f..26c88113a 100644 --- a/pkg/scripts/kubeadm.go +++ b/pkg/scripts/kubeadm.go @@ -57,8 +57,8 @@ var ( sudo rm -rf /etc/kubeone `) - kubeadmUpgradeLeaderScriptTemplate = heredoc.Doc(` - sudo {{ .KUBEADM_UPGRADE }} --config={{ .WORK_DIR }}/cfg/master_0.yaml + kubeadmUpgradeScriptTemplate = heredoc.Doc(` + sudo {{ .KUBEADM_UPGRADE }}{{ if .LEADER }} --config={{ .WORK_DIR }}/cfg/master_{{ .NODE_ID }}.yaml{{ end }} `) kubeadmPauseImageVersionScriptTemplate = heredoc.Doc(` @@ -110,10 +110,12 @@ func KubeadmReset(verboseFlag, workdir string) (string, error) { }) } -func KubeadmUpgradeLeader(kubeadmCmd, workdir string) (string, error) { - return Render(kubeadmUpgradeLeaderScriptTemplate, map[string]interface{}{ +func KubeadmUpgrade(kubeadmCmd, workdir string, leader bool, nodeID int) (string, error) { + return Render(kubeadmUpgradeScriptTemplate, map[string]interface{}{ "KUBEADM_UPGRADE": kubeadmCmd, "WORK_DIR": workdir, + "NODE_ID": nodeID, + "LEADER": leader, }) } diff --git a/pkg/scripts/kubeadm_test.go b/pkg/scripts/kubeadm_test.go index 4d73e857a..71a771148 100644 --- a/pkg/scripts/kubeadm_test.go +++ b/pkg/scripts/kubeadm_test.go @@ -245,12 +245,13 @@ func TestKubeadmReset(t *testing.T) { } } -func TestKubeadmUpgradeLeader(t *testing.T) { +func TestKubeadmUpgrade(t *testing.T) { t.Parallel() type args struct { kubeadmCmd string workdir string + leader bool } tests := []struct { name string @@ -261,7 +262,15 @@ func TestKubeadmUpgradeLeader(t *testing.T) { name: "v1beta2", args: args{ workdir: "test-wd", - kubeadmCmd: "kubeadm upgrade node --certificate-renewal=true", + kubeadmCmd: "kubeadm upgrade node", + }, + }, + { + name: "leader", + args: args{ + workdir: "some", + kubeadmCmd: "kubeadm upgrade apply -y --certificate-renewal=true v1.1.1", + leader: true, }, }, } @@ -269,7 +278,7 @@ func TestKubeadmUpgradeLeader(t *testing.T) { for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T) { - got, err := KubeadmUpgradeLeader(tt.args.kubeadmCmd, tt.args.workdir) + got, err := KubeadmUpgrade(tt.args.kubeadmCmd, tt.args.workdir, tt.args.leader, 0) if err != tt.err { t.Errorf("KubeadmUpgradeLeader() error = %v, wantErr %v", err, tt.err) return diff --git a/pkg/scripts/os.go b/pkg/scripts/os.go index f417b30ad..961f053e4 100644 --- a/pkg/scripts/os.go +++ b/pkg/scripts/os.go @@ -34,7 +34,6 @@ var migrateToContainerdScriptTemplate = heredoc.Doc(` sudo docker ps -qa | xargs sudo docker rm || true {{ template "container-runtime-daemon-config" . }} - {{ template "containerd-systemd-environment" . }} {{ if .IS_FLATCAR -}} {{ template "flatcar-systemd-drop-in" . }} {{ end -}} diff --git a/pkg/scripts/proxy.go b/pkg/scripts/proxy.go index 507d74f3a..2cdc31f88 100644 --- a/pkg/scripts/proxy.go +++ b/pkg/scripts/proxy.go @@ -21,25 +21,21 @@ import ( ) const ( - daemonsProxyScript = ` -sudo mkdir -p /etc/systemd/system/docker.service.d -cat </dev/null; then sudo systemctl restart docker; fi -if sudo systemctl status kubelet &>/dev/null; then sudo systemctl restart kubelet; fi +{{- range .SYSTEMD_SERVICES }} +if sudo systemctl status {{ . }} &>/dev/null; then sudo systemctl restart {{ . }}; fi +{{- end }} ` - environmentFileCmd = ` + environmentFileScriptTemplate = ` sudo mkdir -p /etc/kubeone cat </dev/null; then sudo systemctl restart docker; fi +if sudo systemctl status containerd &>/dev/null; then sudo systemctl restart containerd; fi if sudo systemctl status kubelet &>/dev/null; then sudo systemctl restart kubelet; fi diff --git a/pkg/scripts/testdata/TestUpgradeKubeadmAndCNIAmazonLinux.golden b/pkg/scripts/testdata/TestUpgradeKubeadmAndCNIAmazonLinux.golden index 6ccc9dd6c..a534b93c1 100644 --- a/pkg/scripts/testdata/TestUpgradeKubeadmAndCNIAmazonLinux.golden +++ b/pkg/scripts/testdata/TestUpgradeKubeadmAndCNIAmazonLinux.golden @@ -96,13 +96,6 @@ cat <