Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document labels, annotations and taints for JobSet #47383

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

Adarsh-verma-14
Copy link
Contributor

@k8s-ci-robot k8s-ci-robot added language/en Issues or PRs related to English language cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Aug 7, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign divya-mohan0209 for approval. For more information see the Kubernetes Code Review Process.

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

Needs approval from an approver in each of these files:

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

@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Aug 7, 2024
@Adarsh-verma-14
Copy link
Contributor Author

Hi @sftim ,could you review on these changes if anythings need to change let me know .

Copy link

netlify bot commented Aug 7, 2024

Pull request preview available for checking

Built without sensitive environment variables

Name Link
🔨 Latest commit d21c85e
🔍 Latest deploy log https://app.netlify.com/sites/kubernetes-io-main-staging/deploys/66f907bb451f1900080cd109
😎 Deploy Preview https://deploy-preview-47383--kubernetes-io-main-staging.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 site configuration.

@kannon92
Copy link
Contributor

kannon92 commented Aug 8, 2024

cc @ahg-g @danielvegamyhre


This label provides a unique key for the job.

### job-name
Copy link
Contributor

Choose a reason for hiding this comment

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

This is already defined as part of the job api labels/annotations.

Comment on lines 2385 to 2393
### job-name

Type: Label

Example: `job-name: "my-job"`

Used on: Jobs

This label stores the name of the job.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
### job-name
Type: Label
Example: `job-name: "my-job"`
Used on: Jobs
This label stores the name of the job.

This is not in the namespace kubernetes.io or k8s.io, so we'd omit it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have removed it in case any need to change let me know.


Used on: Jobs, Pods

This label is used to store the name of the JobSet to which a job or pod belongs.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This label is used to store the name of the JobSet to which a job or pod belongs.
This label is used to store the name of the JobSet to which a Job or Pod belongs.
JobSet is an extension API that you can deploy into your Kubernetes cluster.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have done this change as suggested.


Used on: Jobs

This label is used to index into a job's labels and retrieve the name of the parent ReplicatedJob.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This label is used to index into a job's labels and retrieve the name of the parent ReplicatedJob.
This label is used to index into a Job's labels and retrieve the name of the parent ReplicatedJob.
ReplicatedJob is an extension API that you can deploy into your Kubernetes cluster.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have done this change as suggested


Used on: Jobs

This annotation stores the index of the job within the ReplicatedJob.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This annotation stores the index of the job within the ReplicatedJob.
This annotation stores the index of the Job within the ReplicatedJob.
ReplicatedJob is an extension API that you can deploy into your Kubernetes cluster.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have done this change as suggested


Used on: JobSets, ReplicatedJobs

This annotation can be set on a JobSet or a ReplicatedJob template to ensure exclusive job placement per topology group.
Copy link
Contributor

@sftim sftim Aug 8, 2024

Choose a reason for hiding this comment

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

Suggested change
This annotation can be set on a JobSet or a ReplicatedJob template to ensure exclusive job placement per topology group.
You can set this annotation on a JobSet or a ReplicatedJob template to ensure exclusive job placement per topology group.
JobSet and ReplicaSet are extension APIs that you can deploy into your Kubernetes cluster.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have done this change as suggested.


Used on: JobSets

This annotation acts as a flag. When set, the JobSet controller injects nodeSelectors for the JobSetNameKey label to ensure exclusive job placement per topology.
Copy link
Contributor

Choose a reason for hiding this comment

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

What's a JobSetNameKey?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

JobSetNameKey is the label key that identifies the JobSet to which a job belongs. Specifically, it is the label jobset.sigs.k8s.io/jobset-name.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have update this if need to improvement let me know.

Comment on lines 2425 to 2433
### alpha.jobset.sigs.k8s.io/no-schedule

Type: Annotation

Example: `alpha.jobset.sigs.k8s.io/no-schedule: "true"`

Used on: Jobs

This annotation prevents the job from being scheduled.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure this is right. You can suspend a Job or set scheduling gates on a Pod, but I don't see how or whether this annotation influences those things.

Copy link
Member

Choose a reason for hiding this comment

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

This is used as a taint for the node labeling exclusive placement strategy (link)


Used on: Jobs, Pods

This annotation/label is used on Jobs and Pods to store a stable network endpoint where the coordinator pod can be reached if the JobSet spec defines the `.spec.coordinator` field.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This annotation/label is used on Jobs and Pods to store a stable network endpoint where the coordinator pod can be reached if the JobSet spec defines the `.spec.coordinator` field.
This annotation/label is used on Jobs and Pods to store a stable network endpoint where the coordinator
pod can be reached if the JobSet spec defines the `.spec.coordinator` field.
JobSet is an extension API that you can deploy into your Kubernetes cluster.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have done this change as suggested.

