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

Runtimeclass scheduling api #80825

Merged
merged 2 commits into from Aug 13, 2019

Conversation

@tallclair
Copy link
Member

commented Jul 31, 2019

What type of PR is this?
/kind api-change

What this PR does / why we need it:

This is a roll-forward of #78598, which was reverted since the implementation of the API didn't make the 1.15 cutoff.

Which issue(s) this PR fixes:
For #72413

Special notes for your reviewer:

Changes from the original PR:

  • Merge changes with Overhead API, a few stylistic changes for consistency.
  • Split generated code into a separate commit.
  • Add +listType=map and associated keys, to pass new API verification. listtype & keys should match those on the PodSpec tolerations, but the tags are missing on that field (legacy exception).
  • Add validation for the uniqueness of tolerations, to match the listType.

Does this PR introduce a user-facing change?:

Add scheduling support for RuntimeClasses. RuntimeClasses can now specify nodeSelector constraints & tolerations, which are merged into the PodSpec for pods using that RuntimeClass.

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

- [KEP]: https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/runtime-class-scheduling.md

/sig node
/priority important-soon
/milestone v1.16

/assign @yastij @thockin
/cc @egernst

@fejta-bot

This comment has been minimized.

Copy link

commented Jul 31, 2019

This PR may require API review.

If so, when the changes are ready, complete the pre-review checklist and request an API review.

Status of requested reviews is tracked in the API Review project.

@draveness draveness referenced this pull request Aug 6, 2019
7 of 7 tasks complete

@tallclair tallclair force-pushed the tallclair:runtimeclass-scheduling-api branch from d388a00 to 5294f28 Aug 6, 2019

@tallclair

This comment has been minimized.

Copy link
Member Author

commented Aug 6, 2019

/retest

Scheduling: &v1alpha1.Scheduling{
NodeSelector: map[string]string{"extra-soft": "true"},
Tolerations: []corev1.Toleration{{
Key: "stinky",

This comment has been minimized.

Copy link
@egernst

egernst Aug 6, 2019

Contributor

nice key.

@thockin
Copy link
Member

left a comment

/approve

API approved, couple of quick questions

pkg/apis/node/v1alpha1/conversion.go Show resolved Hide resolved
staging/src/k8s.io/api/node/v1beta1/types.go Outdated Show resolved Hide resolved
@k8s-ci-robot

This comment has been minimized.

Copy link
Contributor

commented Aug 6, 2019

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: tallclair, thockin

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@thockin

This comment has been minimized.

Copy link
Member

commented Aug 7, 2019

/lgtm
/hold

I'll LGTM - you decide about the patchability and remove the hold, or fix it and ping me.

@k8s-ci-robot k8s-ci-robot added the lgtm label Aug 7, 2019

@yastij
Copy link
Member

left a comment

/lgtm

yastij and others added 2 commits Jun 11, 2019
Introduce topology into the runtimeClass API
Co-authored-by: Tim Allclair <tallclair@google.com>

@tallclair tallclair force-pushed the tallclair:runtimeclass-scheduling-api branch from 5294f28 to d548798 Aug 9, 2019

@k8s-ci-robot k8s-ci-robot removed the lgtm label Aug 9, 2019

@k8s-ci-robot

This comment has been minimized.

Copy link
Contributor

commented Aug 9, 2019

New changes are detected. LGTM label has been removed.

@thockin

This comment has been minimized.

Copy link
Member

commented Aug 9, 2019

Did we make a decision about patchability? The LGTM is yours.

@apelisse

This comment has been minimized.

Copy link
Member

commented Aug 9, 2019

AFAIK, there is no patching for multiple keys. The multiple key thing is only for apply. Also (and we need to improve on this), keys should be required, and here they are all optional. Replacing the "short" list of tolerations is fine with a JSONPatch.

@thockin

This comment has been minimized.

Copy link
Member

commented Aug 10, 2019

That's what I thought you'd say. Great point about keys needing to not be optional

@draveness

This comment has been minimized.

Copy link
Member

commented Aug 10, 2019

/retest

@draveness

This comment has been minimized.

Copy link
Member

commented Aug 12, 2019

Hi @tallclair, is this PR ready for merge or need more discussions?

@tallclair

This comment has been minimized.

Copy link
Member Author

commented Aug 12, 2019

This is ready to merge, just waiting on an LGTM from @thockin or @apelisse

@apelisse

This comment has been minimized.

Copy link
Member

commented Aug 12, 2019

Haven't looked much at the code, but I'm fine with the listType.

@tallclair

This comment has been minimized.

Copy link
Member Author

commented Aug 12, 2019

/hold cancel

@tallclair

This comment has been minimized.

Copy link
Member Author

commented Aug 12, 2019

self-lgtm per @thockin & @apelisse comments

@tallclair tallclair added the lgtm label Aug 12, 2019

@k8s-ci-robot k8s-ci-robot merged commit 2f91fcc into kubernetes:master Aug 13, 2019

23 checks passed

cla/linuxfoundation tallclair authorized
Details
pull-kubernetes-bazel-build Job succeeded.
Details
pull-kubernetes-bazel-test Job succeeded.
Details
pull-kubernetes-conformance-image-test Skipped.
pull-kubernetes-cross Skipped.
pull-kubernetes-dependencies Job succeeded.
Details
pull-kubernetes-e2e-gce Job succeeded.
Details
pull-kubernetes-e2e-gce-100-performance Job succeeded.
Details
pull-kubernetes-e2e-gce-csi-serial Skipped.
pull-kubernetes-e2e-gce-device-plugin-gpu Job succeeded.
Details
pull-kubernetes-e2e-gce-iscsi Skipped.
pull-kubernetes-e2e-gce-iscsi-serial Skipped.
pull-kubernetes-e2e-gce-storage-slow Skipped.
pull-kubernetes-godeps Skipped.
pull-kubernetes-integration Job succeeded.
Details
pull-kubernetes-kubemark-e2e-gce-big Job succeeded.
Details
pull-kubernetes-local-e2e Skipped.
pull-kubernetes-node-e2e Job succeeded.
Details
pull-kubernetes-node-e2e-containerd Job succeeded.
Details
pull-kubernetes-typecheck Job succeeded.
Details
pull-kubernetes-verify Job succeeded.
Details
pull-publishing-bot-validate Skipped.
tide In merge pool.
Details
@ProgramerGu

This comment has been minimized.

Copy link

commented Sep 16, 2019

Do NodeAffinity plan to gradually took over from NodeSelecter?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.