Skip to content

Conversation

@nlamirault
Copy link
Collaborator

@nlamirault nlamirault commented Nov 6, 2025

Signed-off-by: Nicolas Lamirault [email protected]

Summary by CodeRabbit

  • New Features
    • Added priority-based workload scheduling with multiple priority classes: system-critical, platform-critical, data-plane-critical, and application-level workloads (high, medium, low, spot), enabling optimized resource allocation and preemption policies.

Signed-off-by: Nicolas Lamirault <[email protected]>
@nlamirault nlamirault self-assigned this Nov 6, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 6, 2025

Walkthrough

Three new Helm chart files are added to the kube-system scheduling directory, introducing a new scheduling chart with dependency on an external priority-classes chart from an OCI registry. Includes default values and environment-specific configuration for talos-homelab with predefined Kubernetes PriorityClass definitions across multiple tiers.

Changes

Cohort / File(s) Change Summary
New Scheduling Helm Chart
gitops/argocd/charts/kube-system/scheduling/Chart.yaml, gitops/argocd/charts/kube-system/scheduling/values.yaml, gitops/argocd/charts/kube-system/scheduling/values-talos-homelab.yaml
Introduces complete Helm chart structure for Kubernetes scheduling. Chart.yaml defines metadata and declares dependency on priority-classes chart from oci://ghcr.io/portefaix/charts. Base values.yaml provides empty template structure. Talos-homelab values file specifies seven priority classes (system-cluster-critical, platform-critical, data-plane-critical, app-high, app-medium, app-low, app-spot) with descriptions, preemption policies, and numeric values.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Verify OCI registry path oci://ghcr.io/portefaix/charts for priority-classes dependency is accessible and correct
  • Validate priority class numeric values do not conflict with Kubernetes system reserved ranges
  • Confirm values structure aligns with priority-classes subchart schema expectations
  • Review preemptionPolicy settings across all priority class definitions for consistency

Suggested labels

status/review_needed, priority/medium, kind/feature, area/kubernetes, dependency/helm, lifecycle/active, cloud/homelab, size/m

Poem

🐰 Priority classes, now neatly arranged,
Through levels and tiers, the pods are exchanged—
From cluster-critical to app-spot so low,
The scheduling chart helps workflows to flow!
With talos and homelab, order takes flight,
Each workload its place, everything right! ✨

Pre-merge checks and finishing touches

✅ 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 'Priority classes for pod scheduling' directly and clearly describes the main change—adding Helm charts and values files for Kubernetes priority classes used in scheduling.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/priority-classes

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1a092e2 and a1d3342.

📒 Files selected for processing (3)
  • gitops/argocd/charts/kube-system/scheduling/Chart.yaml (1 hunks)
  • gitops/argocd/charts/kube-system/scheduling/values-talos-homelab.yaml (1 hunks)
  • gitops/argocd/charts/kube-system/scheduling/values.yaml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: comment
  • GitHub Check: comment
  • GitHub Check: comment
  • GitHub Check: comment
  • GitHub Check: Add PR to Project
  • GitHub Check: triage
  • GitHub Check: required_labels
🔇 Additional comments (3)
gitops/argocd/charts/kube-system/scheduling/values.yaml (1)

1-6: Well-structured base template for priority classes configuration.

The values file provides a clean baseline with an empty priorityClasses array, allowing environment-specific overrides. The SPDX header and structure are correct.

gitops/argocd/charts/kube-system/scheduling/values-talos-homelab.yaml (1)

5-41: Well-designed priority class hierarchy with clear workload tiers.

The priority class definitions are logically ordered and appropriately scoped for the Talos Homelab environment. The app-medium class correctly serves as the global default, and the preemption policy is consistently applied across all tiers.

Minor formatting note: Line 13 has a trailing space after "security" in the platform-critical description. While functional, consider removing it for consistency:

-    description: "Critical platform components such as observability, networking, and security "
+    description: "Critical platform components such as observability, networking, and security"
gitops/argocd/charts/kube-system/scheduling/Chart.yaml (1)

1-12: Verify external priority-classes chart is accessible in your deployment environment.

The Chart.yaml structure and OCI registry format are correct. The registry endpoint responds but requires authentication (HTTP 401). Verify the priority-classes chart at oci://ghcr.io/portefaix/charts/priority-classes:v1.0.0 is accessible with your GCR credentials before deploying:

helm pull oci://ghcr.io/portefaix/charts/priority-classes --version v1.0.0

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.

@nlamirault nlamirault added status/review_needed The issue or PR needs to be reviewed priority/low This issue can probably be picked up by anyone looking to contribute to the project, as an entry fix kind/feature Categorizes issue or PR as related to a new feature area/kubernetes Kubernetes lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. labels Nov 6, 2025
@github-actions github-actions bot added the size/m Size M label Nov 6, 2025
@dosubot dosubot bot added cloud/homelab Cloud Provider / Homelab dependency/argo Dependency Argo priority/medium This issue or PR may be useful, and needs some attention status/in_progress This issue or PR is being worked on, and has someone assigned labels Nov 6, 2025
@nlamirault nlamirault merged commit 342217f into master Nov 6, 2025
29 of 30 checks passed
@nlamirault nlamirault deleted the feat/priority-classes branch November 6, 2025 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/kubernetes Kubernetes cloud/homelab Cloud Provider / Homelab dependency/argo Dependency Argo kind/feature Categorizes issue or PR as related to a new feature lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. priority/low This issue can probably be picked up by anyone looking to contribute to the project, as an entry fix priority/medium This issue or PR may be useful, and needs some attention size/m Size M status/in_progress This issue or PR is being worked on, and has someone assigned status/review_needed The issue or PR needs to be reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants