Skip to content

[docs] Add SchedulingClass operations guide#455

Merged
lllamnyp merged 1 commit intomainfrom
feat/cozystack-scheduler
Mar 18, 2026
Merged

[docs] Add SchedulingClass operations guide#455
lllamnyp merged 1 commit intomainfrom
feat/cozystack-scheduler

Conversation

@lllamnyp
Copy link
Copy Markdown
Member

@lllamnyp lllamnyp commented Mar 18, 2026

Document the new SchedulingClass feature for restricting tenant workloads to specific nodes or failure domains. Covers the cozystack-scheduler installation, SchedulingClass CRD spec with examples (datacenter pinning, zone spreading, dedicated nodes), tenant assignment, auto-populated label selectors, and verification steps.

Requires Cozystack v1.2+ and cozystack-scheduler v0.2.0+.

Summary by CodeRabbit

  • Documentation
    • Added new comprehensive documentation for Scheduling Classes, including detailed coverage of the SchedulingClass custom resource specification, webhook and scheduler architecture, Cozystack scheduler integration details, installation and configuration prerequisites, step-by-step setup instructions, practical configuration examples for nodeSelector, nodeAffinity, podAffinity, podAntiAffinity, and topologySpreadConstraints, tenant assignment procedures, automatic label selector population behavior, operator compatibility information, and verification commands.

Document the new SchedulingClass feature for restricting tenant workloads
to specific nodes or failure domains. Covers the cozystack-scheduler
installation, SchedulingClass CRD spec with examples (datacenter pinning,
zone spreading, dedicated nodes), tenant assignment, auto-populated label
selectors, and verification steps.

Requires Cozystack v1.2+ and cozystack-scheduler v0.2.0+.

Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lllamnyp lllamnyp requested a review from kvaps as a code owner March 18, 2026 15:32
@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 18, 2026

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 2299a10
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/69bac59254b36000088b740a
😎 Deploy Preview https://deploy-preview-455--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 18, 2026

📝 Walkthrough

Walkthrough

A new documentation page for SchedulingClass is added, covering the custom resource definition, mutating webhook behavior, Cozystack scheduler integration, prerequisites, installation instructions, configuration examples, auto-populated label selectors, and verification procedures.

Changes

Cohort / File(s) Summary
Documentation
content/en/docs/v1/operations/scheduling-classes.md
New comprehensive guide documenting SchedulingClass CR, webhook architecture, scheduler integration, installation steps, configuration examples for nodeSelector, affinities, topologySpreadConstraints, and verification commands.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A new page hops into the docs so bright,
SchedulingClass wisdom, documented just right,
Webhooks and schedulers dance in the light,
With examples and steps to guide every sight,
The warren's operations now gleaming and tight! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title '[docs] Add SchedulingClass operations guide' clearly and concisely summarizes the main change: adding documentation for SchedulingClass operations, which aligns perfectly with the changeset adding a new documentation page.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/cozystack-scheduler
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new documentation page that guides users on how to use the SchedulingClass feature in Cozystack. The guide explains how to configure and use SchedulingClasses to manage tenant workload placement, covering prerequisites, installation, configuration examples, and verification steps.

Highlights

  • SchedulingClass Documentation: This PR adds a new documentation page detailing the SchedulingClass feature for Cozystack, which allows restricting tenant workloads to specific nodes or failure domains.
  • Feature Coverage: The documentation covers the installation of cozystack-scheduler, the SchedulingClass CRD specification with examples (datacenter pinning, zone spreading, dedicated nodes), tenant assignment, auto-populated label selectors, and verification steps.
  • Prerequisites: The guide specifies that Cozystack v1.2+ and cozystack-scheduler v0.2.0+ are required to use the SchedulingClass feature.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds a comprehensive guide for the new SchedulingClass feature. The documentation is well-structured, clear, and provides useful examples and verification steps. I have one suggestion to improve consistency in how the auto-populated label selectors are documented, which will enhance clarity for the user.

Comment on lines +81 to +82
the workload's Cozystack application identity labels (`apps.cozystack.io/application.group`,
`.kind`, `.name`). This means you can define generic spreading or anti-affinity
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

For clarity and consistency, it's better to list the full label keys here. The use of .kind and .name is confusing and inconsistent with the 'Auto-populated label selectors' section later in the document (lines 152-154), which lists the full keys. Using the full keys here will prevent any ambiguity for the reader.

Suggested change
the workload's Cozystack application identity labels (`apps.cozystack.io/application.group`,
`.kind`, `.name`). This means you can define generic spreading or anti-affinity
the workload's Cozystack application identity labels (`apps.cozystack.io/application.group`, `apps.cozystack.io/application.kind`, `apps.cozystack.io/application.name`). This means you can define generic spreading or anti-affinity

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/en/docs/v1/operations/scheduling-classes.md`:
- Around line 79-83: The note uses ambiguous shorthand for Cozystack application
identity labels; update the sentence that lists
`apps.cozystack.io/application.group`, `.kind`, `.name` so it explicitly names
the full label keys instead of shorthand. Replace the shorthand with the full
keys `apps.cozystack.io/application.group`,
`apps.cozystack.io/application.kind`, and `apps.cozystack.io/application.name`
wherever the note mentions labelSelector or topologySpreadConstraint to match
the later documentation and ensure copy/paste safety.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2f28a5ca-133b-4466-8ea1-17a808c4176e

📥 Commits

Reviewing files that changed from the base of the PR and between 2801cb2 and 2299a10.

📒 Files selected for processing (1)
  • content/en/docs/v1/operations/scheduling-classes.md

Comment on lines +79 to +83
When a `topologySpreadConstraint` or pod affinity/anti-affinity term has a nil
`labelSelector`, the scheduler automatically populates it with a selector matching
the workload's Cozystack application identity labels (`apps.cozystack.io/application.group`,
`.kind`, `.name`). This means you can define generic spreading or anti-affinity
policies without hard-coding label values per application.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix ambiguous label key notation in the note block.

apps.cozystack.io/application.group, .kind, .name reads like shorthand and can be misread as literal keys. Please list full keys explicitly (as you already do later in the doc) for consistency and copy/paste safety.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/en/docs/v1/operations/scheduling-classes.md` around lines 79 - 83,
The note uses ambiguous shorthand for Cozystack application identity labels;
update the sentence that lists `apps.cozystack.io/application.group`, `.kind`,
`.name` so it explicitly names the full label keys instead of shorthand. Replace
the shorthand with the full keys `apps.cozystack.io/application.group`,
`apps.cozystack.io/application.kind`, and `apps.cozystack.io/application.name`
wherever the note mentions labelSelector or topologySpreadConstraint to match
the later documentation and ensure copy/paste safety.

@lllamnyp lllamnyp merged commit 0bf8aa4 into main Mar 18, 2026
6 checks passed
@lllamnyp lllamnyp deleted the feat/cozystack-scheduler branch March 18, 2026 15:44
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.

2 participants