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

Change MB expire strategy #39

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

Change MB expire strategy #39

wants to merge 10 commits into from

Conversation

toshipp
Copy link
Contributor

@toshipp toshipp commented Sep 18, 2024

We designed MBC to handle the expiration of backups, but it is not good because MBC does not delete secondary MB if the network connection is disconnected. To fix this, we add an expire field to MB.

@toshipp toshipp changed the title Change expire strategy Change MB expire strategy Sep 18, 2024
@toshipp toshipp force-pushed the mb-expire branch 3 times, most recently from e50469b to 37b8a40 Compare September 18, 2024 10:38
We designed MantleBackupConfig expires MantleBackup, but it was not good
because replicated MantleBackups on the secondary will not be able to
expired if the primary and the secondary are disconnected.  To fix this,
we introduce Expire on the MB itself.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
The expiration duration can now be given in the MB spec, set it
according to MBC spec.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
MantleBackup can be created manually, so it's not necessary to inherit
validation from MantleBackupConfig. However, there's no reason to change
it, so we'll use the same validation.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
It intends to replace executeCommand in mantlebackup_controller.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
The previous code simulates the executeCommand function and sets static
timestamps for RBD snapshots. This approach poses a problem for
implementing expiration, as all MantleBackup resources would expire
during testing if the timestamps become outdated. To address this, we
need to create a more realistic fake CephCmd and use it.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
The expiration is done by reconciler if already expired. Otherwise
schedule expiration by requesting GenericEvents instead of using requeue
provided by controller-runtime. It is because we don't want to exit the
reconciler to do other tasks.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
It should be also implemented in MB reconciler as well as expiration.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
The expiration is done by MB reconciler, delete the function from the
sub command. Now the command name becomes backup.

Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
Signed-off-by: Toshikuni Fukaya <toshikuni-fukaya@cybozu.co.jp>
@toshipp toshipp marked this pull request as ready for review October 4, 2024 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant