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

[ENH] - Backup and restore CLI Interface #2293

Closed
pt247 opened this issue Mar 6, 2024 · 4 comments
Closed

[ENH] - Backup and restore CLI Interface #2293

pt247 opened this issue Mar 6, 2024 · 4 comments
Labels
area:backup-and-restore 💾 All items related to backup and restore

Comments

@pt247
Copy link
Contributor

pt247 commented Mar 6, 2024

Feature description

This ticket is the first step in creating a reliable backup and restore service for Nebari.
This ticket is an attempt to propose CLI interface for backup.

There are several sub components of backup and restore CLI.

  1. NFS
  2. KeyCloak
  3. CondaStore
  4. And a few more

Initially, we will be exposing the backup functionality in Nebari CLI.

Interface

Backup nebari

Save all components of Nebari

nebari backup --backup-location <BACKUP_LOCATION>

Backup:

<BACKUP LOCATION>/<YYYY-MM-DD:HH:mm:ss>/nebari-config.yaml
<BACKUP LOCATION>/<YYYY-MM-DD:HH:mm:ss>/NFS/keycloak/
<BACKUP LOCATION>/<YYYY-MM-DD:HH:mm:ss>/NFS/user_data/
...

Backup User data (Notebooks)

Backup user data Jupyter notebooks and associated files in NFS share.

nebari backup user-data --backup-location <BACKUP_LOCATION>

Location: <BACKUP LOCATION>/<YYYY-MM-DD:HH:mm:ss>/NFS/user_data/

Backup User credentials (Keycloak)

Backup user data Jupyter notebooks and associated files in NFS share.

nebari backup user-creds --backup-location <BACKUP_LOCATION>

Location: <BACKUP LOCATION>/<YYYY-MM-DD:HH:mm:ss>/NFS/keycloak/

Restore

Restore Nebari from a snapshot.

nebari restore user-data --backup-location <BACKUP_LOCATION>

Location: <BACKUP LOCATION>/<YYYY-MM-DD:HH:mm:ss>/

Value and/or benefit

Once we agree on CLI interface we can keep on extending it for all the components that need backing up.
One suggestion is that we start with just backing up the nebari-config.yaml.

Anything else?

No response

@pt247 pt247 added the area:backup-and-restore 💾 All items related to backup and restore label Mar 7, 2024
@pt247 pt247 changed the title [ENH] - Backup CLI Interface [ENH] - Backup and restore CLI Interface Mar 19, 2024
@pt247
Copy link
Contributor Author

pt247 commented Mar 19, 2024

Notes:

  • We must understand and define the consequences of backing up components individually.
  • We could have a slim backup version later.
  • We don't need to update the documentation for each verb before the final CLI is ready.
  • We need to decide where the backup and restore needs to run. Local vs K8.
  • For the POC we should do it on K8.
  • Ideally, if some use the ML Flow component, they should be able to write an ML Flow backup.
  • We could create a backup controller interface and extend it with each plugin.

@pt247
Copy link
Contributor Author

pt247 commented Mar 19, 2024

Next steps:

  1. Add a ticket for backup controller. Possibly extend this ticket. can also write metadata files.
  2. Refine all tickets to he point where they can be estimated.
  3. Create a request for discussion in Nebari.

@pt247 pt247 closed this as completed Jun 18, 2024
@pt247
Copy link
Contributor Author

pt247 commented Jun 18, 2024

Closing in favor of #2518

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:backup-and-restore 💾 All items related to backup and restore
Projects
Development

No branches or pull requests

1 participant