Comment on lines 2435 to 2443
### jobset.sigs.k8s.io/jobset-controller

Type: Label

Example: `jobset.sigs.k8s.io/jobset-controller: "jobset-controller"`

Used on: Jobs

This label is used for the `managedBy` field to indicate that the job is managed by the built-in JobSet controller.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
### jobset.sigs.k8s.io/jobset-controller
Type: Label
Example: `jobset.sigs.k8s.io/jobset-controller: "jobset-controller"`
Used on: Jobs
This label is used for the `managedBy` field to indicate that the job is managed by the built-in JobSet controller.

This is not a label, it's a value for managedBy.

Copy link
Member

Choose a reason for hiding this comment

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

Tim is correct, we can remove this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have remove this change as suggested.

Copy link
Member

@danielvegamyhre danielvegamyhre left a comment

Choose a reason for hiding this comment

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

Thanks for working on this @kannon92, I added a couple comments

Comment on lines 2435 to 2443
### jobset.sigs.k8s.io/jobset-controller

Type: Label

Example: `jobset.sigs.k8s.io/jobset-controller: "jobset-controller"`

Used on: Jobs

This label is used for the `managedBy` field to indicate that the job is managed by the built-in JobSet controller.
Copy link
Member

Choose a reason for hiding this comment

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

Tim is correct, we can remove this.

Comment on lines 2425 to 2433
### alpha.jobset.sigs.k8s.io/no-schedule

Type: Annotation

Example: `alpha.jobset.sigs.k8s.io/no-schedule: "true"`

Used on: Jobs

This annotation prevents the job from being scheduled.
Copy link
Member

Choose a reason for hiding this comment

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

This is used as a taint for the node labeling exclusive placement strategy (link)

@kannon92
Copy link
Contributor

kannon92 commented Aug 8, 2024

Thanks for working on this @kannon92, I added a couple comments

@Adarsh-verma-14 is the one who worked on this.

Comment on lines 2427 to 2433
Type: Annotation

Example: `alpha.jobset.sigs.k8s.io/no-schedule: "true"`

Used on: Jobs

This annotation prevents the job from being scheduled.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Type: Annotation
Example: `alpha.jobset.sigs.k8s.io/no-schedule: "true"`
Used on: Jobs
This annotation prevents the job from being scheduled.
Type: Taint
Example: `alpha.jobset.sigs.k8s.io/no-schedule: NoSchedule`
Used on: Nodes
The JobSet controller uses this taint to support its node labeling exclusive placement strategy.
JobSet is an extension API that you can deploy into your Kubernetes cluster.

(aside: I'd rename this to jobset.sigs.k8s.io/exclusive-use or jobset.kubernetes.io/exclusive-use)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have done this changes but is there need to change name (jobset.sigs.k8s.io/exclusive-use or jobset.kubernetes.io/exclusive-use) let me know.

@sftim
Copy link
Contributor

sftim commented Aug 8, 2024

There is also one taint, so:

/retitle Document labels, annotations and taints for JobSet

@k8s-ci-robot k8s-ci-robot changed the title Adding labels and annotation for JobSet Document labels, annotations and taints for JobSet Aug 8, 2024
@sftim
Copy link
Contributor

sftim commented Aug 8, 2024

/sig apps

@k8s-ci-robot k8s-ci-robot added the sig/apps Categorizes an issue or PR as relevant to SIG Apps. label Aug 8, 2024
@danielvegamyhre
Copy link
Member

Thanks for working on this @kannon92, I added a couple comments

@Adarsh-verma-14 is the one who worked on this.

Woops, sorry about that @Adarsh-verma-14! Thanks for the contribution :)

@sftim
Copy link
Contributor

sftim commented Aug 19, 2024

Tide, is this OK to merge?

@Adarsh-verma-14
Copy link
Contributor Author

Tide, is this OK to merge?

@sftim , I am not getting this, could you give more clarification ?

@sftim
Copy link
Contributor

sftim commented Aug 22, 2024

I am not getting this, could you give more clarification ?

I wanted to nudge Tide to recheck the PR status (it did).

@danielvegamyhre
Copy link
Member

@sftim any blockers here? Scanning through it looks like comments have been addressed

@sftim
Copy link
Contributor

sftim commented Aug 28, 2024

This PR is ready for a review (any reviewer for English).

@danielvegamyhre
Copy link
Member

This PR is ready for a review (any reviewer for English).

Thanks! Would you mind tagging a reviewer for this? I'm not sure who to add.

@sftim
Copy link
Contributor

sftim commented Sep 9, 2024

#47383 (comment) shows the suggested reviewers. I'll take a look if I get time.

Copy link
Contributor

@sftim sftim left a comment

Choose a reason for hiding this comment

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

Thanks; this needs more work though. For example, there's no such thing as a cluster-scoped Job.

