Skip to content

Remove scylla 2024.1 and 2025.3 support - #4796

Merged
Michal-Leszczynski merged 19 commits into
masterfrom
ml/remove-2024-support
May 11, 2026
Merged

Remove scylla 2024.1 and 2025.3 support#4796
Michal-Leszczynski merged 19 commits into
masterfrom
ml/remove-2024-support

Conversation

@Michal-Leszczynski

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

Copy link
Copy Markdown
Collaborator

Even though scylla 2024.1 and 2025.3 are no longer supported, we still test against them in our CI.
The goal of this PR is to remove them from our CI runs, making it faster and less flaky, and to remove any codebase related to the no longer supported scylla 2024.1.

2024.1 is a problematic release, as it is the last one that might be operating on non raft schema / auth / service levels. Because of that, restore procedures for those entities were different for those versions.
Apart from that, there are also other scylla features which are now supported on all supported scylla versions, so this PR also removes their feature checks and assumes that they are always there.

This PR also adjusts the docs containing a lot of information related to workaround needed for scylla 2024.1.

When removing 2024.1 and 2025.3 from test matrix, this PR also added 2026.2.0-rc0 in their place.

@Michal-Leszczynski
Michal-Leszczynski marked this pull request as ready for review March 18, 2026 14:19
@Michal-Leszczynski Michal-Leszczynski changed the title Remove scylla 2024 support Remove scylla 2024.1 and 2025.3 support Apr 17, 2026
All supported scylla versions support raft read barrier api.
This commit cleans up the codebase according to this assumption.
All supported scylla versions store auth and service levels on raft,
so we no longer need to worry about actually used auth ks and
system_distributed.service_levels.
This commit cleans up the codebase according to this assumption.
This was missed when working on #4732.
It was fixed for regular restore, but we
forgot to include it for the 1-1-restore.
All supported scylla versions require raft schema.
This commit cleans up the codebase according to this assumption.

This results in removal of the entire codebase responsible for
restoring schema from sstables.

This commit removed TestRestoreTablesViewCQLSchemaIntegration and renamed
TestRestoreFullViewSSTableSchemaIntegration to TestRestoreFullViewIntegration,
because the original intention of those tests were to check view restoration
when their schema is restored from sstables or when it was manually recreated
with CQL. Since we only restore schema via CQL, those two tests becomes the
same scenario, so we can safely merge them into TestRestoreFullViewIntegration.

TestRestoreSchemaVersionedIntegration is just removed because
there is no such thing as schema versioning with CQL schema.
All supported scylla versions store auth and service levels on raft,
so we no longer need to worry about actually used auth ks and
system_distributed.service_levels.
This commit cleans up the codebase according to this assumption.
…able

All supported scylla support creating alternator gsi on existing table.
This commit cleans up the codebase according to this assumption.
All supported scylla versions require raft schema.
This commit cleans up the codebase according to this assumption.

This results in removal of the entire codebase responsible for
backing up schema from sstables.
All supported scylla versions support raft read barrier api.
This commit cleans up the codebase according to this assumption.
All supported scylla versions support backing up alternator schema from alternator api.
This commit cleans up the codebase according to this assumption.
All supported scylla support small table optimization.
This commit cleans up the codebase according to this assumption.
@Michal-Leszczynski
Michal-Leszczynski force-pushed the ml/remove-2024-support branch from ba80ea6 to ea1dea1 Compare May 7, 2026 14:35
@Michal-Leszczynski

Copy link
Copy Markdown
Collaborator Author

@karol-kokoszka @VAveryanov8 this is a needed, but lengthy PR (mostly code removal and version bumps). I tried to divide the changes into sensible commits to make it easier to review, but I can also replace this one PR with several smaller ones if that helps.

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 removes ScyllaDB 2024.1 and 2025.3 from the project’s CI/test matrix and simplifies the codebase by deleting version-conditional logic and workflows that only existed to support those no-longer-supported Scylla releases. It also updates docs to drop 2024.1-specific restore workarounds and adds 2026.2.0-rc0 CI coverage.

Changes:

  • Updated GitHub Actions integration-test workflows and the generated CI configuration to drop 2024.1/2025.3 and add 2026.2.0-rc0.
  • Simplified backup/restore/repair code paths by removing feature/version gating (e.g., schema-from-SSTables and several “supports X” checks).
  • Refreshed documentation and README badges to match the new supported/tested Scylla versions and restore behavior.

Reviewed changes

