-
Notifications
You must be signed in to change notification settings - Fork 53
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
Add features overview to README #452
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: danielvegamyhre 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:
Approvers can indicate their approval by writing |
✅ Deploy Preview for kubernetes-sigs-jobset canceled.
|
README.md
Outdated
|
||
Read the [installation guide](/docs/setup/install.md) to learn more. | ||
- **Exclusive Placement Per Topology Domain**: JobSet includes an [annotation](https://github.com/kubernetes-sigs/jobset/blob/1ae6c0c039c21d29083de38ae70d13c2c8ec613f/examples/simple/exclusive-placement.yaml#L6) which can be set by the user, specifying that there should be a 1:1 mapping between child job and a particular topology domain, such as a datacenter rack or zone. This means that all the pods belonging to a child job will be colocated in the same topology domain, while pods from other jobs will not be allowed to run within this domain. This gives the child job exclusive access to computer resources in this domain. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question for reviewers: I think this feature will make little sense to users without a concrete use case, but the only one I can think of is TPU Multislice training, and since TPUs are specific to Google I didn't include it here. If anyone has any a suggestion for a concrete use case here I would appreciate it. I am happy to include TPU multislice training as well, based on feedback.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe @vsoch has some ideas of a general example?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we come up with a better concrete example we can add it in a follow up PR. For now I think we should get the feature overview list into the README so it's clear to potential users glancing at the Github landing page what JobSet offers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry missed this comment! Mapping to the level of a rack isn't particularly useful, at least it doesn't belong at this level - when we deploy to Google Cloud we usually ask for COMPACT mode when we want some guarantee of rack closeness. For mapping topology that is interesting, a better example is 1 pod per node. I think that can typically be achieved with resource requests / limits that are slightly below the node max capacity, and (maybe) a suggestion to the scheduler with affinity rules (but in practice I have found this is not enough). The topology that we are really interested in is more fine grained than that, and probably would need to be under the jurisdiction of the kubelet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also I'm designing a new project idea that (I think) will use JobSet again, will ping you / keep you in the loop if/when it manifests. No pun intended! :P
fff98f6
to
aa7c1b5
Compare
README.md
Outdated
@@ -44,6 +48,20 @@ Read the [installation guide](/docs/setup/install.md) to learn more. | |||
- ✔️ Security: RBAC based accessibility. | |||
- ✔️ Stable release cycle(2-3 months) for new features, bugfixes, cleanups. | |||
|
|||
## Installation | |||
|
|||
**Requires Kubernetes 1.26 or newer**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we say that we follow Kubernetes release process?
In 1-2 months I think we would want to bump this to Kubernetes 1.27..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, so something like:
Maintains support for latest 3 Kubernetes minor versions. Current: 1.27, 1.28, 1.29
(I know we currently run e2e-tests with 1.26 as well, but we should remove this and just focus on support for latest 3 minors, to align with upstream k8s).
What are your thoughts on this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My goal would be to avoid having to PR to keep these versions up to date..
Maintains support for latest 3 Kubernetes minor versions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok I added a line to "production readiness" bullets about this, and then here (installation instructiosn) I mentioned one of the last 3 minor versions is required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
Add features overview to README