Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix deletion of persistent data with k0s reset #5193

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

ncopa
Copy link
Collaborator

@ncopa ncopa commented Nov 8, 2024

Make sure that we don't have anything mounted under those directories so we don't delete persistent data.

We do this py parsing /proc/mounts in reverse order as it is listed in mount order, and then we unmount anything that is under our directories before we delete them.

Don't umount datadir itself if it is on a separate partition/mount

Fixes #4318

Description

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

  • Manual test
  • Auto test added

Checklist:

  • My code follows the style guidelines of this project
  • My commit messages are signed-off
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules
  • I have checked my code and corrected any misspellings

@ncopa ncopa requested review from a team as code owners November 8, 2024 09:50
@ncopa ncopa requested review from kke and makhov November 8, 2024 09:50
@ncopa ncopa marked this pull request as draft November 8, 2024 09:50
@ncopa ncopa changed the title Fix deletion of data and kube root dirs Fix deletion of persistent data with k0s reset Nov 8, 2024
@ncopa ncopa marked this pull request as ready for review November 8, 2024 16:04
@ncopa
Copy link
Collaborator Author

ncopa commented Nov 8, 2024

This superseeds #5187

ncopa and others added 2 commits November 8, 2024 17:12
Make sure that we don't have anything mounted under those directories so
we don't delete persistent data.

We do this py parsing /proc/mounts in reverse order as it is listed in
mount order, and then we unmount anything that is under our directories
before we delete them.

Don't umount datadir itself if it is on a separate partition/mount

Fixes k0sproject#4318

Signed-off-by: Natanael Copa <[email protected]>
Add a script to the reset integration test that tries to clutter the
data directory by placing files and directories with odd permissions,
adding symlinks to stuff outside the data directory, and adding bind
mounts in various ways.

This is to prove that k0's reset will never delete anything that is not
beneath the data directory.

Signed-off-by: Tom Wieczorek <[email protected]>
@ncopa ncopa added bug Something isn't working backport/release-1.29 PR that needs to be backported/cherrypicked to the release-1.29 branch backport/release-1.30 PR that needs to be backported/cherrypicked to the release-1.30 branch backport/release-1.31 PR that needs to be backported/cherrypicked to the release-1.31 branch labels Nov 8, 2024
@ncopa ncopa requested a review from twz123 November 8, 2024 16:23
k0s reset will delete any leftovers safely when deleting directories.

Signed-off-by: Natanael Copa <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/release-1.29 PR that needs to be backported/cherrypicked to the release-1.29 branch backport/release-1.30 PR that needs to be backported/cherrypicked to the release-1.30 branch backport/release-1.31 PR that needs to be backported/cherrypicked to the release-1.31 branch bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

k0s reset deleted all data on persistent volumes
2 participants