Ideally, get a tech review from SIG Apps after making the next set up updates.


Used on: JobSets

This annotation acts as a flag. When set, the JobSet controller injects nodeSelectors for the `JobSetNameKey` label (e.g., `jobset.sigs.k8s.io/jobset-name`) to ensure exclusive job placement per topology.
Copy link
Contributor

Choose a reason for hiding this comment

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

What does the JobSet controller mutate based on this annotation?

  • JobSets
  • Jobs
  • Pods
    ?

It's not clear.


Used on: Jobs

This annotation indicates that the job is namespaced.
Copy link
Contributor

Choose a reason for hiding this comment

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

Are any Jobs not namespaced?

Copy link
Member

Choose a reason for hiding this comment

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

This annoation is actually used to store the namespaced Job name - @Adarsh-verma-14 can you fix this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sure I will fix it @danielvegamyhre

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have fixed it cloud you check it is fine now ?

@sftim
Copy link
Contributor

sftim commented Sep 11, 2024

Waiting on author updates and then on tech LGTM.


Type: Annotation, Label

Example: `jobset.sigs.k8s.io/coordinator: "coordinator-endpoint"`
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Example: `jobset.sigs.k8s.io/coordinator: "coordinator-endpoint"`
Example: `jobset.sigs.k8s.io/coordinator: "myjobset-workers-0-0.headless-svc"`

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay i will replace with endpoint.


Example: `alpha.jobset.sigs.k8s.io/node-selector-strategy=true`

Used on: JObs ,Pods
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Used on: JObs ,Pods
Used on: Jobs ,Pods

Copy link
Contributor Author

Choose a reason for hiding this comment

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

uff my bad!! i will fix it.

Used on: Nodes

The JobSet controller uses this taint to support its node labeling exclusive placement strategy.
JobSet is an extension API that you can deploy into your Kubernetes cluster.
Copy link
Member

Choose a reason for hiding this comment

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

I notice here you mention "JobSet is an extension API that you can deploy into your Kubernetes cluster" but not in any other taint/label/annotation descriptions.

I think it would make more sense to delete this and instead make the word "JobSet" a link to https://github.com/kubernetes-sigs/jobset

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sure i will add link for Jobset


Type: Annotation, Label

Example: `alpha.jobset.sigs.k8s.io/namespaced-job:my-jobset-replicatedjob-A-0`
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Example: `alpha.jobset.sigs.k8s.io/namespaced-job:my-jobset-replicatedjob-A-0`
Example: `alpha.jobset.sigs.k8s.io/default_myjobset-replicatedjob-0`

see https://github.com/kubernetes-sigs/jobset/blob/main/pkg/controllers/jobset_controller.go#L804

Also, the format of child job names for JobSets is: {jobset}-{replicatedJob}-{jobIndex}

Used on: JobSets, ReplicatedJobs

You can set this annotation on a JobSet or a ReplicatedJob template to ensure exclusive job placement per topology group.
JobSet and ReplicaSet are extension APIs that you can deploy into your Kubernetes cluster.
Copy link
Member

Choose a reason for hiding this comment

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

remove this sentence and make the word JobSet a link to the jobset repo

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sure

Comment on lines 2376 to 2377
This annotation stores the index of the Job within the ReplicatedJob.
ReplicatedJob is an extension API that you can deploy into your Kubernetes cluster.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
This annotation stores the index of the Job within the ReplicatedJob.
ReplicatedJob is an extension API that you can deploy into your Kubernetes cluster.
This label/annotation is set by the JobSet controller on child Jobs and Pods. It contains the index of the Job replica within its parent ReplicatedJob.


### jobset.sigs.k8s.io/job-key

Type: Label
Copy link
Member

Choose a reason for hiding this comment

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

Also used as annotation

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay i will register this as annotation also

@@ -2332,6 +2332,114 @@ Starting in v1.16, this annotation was removed in favor of
[Pod Priority](/docs/concepts/scheduling-eviction/pod-priority-preemption/).
{{< /note >}}

### jobset.sigs.k8s.io/jobset-name

Type: Label
Copy link
Member

Choose a reason for hiding this comment

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

All of these are used as both labels and annotations (except the taint).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay i will register for both labels and annotation

Used on: ReplicatedJobs

This annotation specifies the number of replicas for a ReplicatedJob.
ReplicatedJob is an extension API that you can deploy into your Kubernetes cluster.
Copy link
Member

Choose a reason for hiding this comment

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

Remove this sentence, it is not accurate

Copy link
Contributor Author

Choose a reason for hiding this comment

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

okay i will remove it

Used on: Jobs, Pods

This label is used to store the name of the JobSet to which a Job or Pod belongs.
JobSet is an extension API that you can deploy into your Kubernetes cluster.
Copy link
Member

Choose a reason for hiding this comment

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

