Skip to content

Conversation

rzetelskik
Copy link
Member

@rzetelskik rzetelskik commented Aug 20, 2025

Description of your changes: Following the enhancement proposal, this PR extends the NodeConfig API with support for node-level kernel parameter configuration (sysctls). This bridges the feature gap between v1.ScyllaCluster and v1alpha1.ScyllaDBCluster APIs. ScyllaCluster.scylla.scylladb.com/v1.spec.sysctls is simultaneously deprecated.

Which issue is resolved by this Pull Request:
Resolves #2457

/kind feature
/priority important-soon

Copy link
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@scylla-operator-bot scylla-operator-bot bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Aug 20, 2025
@rzetelskik rzetelskik force-pushed the nodeconfig-sysctls branch 2 times, most recently from dad4af7 to 2f13aea Compare August 20, 2025 13:03
@rzetelskik
Copy link
Member Author

/test all

@scylla-operator-bot scylla-operator-bot bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 20, 2025
@scylla-operator-bot scylla-operator-bot bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Aug 20, 2025
@scylla-operator-bot scylla-operator-bot bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Aug 21, 2025
@rzetelskik
Copy link
Member Author

/test all

@rzetelskik rzetelskik requested a review from Copilot August 21, 2025 07:19
Copy link

@Copilot Copilot AI left a comment

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 extends the NodeConfig functionality to support kernel parameter (sysctl) configuration, providing a modern replacement for the deprecated ScyllaCluster.spec.sysctls field. The implementation adds new APIs, validation, job execution logic, and deprecation warnings.

  • Adds sysctls field to NodeConfig spec for kernel parameter configuration
  • Implements validation for sysctl names and prevents duplicates
  • Creates dedicated jobs and RBAC resources for applying sysctls on nodes
  • Deprecates ScyllaCluster.spec.sysctls with proper warnings and migration path

Reviewed Changes

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

Show a summary per file
File Description
pkg/api/scylla/v1alpha1/types_nodeconfig.go Adds sysctls field to NodeConfig spec
pkg/api/scylla/validation/nodeconfig_validation.go Implements sysctl validation logic
pkg/controller/nodetune/resource.go Creates sysctls job generation and execution logic
pkg/controller/nodeconfig/resource.go Adds RBAC resources for sysctls service account
pkg/naming/constants.go Defines new job types and service account names
test/e2e/set/scyllacluster/scyllacluster_webhooks.go Tests deprecation warnings for ScyllaCluster sysctls
test/e2e/set/nodeconfig/nodeconfig_optimizations.go E2E tests for NodeConfig sysctls functionality

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@scylla-operator-bot scylla-operator-bot bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Aug 21, 2025
@rzetelskik
Copy link
Member Author

/test all

@scylla-operator-bot scylla-operator-bot bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Aug 25, 2025
@rzetelskik rzetelskik changed the title [WIP] Extend node tuning with kernel parameter configuration (sysctls) Extend node tuning with kernel parameter configuration (sysctls) Aug 25, 2025
@scylla-operator-bot scylla-operator-bot bot removed the lgtm Indicates that a PR is ready to be merged. label Sep 8, 2025
@rzetelskik
Copy link
Member Author

Had to update managed-hash annotations in unit tests after #2940 merged.

@rzetelskik
Copy link
Member Author

@rzetelskik: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gke-release-script-latest 5b5b797 link true /test e2e-gke-release-script-latest
ci/prow/e2e-gke-parallel-clusterip 08fb859 link unknown /test e2e-gke-parallel-clusterip
ci/prow/e2e-gke-multi-datacenter-parallel 90b65e0 link true /test e2e-gke-multi-datacenter-parallel
Full PR test history. Your PR dashboard.

cluster provisioning failed
/test images
/retest

Copy link
Collaborator

@mflendrich mflendrich left a comment

Choose a reason for hiding this comment

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

/lgtm
assuming prior lgtm and only a rebase happening between the previous lgtm and now 👍

@scylla-operator-bot scylla-operator-bot bot added the lgtm Indicates that a PR is ready to be merged. label Sep 8, 2025
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: czeslavo, mflendrich, rzetelskik

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [mflendrich,rzetelskik]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@rzetelskik
Copy link
Member Author

/test images
/retest

@rzetelskik
Copy link
Member Author

/retest

@rzetelskik
Copy link
Member Author

/test images
/retest

@rzetelskik
Copy link
Member Author

@rzetelskik: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gke-release-script-latest 5b5b797 link true /test e2e-gke-release-script-latest
ci/prow/e2e-gke-multi-datacenter-parallel 90b65e0 link true /test e2e-gke-multi-datacenter-parallel
Full PR test history. Your PR dashboard.

/test images
/retest

@rzetelskik
Copy link
Member Author

@rzetelskik: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gke-release-script-latest 5b5b797 link true /test e2e-gke-release-script-latest
ci/prow/e2e-gke-multi-datacenter-parallel 90b65e0 link true /test e2e-gke-multi-datacenter-parallel
Full PR test history. Your PR dashboard.

/test images
/retest

@rzetelskik
Copy link
Member Author

@rzetelskik: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gke-release-script-latest 5b5b797 link true /test e2e-gke-release-script-latest
ci/prow/e2e-gke-multi-datacenter-parallel 90b65e0 link unknown /test e2e-gke-multi-datacenter-parallel

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

/retest

@rzetelskik
Copy link
Member Author

/test images
/retest

Copy link
Contributor

@rzetelskik: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gke-release-script-latest 5b5b797 link true /test e2e-gke-release-script-latest
ci/prow/e2e-gke-multi-datacenter-parallel 90b65e0 link true /test e2e-gke-multi-datacenter-parallel

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/feature Categorizes issue or PR as related to a new feature. lgtm Indicates that a PR is ready to be merged. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Set up sysctls when tuning nodes
3 participants