Skip to content

Commit

Permalink
Fix remove binaries script for Amazon Linux and Flatcar (#1176)
Browse files Browse the repository at this point in the history
* Fix remove binaries script for Amazon Linux and Flatcar

* Stop Kubelet before removing it
* Force remove unit files
* Reload systemd after removing units

Without this, running apply after removing binaries wouldn't work
because systemd service would still exist, so apply assumes that kubelet
is installed. However, the binary is not available, which causes apply
to fail to determine the kubelet version.

Signed-off-by: Marko Mudrinić <mudrinic.mare@gmail.com>

* Update test fixtures

Signed-off-by: Marko Mudrinić <mudrinic.mare@gmail.com>
  • Loading branch information
xmudrii authored Nov 26, 2020
1 parent cbe8412 commit 60ca341
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
12 changes: 10 additions & 2 deletions pkg/scripts/os.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,19 +387,27 @@ sudo yum remove -y kubernetes-cni || true
`

removeBinariesAmazonLinuxScriptTemplate = `
# Stop kubelet
sudo systemctl stop kubelet || true
# Remove CNI and binaries
sudo rm -rf /opt/cni /opt/bin/kubeadm /opt/bin/kubectl /opt/bin/kubelet
# Remove symlinks
sudo rm -rf /usr/bin/kubeadm /usr/bin/kubectl /usr/bin/kubelet
# Remove systemd unit files
sudo rm /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo rm -f /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# Reload systemd
sudo systemctl daemon-reload
`

removeBinariesCoreOSScriptTemplate = `
# Stop kubelet
sudo systemctl stop kubelet || true
# Remove CNI and binaries
sudo rm -rf /opt/cni /opt/bin/kubeadm /opt/bin/kubectl /opt/bin/kubelet
# Remove systemd unit files
sudo rm /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo rm -f /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# Reload systemd
sudo systemctl daemon-reload
`

upgradeKubeadmAndCNICoreOSScriptTemplate = `
Expand Down
6 changes: 5 additions & 1 deletion pkg/scripts/testdata/TestRemoveBinariesAmazonLinux.golden
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
set -xeu pipefail
export "PATH=$PATH:/sbin:/usr/local/bin:/opt/bin"

# Stop kubelet
sudo systemctl stop kubelet || true
# Remove CNI and binaries
sudo rm -rf /opt/cni /opt/bin/kubeadm /opt/bin/kubectl /opt/bin/kubelet
# Remove symlinks
sudo rm -rf /usr/bin/kubeadm /usr/bin/kubectl /usr/bin/kubelet
# Remove systemd unit files
sudo rm /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo rm -f /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# Reload systemd
sudo systemctl daemon-reload
6 changes: 5 additions & 1 deletion pkg/scripts/testdata/TestRemoveBinariesCoreOS.golden
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
set -xeu pipefail
export "PATH=$PATH:/sbin:/usr/local/bin:/opt/bin"

# Stop kubelet
sudo systemctl stop kubelet || true
# Remove CNI and binaries
sudo rm -rf /opt/cni /opt/bin/kubeadm /opt/bin/kubectl /opt/bin/kubelet
# Remove systemd unit files
sudo rm /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo rm -f /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# Reload systemd
sudo systemctl daemon-reload

0 comments on commit 60ca341

Please sign in to comment.