Skip to content

Last nits for native backup/restore release - #4788

Merged
Michal-Leszczynski merged 5 commits into
masterfrom
ml/4728-adjust-s3-ose-parsing
Mar 13, 2026
Merged

Last nits for native backup/restore release#4788
Michal-Leszczynski merged 5 commits into
masterfrom
ml/4728-adjust-s3-ose-parsing

Conversation

@Michal-Leszczynski

@Michal-Leszczynski Michal-Leszczynski commented Mar 12, 2026

Copy link
Copy Markdown
Collaborator

This PR adds the last missing parts for official support of:

  • native backup for gs
  • native restore

Fixes #4588
Fixes #4728
Fixes #4606

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the native backup/restore feature for release by enabling the native restore API support (>= 2026.1), updating the Scylla object storage endpoint configuration to use a new URL-based format (with legacy support), improving endpoint matching logic, and refreshing documentation.

Changes:

  • Enables SupportsNativeRestoreAPI for Scylla >= 2026.1 (previously always returned false) and updates endpoint comparison to use a new fillDefaultSchemeAndPort normalization function that supports both legacy and new URL-based endpoint formats.
  • Updates Scylla config and Makefile to use the new object_storage_endpoints format with type: s3 and full URL names instead of separate port/https fields.
  • Adds new native-restore.rst documentation page and updates CLI help text for the --method flag across restore commands.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pkg/scyllaclient/client_agent.go Enables native restore for >= 2026.1, refactors endpoint matching with fillDefaultSchemeAndPort, adds legacy format support
pkg/scyllaclient/client_agent_test.go Adds test cases for new URL-based endpoint matching (scheme, port, IPv6)
pkg/service/restore/restore_integration_test.go Updates test to use ni.SupportsNativeRestoreAPI() and corrects MethodAuto expected path to native
testing/Makefile Replaces MINIO_HOST with OBJECT_STORAGE_ENDPOINT using full URL
testing/scylla/config/scylla.yaml Updates object_storage_endpoints to new type: s3 format
pkg/command/restore/res.yaml Rewrites --method flag help text
docs/source/sctool/partials/sctool_restore.yaml Updates --method usage docs
docs/source/sctool/partials/sctool_restore_update.yaml Updates --method usage docs
docs/source/restore/native-restore.rst New documentation page for native restore
docs/source/restore/index.rst Adds native-restore to toctree
docs/source/backup/native-backup.rst Updates native backup docs for GCS support and new endpoint format

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/command/restore/res.yaml Outdated
Comment thread docs/source/sctool/partials/sctool_restore_update.yaml Outdated
Comment thread docs/source/sctool/partials/sctool_restore.yaml Outdated
@Michal-Leszczynski
Michal-Leszczynski force-pushed the ml/4728-adjust-s3-ose-parsing branch 2 times, most recently from 16782e7 to d9e13cc Compare March 12, 2026 15:56
This commit makes it so both old and new s3 object storage formats
are parsed and compared correctly. To do that, a new helper function
fillDefaultSchemeAndPort was added which simplifies the default scheme
and port handling by expanding provided endpoint with them. It's also
used to make gs endpoint comparison more robust.

Fixes #4728
@Michal-Leszczynski
Michal-Leszczynski force-pushed the ml/4728-adjust-s3-ose-parsing branch 2 times, most recently from bac591b to c6fe87f Compare March 12, 2026 16:08
@Michal-Leszczynski
Michal-Leszczynski force-pushed the ml/4728-adjust-s3-ose-parsing branch from c6fe87f to ef24308 Compare March 12, 2026 17:37
@Michal-Leszczynski
Michal-Leszczynski marked this pull request as ready for review March 13, 2026 09:21
@Michal-Leszczynski

Copy link
Copy Markdown
Collaborator Author

Added small commit adding SM 3.9 to compatibility matrix.

Comment thread docs/source/restore/native-restore.rst Outdated

@VAveryanov8 VAveryanov8 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment thread pkg/service/restore/restore_integration_test.go Outdated
This commit marks native restore as production ready for scylla 2026.1,
meaning that --method=auto can start using it when other conditions
are met.

Additionally, this commit refactors TestRestoreTablesMethodIntegration
so that it's easier to see what scenarios are validated. To have a better
structure, TestRestoreTablesMethodIntegration and TestRestoreFullChangingMethodIntegration
were moved to separate test file.
@Michal-Leszczynski
Michal-Leszczynski force-pushed the ml/4728-adjust-s3-ose-parsing branch from f69c560 to 2483fa6 Compare March 13, 2026 15:32
Native backup for gs is supported starting from scylla 2026.1,
so we should reflect it in our docs. This commit also fixes broken
link and ajdusts example s3 object storage endpoint to the new format.
This commit adds native restore page similar to the native backup one.
It also adjusts --method flag description so that it points
to the newly created page.

Fixes #4606
@Michal-Leszczynski
Michal-Leszczynski force-pushed the ml/4728-adjust-s3-ose-parsing branch from 2483fa6 to 12aa51a Compare March 13, 2026 15:57
@Michal-Leszczynski
Michal-Leszczynski merged commit b54547a into master Mar 13, 2026
66 checks passed
@Michal-Leszczynski
Michal-Leszczynski deleted the ml/4728-adjust-s3-ose-parsing branch March 13, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adjust object_storage_endpoints parsing to the new format Document native restore Support GCP in native backup/restore

4 participants