From 577b51666069a140072518c017ce497799faa2be Mon Sep 17 00:00:00 2001 From: Kimmo Lehto Date: Tue, 26 Aug 2025 16:06:26 +0300 Subject: [PATCH 1/4] Delete k0s binary from host after reset Signed-off-by: Kimmo Lehto --- phase/reset_controllers.go | 6 ++++++ phase/reset_leader.go | 6 ++++++ phase/reset_workers.go | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/phase/reset_controllers.go b/phase/reset_controllers.go index d139c69e..7f4e1d89 100644 --- a/phase/reset_controllers.go +++ b/phase/reset_controllers.go @@ -131,6 +131,12 @@ func (p *ResetControllers) Run(ctx context.Context) error { } log.Debugf("%s: removing config completed", h) + log.Debugf("%s: removing k0s binary...", h) + if dErr := h.Configurer.DeleteFile(h, h.Configurer.K0sBinaryPath()); dErr != nil { + log.Warnf("%s: failed to remove existing binary %s: %s", h, h.Configurer.K0sConfigPath(), dErr) + } + log.Debugf("%s: removing binary completed", h) + if len(h.Environment) > 0 { if err := h.Configurer.CleanupServiceEnvironment(h, h.K0sServiceName()); err != nil { log.Warnf("%s: failed to clean up service environment: %s", h, err.Error()) diff --git a/phase/reset_leader.go b/phase/reset_leader.go index cba736c0..67031708 100644 --- a/phase/reset_leader.go +++ b/phase/reset_leader.go @@ -71,6 +71,12 @@ func (p *ResetLeader) Run(ctx context.Context) error { } log.Debugf("%s: removing config completed", p.leader) + log.Debugf("%s: removing k0s binary...", p.leader) + if dErr := p.leader.Configurer.DeleteFile(p.leader, p.leader.Configurer.K0sBinaryPath()); dErr != nil { + log.Warnf("%s: failed to remove existing binary %s: %s", p.leader, p.leader.Configurer.K0sConfigPath(), dErr) + } + log.Debugf("%s: removing binary completed", p.leader) + if len(p.leader.Environment) > 0 { if err := p.leader.Configurer.CleanupServiceEnvironment(p.leader, p.leader.K0sServiceName()); err != nil { log.Warnf("%s: failed to clean up service environment: %s", p.leader, err.Error()) diff --git a/phase/reset_workers.go b/phase/reset_workers.go index 98d8bc68..580b3ed3 100644 --- a/phase/reset_workers.go +++ b/phase/reset_workers.go @@ -122,6 +122,12 @@ func (p *ResetWorkers) Run(ctx context.Context) error { } log.Debugf("%s: removing config completed", h) + log.Debugf("%s: removing k0s binary...", h) + if dErr := h.Configurer.DeleteFile(h, h.Configurer.K0sBinaryPath()); dErr != nil { + log.Warnf("%s: failed to remove existing binary %s: %s", h, h.Configurer.K0sConfigPath(), dErr) + } + log.Debugf("%s: removing binary completed", h) + if len(h.Environment) > 0 { if err := h.Configurer.CleanupServiceEnvironment(h, h.K0sServiceName()); err != nil { log.Warnf("%s: failed to clean up service environment: %s", h, err.Error()) From 6b210a175d26fa39536939abf40912dcb0f6bc76 Mon Sep 17 00:00:00 2001 From: Kimmo Lehto Date: Wed, 27 Aug 2025 14:59:20 +0300 Subject: [PATCH 2/4] Add some smoke checks/diagnostics Signed-off-by: Kimmo Lehto --- smoke-test/smoke-reset.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/smoke-test/smoke-reset.sh b/smoke-test/smoke-reset.sh index fa13f6e6..82843121 100755 --- a/smoke-test/smoke-reset.sh +++ b/smoke-test/smoke-reset.sh @@ -9,8 +9,27 @@ trap cleanup EXIT deleteCluster createCluster + +EXCLUDES='proc|sys|dev|tmp|run|var/log|var/cache' + +snapshot() { + bootloose ssh root@manager0 -- tree -af -I "$EXCLUDES" / \ + | sed 's/^[[:space:]│├└─]*//' \ + | sort +} + +echo "* File system snapshot" +snapshot > /tmp/tree_before.txt + echo "* Applying" ../k0sctl apply --config "${K0SCTL_CONFIG}" --debug echo "* Resetting" ../k0sctl reset --config "${K0SCTL_CONFIG}" --debug --force +echo "* Ensure binary was removed" +bootloose ssh root@manager0 -- '[ ! -f /usr/local/bin/k0s ]' +echo "* Second snapshot" +snapshot > /tmp/tree_after.txt +echo "* File system diff:" +diff -u /tmp/tree_before.txt /tmp/tree_after.txt || true + echo "* Done, cleaning up" From a5d449baf23ce896ad5946c2b4bcbeb550affd92 Mon Sep 17 00:00:00 2001 From: Kimmo Lehto Date: Wed, 27 Aug 2025 15:49:55 +0300 Subject: [PATCH 3/4] Fix diag Signed-off-by: Kimmo Lehto --- smoke-test/smoke-reset.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/smoke-test/smoke-reset.sh b/smoke-test/smoke-reset.sh index 82843121..f29968a0 100755 --- a/smoke-test/smoke-reset.sh +++ b/smoke-test/smoke-reset.sh @@ -10,10 +10,9 @@ trap cleanup EXIT deleteCluster createCluster -EXCLUDES='proc|sys|dev|tmp|run|var/log|var/cache' snapshot() { - bootloose ssh root@manager0 -- tree -af -I "$EXCLUDES" / \ + bootloose ssh root@manager0 -- tree -af -I "'proc|sys|dev|tmp|run|var/log|var/cache'" / \ | sed 's/^[[:space:]│├└─]*//' \ | sort } From 89707336c641ee75709a6daa5e1867aca6ab0f59 Mon Sep 17 00:00:00 2001 From: Kimmo Lehto Date: Wed, 27 Aug 2025 16:23:33 +0300 Subject: [PATCH 4/4] Treeless diag Signed-off-by: Kimmo Lehto --- smoke-test/smoke-reset.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/smoke-test/smoke-reset.sh b/smoke-test/smoke-reset.sh index f29968a0..bcfff3d1 100755 --- a/smoke-test/smoke-reset.sh +++ b/smoke-test/smoke-reset.sh @@ -12,9 +12,8 @@ createCluster snapshot() { - bootloose ssh root@manager0 -- tree -af -I "'proc|sys|dev|tmp|run|var/log|var/cache'" / \ - | sed 's/^[[:space:]│├└─]*//' \ - | sort + bootloose ssh root@manager0 -- \ + 'find / \( -path /proc -o -path /sys -o -path /dev -o -path /tmp -o -path /run -o -path /var/log -o -path /var/cache \) -prune -o -print 2>/dev/null | sort' } echo "* File system snapshot"