Copilot reviewed 58 out of 58 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
testing/Makefile Removes RAFT_SCHEMA plumbing and replication “upgrade” steps tied to older versions.
README.md Updates integration status table/badges to the new CI matrix.
pkg/testutils/db/db.go Removes 2024.1-specific Alternator commentary.
pkg/service/restore/worker.go Makes schema-file presence mandatory for schema restore and simplifies skip patterns.
pkg/service/restore/worker_views.go Removes NodeInfo dependency from Alternator view workers.
pkg/service/restore/testdata/get_target/default_values.units.json Updates golden testdata to reflect new unit filtering (drops system_auth/service_levels).
pkg/service/restore/testdata/get_target/continue_false.units.json Updates golden testdata to reflect new unit filtering (drops system_auth/service_levels).
pkg/service/restore/service_restore_integration_test.go Removes version-gated skips and prunes schema-restore scenarios/tests.
pkg/service/restore/schema_worker.go Removes schema-from-SSTables restore path; restores schema only from schema files.
pkg/service/restore/restore_integration_test.go Simplifies restore integration tests and removes version-gated paths.
pkg/service/restore/model.go Removes unused RunProgress helper.
pkg/service/restore/alternator.go Assumes supported Alternator capabilities (e.g., GSI create on existing tables).
pkg/service/repair/tablet/targetworker.go Removes tablet-repair support checks and relies on tablet keyspace discovery.
pkg/service/repair/tablet/service_integration_test.go Drops tablet-repair API gating in tests.
pkg/service/repair/service.go Simplifies tablet/vnode active-repair checks and host validation logic.
pkg/service/repair/service_repair_integration_test.go Updates repair integration tests to assume newer API behaviors.
pkg/service/repair/plan.go Removes API support flags for small-table/tablet repair (keeps incremental support).
pkg/service/repair/helper_integration_test.go Removes helper that checked tablet-repair support dynamically.
pkg/service/repair/generator.go Removes tablet load-balancing control logic and simplifies job-type selection.
pkg/service/one2onerestore/worker.go Removes safe-describe method plumbing and simplifies skip patterns.
pkg/service/one2onerestore/worker_views.go Always uses raft read-barrier API before reading schema.
pkg/service/one2onerestore/model.go Removes SafeDescribeMethod field from Host model.
pkg/service/backup/worker_schema.go Always backs up schema via DESCRIBE SCHEMA WITH INTERNALS + raft read barrier.
pkg/service/backup/worker_alternator.go Assumes Alternator schema backup via API when Alternator is enabled.
pkg/service/backup/service_backup_integration_test.go Updates tests to assume alternator schema backup is always present when Alternator enabled.
pkg/scyllaclient/client_scylla_integration_test.go Simplifies tablets option handling in ring/replication integration tests.
pkg/scyllaclient/client_agent.go Removes NodeInfo capability helpers tied to dropped Scylla versions/features.
pkg/scyllaclient/client_agent_test.go Removes unit tests for the deleted NodeInfo capability helpers.
pkg/command/backup/res.yaml Updates CLI help text to remove version-conditional wording about CQL credentials.
Makefile Removes RAFT_SCHEMA pass-through when starting dev env.
docs/source/sctool/partials/sctool_backup.yaml Updates docs text to remove version-conditional wording about CQL credentials.
docs/source/sctool/partials/sctool_backup_update.yaml Updates docs text to remove version-conditional wording about CQL credentials.
docs/source/restore/restore-tables.rst Removes pre-2025.1 Alternator GSI limitation note.
docs/source/restore/restore-schema.rst Renames/retitles restore-schema docs to remove version-specific framing.
docs/source/restore/old-restore-schema.rst Removes legacy restore-schema documentation for older Scylla versions.
docs/source/restore/index.rst Removes reference to deleted legacy restore-schema page.
docs/source/restore/examples.rst Updates examples to remove “restart required” follow-up for old restore flow.
docs/source/compatibility-matrix.rst Removes raft-schema warning include (matrix remains as the compatibility reference).
docs/source/common/restore-raft-schema-warn.rst Removes obsolete raft-schema restore warning snippet.
docs/source/backup/specification.rst Removes version-conditional statement about schema files being required.
docs/source/backup/index.rst Updates wording to state schema files are required for schema restore (without version gating).
.github/workflows/integration-tests-latest-IPV6-tablets-nossl-rclone-rclone.yaml Removes raft-schema input/wiring.
.github/workflows/integration-tests-latest-IPV4-native-native.yaml Removes raft-schema input/wiring.
.github/workflows/integration-tests-2026.2.0-rc0-IPV6-nossl-rclone-rclone.yaml Adds new 2026.2.0-rc0 CI workflow.
.github/workflows/integration-tests-2026.2.0-rc0-IPV4-tablets-rclone-native.yaml Replaces 2025.3.7 with 2026.2.0-rc0 and removes raft-schema wiring.
.github/workflows/integration-tests-2026.1.2-IPV6-nossl-rclone-rclone-localstorage.yaml Replaces 2025.3.7 with 2026.1.2, removes raft-schema wiring, sets localstorage provider.
.github/workflows/integration-tests-2026.1.2-IPV4-tablets-native-native.yaml Updates from 2026.1.0-rc2 to 2026.1.2 and removes raft-schema wiring.
.github/workflows/integration-tests-2026.1.0-rc2-IPV6-nossl-rclone-rclone-localstorage.yaml Removes obsolete 2026.1.0-rc2 workflow.
.github/workflows/integration-tests-2025.4.7-IPV6-tablets-nossl-rclone-rclone.yaml Updates from 2025.4.3 to 2025.4.7 and removes raft-schema wiring.
.github/workflows/integration-tests-2025.4.7-IPV4-native-rclone.yaml Updates from 2025.4.3 to 2025.4.7 and removes raft-schema wiring.
.github/workflows/integration-tests-2025.1.12-IPV6-tablets-nossl.yaml Updates from 2025.1.11 to 2025.1.12 and removes raft-schema wiring.
.github/workflows/integration-tests-2025.1.12-IPV4.yaml Updates from 2025.1.11 to 2025.1.12 and removes raft-schema wiring.
.github/workflows/integration-tests-2024.1.21-IPV6-raftschema-nossl.yaml Removes obsolete 2024.1.21 workflow.
.github/workflows/integration-tests-2024.1.21-IPV4.yaml Removes obsolete 2024.1.21 workflow.
.github/cfg/main.go Removes raft-schema dimension from integration test naming/config.
.github/cfg/integration-test-core.yaml Removes raft-schema input wiring from reusable workflow config.
.github/cfg/integration-test-cfg.yaml Updates the CI matrix versions and removes raft-schema entries.
.github/actions/test-setup/action.yml Removes raft-schema input and Makefile pass-through.
Comments suppressed due to low confidence (1)

