Skip to content

Add Grove PodCliqueSet (grove.io/v1alpha1) Karta example#66

Open
shmuel-runai wants to merge 1 commit into
mainfrom
RUN-38840/main-grove-pcs-example
Open

Add Grove PodCliqueSet (grove.io/v1alpha1) Karta example#66
shmuel-runai wants to merge 1 commit into
mainfrom
RUN-38840/main-grove-pcs-example

Conversation

@shmuel-runai
Copy link
Copy Markdown

@shmuel-runai shmuel-runai commented May 20, 2026

Closes #65

Reference Karta definition for the Grove PodCliqueSet CRD covering
status mappings, clique/scaling-group child components, additional
child kinds, and gang-scheduling optimization instructions.

Summary by CodeRabbit

Release Notes

  • Documentation
    • Added an example configuration file demonstrating how to set up and manage Grove PodCliqueSet workloads with replica scaling, status tracking, and pod co-scheduling capabilities.

Review Change Stack

Reference Karta definition for the Grove PodCliqueSet CRD covering
status mappings, clique/scaling-group child components, additional
child kinds, and gang-scheduling optimization instructions.

Closes #65
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Enterprise

Run ID: 9352474a-b88a-4b47-b963-92f44a0202a6

📥 Commits

Reviewing files that changed from the base of the PR and between c8d543d and 8cd68de.

📒 Files selected for processing (1)
  • docs/examples/grove-podcliqueset.yaml

Walkthrough

A new documentation example YAML file defines a complete Karta workload specification for Grove PodCliqueSet, including replica-based status conditions, child component definitions with scaling formulas, additional resource kinds, and gang-scheduling pod group membership rules keyed by labels.

Changes

Grove PodCliqueSet Karta Example

Layer / File(s) Summary
Grove PodCliqueSet Karta workload example specification
docs/examples/grove-podcliqueset.yaml
Complete Karta workload example for PodCliqueSet specifies status condition mappings based on spec.replicas and status.availableReplicas, defines two primary child component types (standalone PodClique and PodCliqueScalingGroup) with scaling replica formulas and selector paths, registers additional child kinds for ownership traversal, and configures gang-scheduling pod group membership using label-based grouping keys (grove.io/podcliqueset-name and replica index labels).

Estimated Code Review Effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

A Karta tale of Grove's design, 🐰
PodCliqueSet dancing in perfect time,
Cliques grouped and scaled with care,
Pod gang-scheduling beyond compare! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title accurately summarizes the main change: adding a Grove PodCliqueSet Karta example, which directly matches the changeset content.
Linked Issues check ✅ Passed The pull request implements all coding requirements from issue #65: status mappings, clique/scaling-group child components, additional child kinds, and gang-scheduling instructions are all present in the new YAML specification.
Out of Scope Changes check ✅ Passed All changes are directly related to issue #65 objectives. The single file added (docs/examples/grove-podcliqueset.yaml) contains only the Grove PodCliqueSet Karta example as requested.
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 RUN-38840/main-grove-pcs-example

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

Copy link
Copy Markdown
Collaborator

@ronlv10 ronlv10 left a comment

Choose a reason for hiding this comment

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

Overall looks good , left a few comments

expectedResult: "true"
initializing:
- byExpression:
expression: '(.spec.replicas // 0) > 0 and (.status.availableReplicas // 0) < (.spec.replicas // 0)'
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.

could it be that .spec.replicas is missing or 0 ? what should the phase in this case ?

schedulerNamePath: .spec.template.cliques[].spec.podSpec.schedulerName
labelsPath: .spec.template.cliques[].labels
annotationsPath: .spec.template.cliques[].annotations
containersPath: .spec.template.cliques[].spec.podSpec.containers
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.

seems like you could use

          podSpecPath: .spec.template.cliques[].spec.podSpec
 but the issue is the path to metadata that missing ?  wondering maybe we could add Fragmented metadata  - would it help you to set the path to pod spec and just paths to annotations and labelsr ? currenly we enforce either podSpecPath , podTemplateSpecPath  or fragmentedPodSpecDefinition but we could add fragmentedMetadataDefinition (hope I want clear)

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.

Add Grove PodCliqueSet (grove.io/v1alpha1) Karta example

2 participants