Make the word "JobSet" a link to the JobSet github repo for readers who are unfamiliar with it

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sure I will link that.

@danielvegamyhre
Copy link
Member

Thanks @Adarsh-verma-14, please tag me when this is ready for another review

@Adarsh-verma-14
Copy link
Contributor Author

Thanks @Adarsh-verma-14, please tag me when this is ready for another review

Sure

@Adarsh-verma-14
Copy link
Contributor Author

Hi @danielvegamyhre , I have updated changes as suggested now you can review on it .

Used on: Jobs, Pods

This label/annotation is used to index into a Job's labels and retrieve the name of the parent ReplicatedJob.
ReplicatedJob is an extension API that you can deploy into your Kubernetes cluster.
Copy link
Member

Choose a reason for hiding this comment

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

remove this sentence please, ReplicatedJob is not an extension API that can be installed on your cluster, that is JobSet :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ohh sorry, i missed it !!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have removed it. PTAL!!


Example: `alpha.jobset.sigs.k8s.io/node-selector-strategy=true`

Used on: Jobs ,Pods
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Used on: Jobs ,Pods
Used on: Jobs, Pods

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have updated it also PTAL!!

@tengqm
Copy link
Contributor

tengqm commented Sep 22, 2024

Sorry, I'm against this change because

  • JobSet is not something we can get from vanilla Kubernetes. Yes. The mentioned labels or annotations all carry the k8s.io domain name, which is reserved. But this doesn't mean that they are "official".
  • We could add notes (or warnings) to all these labels or annotations -- you can use them only when you deployed the jobset related manifests. They are not available by default on your cluster.
  • Or, better yet, document these labels/annotations on a different page. The current page is already lengthy (>2400 lines). Without differentiating builtin labels/annotations from those from other projects, we will end up with a huge file pretty soon.

@drackpack drackpack mentioned this pull request Sep 22, 2024
@sftim
Copy link
Contributor

sftim commented Sep 22, 2024

Thanks for the comment @tengqm, but JobSet is part of the Kubernetes project. I don't think we should force SIG Apps to reorganize a long page just to register their labels and annotations, even if that work is a good idea for the long term.

Copy link
Member

@danielvegamyhre danielvegamyhre left a comment

Choose a reason for hiding this comment

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

Looks good, just a couple more small changes


Used on: Jobs, Pods

This label/annotation is used to store the name of the JobSet to which a Job or Pod belongs.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
This label/annotation is used to store the name of the JobSet to which a Job or Pod belongs.
This label/annotation is used to store the name of the JobSet that a Job or Pod belongs to.


Used on: Jobs, Pods

This label/annotation is used to index into a Job's labels and retrieve the name of the parent ReplicatedJob.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
This label/annotation is used to index into a Job's labels and retrieve the name of the parent ReplicatedJob.
This label/annotation stores the name of the ReplicatedJob that this Job or Pod is part of.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, I will update this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done. PTAL !!

@danielvegamyhre
Copy link
Member

/lgtm for JobSet

@sftim this is ready for SIG docs review

Copy link
Contributor

@sftim sftim left a comment

Choose a reason for hiding this comment

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

There's no API kind called ReplicatedJob, right?

If that's true, try these changes. We main use the UpperCamelCase notation for actual API kinds.

/lgtm cancel


Used on: Jobs, Pods

This label/annotation stores the name of the ReplicatedJob that this Job or Pod is part of.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This label/annotation stores the name of the ReplicatedJob that this Job or Pod is part of.
This label or annotation stores the name of the replicated job that this Job or Pod is part of.


Used on: Jobs, Pods

This label/annotation is set by the JobSet controller on child Jobs and Pods of a JobSet. The value will be the SHA256 hash of the namespaced Job name.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This label/annotation is set by the JobSet controller on child Jobs and Pods of a JobSet. The value will be the SHA256 hash of the namespaced Job name.
The JobSet controller sets this label (and also an annotation with the same key) on child Jobs and
Pods of a JobSet. The value is the SHA256 hash of the namespaced Job name.


Used on: JobSets, ReplicatedJobs

You can set this label/annotation on a [JobSet](https://jobset.sigs.k8s.io) or a ReplicatedJob template to ensure exclusive job placement per topology group.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
You can set this label/annotation on a [JobSet](https://jobset.sigs.k8s.io) or a ReplicatedJob template to ensure exclusive job placement per topology group.
You can set this label/annotation on a [JobSet](https://jobset.sigs.k8s.io) to ensure exclusive Job
placement per topology group. You can also define this label or annotation on a replicated job
template. Read the documentation for JobSet to learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. language/en Issues or PRs related to English language sig/apps Categorizes an issue or PR as relevant to SIG Apps. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
Status: Needs Triage
Development

Successfully merging this pull request may close these issues.

JobSet labels and annotations not registered / documented
6 participants