pkg/service/repair/generator.go:190

  • In the job type selection switch, the len(ring.ReplicaTokens) == 1 && tp.Small branch is unreachable because tp.Small is matched by the previous case tp.Small. If mergeRangesJobType is still intended for the single-replicaTokens case, it should be checked before the generic tp.Small case (or the dead branch should be removed).

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

Comment thread pkg/service/repair/service.go Outdated
Comment thread pkg/service/restore/worker.go

@karol-kokoszka karol-kokoszka 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.

All supported scylla support tablet repair api.
This commit cleans up the codebase according to this assumption.
This commit removes unused version check methods that are no
longer needed after dropping support for scylla 2024.1 and 2025.3:
- SupportsRepairSmallTableOptimization
- SupportsTabletRepair
- SupportsSafeDescribeSchemaWithInternals
- SupportsAlternatorSchemaBackupFromAPI
- SupportsAlternatorCreateGSIOnExistingTable
Scylla 2024.1 is no longer supported, so it is removed from our docs.
There is no need to modify auth ks rf as it is now always
replicated with raft. Apart from removing no longer needed
RF upgrade of auth ks, this commit also removes the RF upgrade
of audit ks, as it's automatically upgraded starting from scylla 2024.2:
https://docs.scylladb.com/manual/stable/operating-scylla/security/auditing.html#configuring-audit-storage.
The no longer supported 2024.1 was the last version tested
against disabled raft schema, so we remove this parameter.
This commit:
- removes scylla 2024.1 from test matrix
- removes scylla 2025.3 from test matrix
- bumps scylla 2026.1.0-rc2 to 2026.1.2
- bumps scylla 2025.1.11 to 2025.1.12
- bumps scylla 2025.4.3 to 2025.4.7
- adds scylla 2026.2.0-rc1 to test matrix
cd .github/cfg && go run main.go

This commit additionally removes the outdated limitation from README.md:
"Restoration of schema containing **Alternator** tables is not supported"
ss this is already supported.
@Michal-Leszczynski

Copy link
Copy Markdown
Collaborator Author

Small changes:

  • addressed copilot comment about outdated comment about tablet repair api
  • bumped tested 2026.2.0-rc0 to 2026.2.0-rc1

@Michal-Leszczynski

Copy link
Copy Markdown
Collaborator Author

Encountered new failures against scylla nightly related to new changes on scylla master.
Added commits addressing them.

…tab and system_distributed_everywhere ks

Mentioned tab and ks will not be created on cluster startup starting
from scylla 2026.3 (already present on scylla master). This has been
implemented on the scylla side in:
scylladb/scylladb#29482.

This commit adjusts our golden files tests to no longer always expect them.

Refs scylladb/scylladb#29482.
@Michal-Leszczynski
Michal-Leszczynski merged commit 8f0485d into master May 11, 2026
56 checks passed
@Michal-Leszczynski
Michal-Leszczynski deleted the ml/remove-2024-support branch May 11, 2026 12:00
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.

3 participants