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()) diff --git a/smoke-test/smoke-reset.sh b/smoke-test/smoke-reset.sh index fa13f6e6..bcfff3d1 100755 --- a/smoke-test/smoke-reset.sh +++ b/smoke-test/smoke-reset.sh @@ -9,8 +9,25 @@ trap cleanup EXIT deleteCluster createCluster + + +snapshot() { + 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" +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"