sanposhiho
Repos
71
Followers
123
Following
41

A web-based simulator for the Kubernetes scheduler

501
79

Production-Grade Container Scheduling and Management

94172
33008

[WIP] Molizen is a typed actor framework for Go.

38
2

Mr. gomockhandler is the clever and more agile manager of golang/mock 👔

78
4

[WIP] Simple scheduler and scenario system for learning Kubernetes Scheduler

27
10

The One CD for All {applications, platforms, operations}

637
66

Events

pull request opened
update Kubernetes v1.26
Created at 20 hours ago
pull request closed
update Kubernetes v1.26
Created at 20 hours ago
pull request opened
update Kubernetes v1.26
Created at 20 hours ago
sanposhiho create branch release-v1.26
Created at 20 hours ago
Created at 20 hours ago
Created at 20 hours ago

feature(nodeaffinity): support skip in NodeAffinity PreFilter

Created at 6 days ago
Integrate kwok into simulator

kwokctl should not start the scheduler and kube-scheduler-simulator should take care of the scheduling

Yes. In other words, I feel the simulator should depend on all other parts like running controller-manager, kube-apiserver, etc. Once kwokctl gets the ability to disable scheduler, we can refactor the simulator's scheduler to run on top of kwok, and this repository can focus on the simulating related stuff.

Created at 1 week ago
issue comment
use TotalScore summarized in NodePluginScores

/retest

Created at 1 week ago
issue comment
use TotalScore summarized in NodePluginScores

@ahg-g Fixed based on your suggestions. Please retake a look 🙏

Created at 1 week ago

fix(schedule_one): refactor

Created at 1 week ago
issue comment
feature(scheduler): won't run Filter if PreFilter returned a Skip status

/retest

Created at 1 week ago
issue comment
feature(scheduler): won't run Filter if PreFilter returned a Skip status

/assign @alculquicondor 🙏

Created at 1 week ago
issue comment
fix(nodeaffinity): take AddedAffinity into consideration when check if there is affinity to specific nodes

/retest

Created at 1 week ago
pull request opened
feature(scheduler): won't run Filter if PreFilter returned a Skip status

What type of PR is this?

/kind feature /sig scheduling

What this PR does / why we need it:

Change the framework so that it doesn't run plugins's Filter() if its PreFilter() returned a Skip status. For example, nodeAffinity can return Skip in PreFilter if the pod doesn't specify any node selector or affinity. This skip status is basically regarded as "Success" and you needs to distinguish Skip from Success by IsSkip func, not IsSuccess func if you need to refer to Skip status.

https://github.com/kubernetes/kubernetes/pull/112637 got reverted because of the bug. 🙏 This PR also changes NodeAffinity PreFilter to return Skip so that we can ensure the same bug doesn't exist in this PR anymore. It's just a starting point, once this PR gets merged, I'll work on changing other PreFilter plugins to return Skip appropriately.


This PR is composed of three commits:

  • First one: the same commit as https://github.com/kubernetes/kubernetes/pull/112637
  • The second one: the patch for the bug + unit test.
  • The third one: support skip in NodeAffinity.

Which issue(s) this PR fixes:

Part of https://github.com/kubernetes/kubernetes/issues/107556 Part of https://github.com/kubernetes/kubernetes/issues/110643

Special notes for your reviewer:

Does this PR introduce a user-facing change?

Scheduler doesn't run plugin's Filter method when its PreFilter method returned a Skip status.
In other words, your PreFilter/Filter plugin can return a Skip status in PreFilter if the plugin does nothing in Filter for that Pod.
Scheduler skips NodeAffinity Filter plugin when NodeAffinity Filter plugin has nothing to do with a Pod.
It may affect some metrics values related to the NodeAffinity Filter plugin.

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


Created at 1 week ago
create branch
sanposhiho create branch skip-reimplementation
Created at 1 week ago

Add logging for reconciler unit test

Update shellcheck version (0.7.2 -> 0.8.0) and fix findings

Replace klog with benchmark log in scheduler_perf

Signed-off-by: kerthcet kerthcet@gmail.com

e2e loadbalancer udp conntrack test

pkg/controller/storageversiongc: add unit tests for storageversiongc controller

Signed-off-by: Andrew Sy Kim andrewsy@google.com

pkg/controller/storageversiongc: add comments for Test_StorageVersionUpdatedWithAllEncodingVersionsEqualOnLeaseDeletion, Test_StorageVersionUpdatedWithDifferentEncodingVersionsOnLeaseDeletion, Test_StorageVersionContainsInvalidLeaseID, and Test_StorageVersionDeletedOnLeaseDeletion

Signed-off-by: Andrew Sy Kim andrewsy@google.com

pkg/controller/storageversiongc: add constructor function newKubeApiserverLease

Signed-off-by: Andrew Sy Kim andrewsy@google.com

Add API and validation for CrossNamespaceVolumeDataSource

Generate code

use existing admissionHandler readyfunc to wait for sync

is what other plugins do, and should decrease verbosity in logs

add test for error when informers are not ready

Merge pull request #113758 from alexzielenski/readyFunc-refactor

use admission.Handler readyFunc for CEL Admission plugin

Merge pull request #113724 from kerthcet/cleanup/klog

Replace klog with benchmark log framework in scheduler_perf

Revert "Graduate API Server tracing to beta"

Rename admission cel package to validatingadmissionpolicy

Update modules.txt

Rename FG to ValidatingAdmissionPolicy

Merge pull request #113735 from cici37/renameDir

Rename cel admission package and the feature gate to validatingadmissionpolicy

Merge pull request #113803 from dashpole/revert-113693-apiserver_tracing_beta

Revert "Graduate API Server tracing to beta"

Add [Feature:SELinux] to all tests that require SELinux

Most CI jobs run an OS that does not support SELinux, therefore tests that need it should be skipped by default.

  • [Feature:SELinux] marks tests that need SELinux (for any feature)
  • [Feature:SELinuxMountReadWriteOncePod] marks tests that need SELinuxMountReadWriteOncePod alpha gate enabled.

Currently, all SELinux tests have both, but it will change in the future.

Created at 1 week ago
pull request closed
feature(nodeaffinity): support Skip in NodeAffinity PreFilter

What type of PR is this?

/kind feature

What this PR does / why we need it:

support skip in NodeAffinity PreFilter. After https://github.com/kubernetes/kubernetes/pull/112637 gets merged, NodeAffinity will be skipped when NodeAffinity Filter plugin has nothing to do with a Pod.

Which issue(s) this PR fixes:

Part of https://github.com/kubernetes/kubernetes/issues/107556 Part of https://github.com/kubernetes/kubernetes/issues/110643

Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

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


Created at 1 week ago
issue comment
feature(scheduler): won't run Filter if PreFilter returned a Skip status

yes, I think i can create a PR hopefully by this weekend

Created at 1 week ago
Node's `.status.allocatable` should be changed for NodeResourceFit plugin

/close

continue to https://github.com/kubernetes-sigs/kube-scheduler-simulator/issues/251

Created at 1 week ago
Integrate kwok into simulator

In the simulator, we just run almost pure kube-apiserver. So, the simulator doesn't have much controllers, and something seems weird to users sometimes. For example, https://github.com/kubernetes-sigs/kube-scheduler-simulator/issues/243.

I feel we can almost resolve them by integrating Kwok which watches Node and Pods and behaves like kubelet. We can expect Pods and Nodes to behave more like a real cluster.

/kind feature /triage accepted /area simulator /priority important-longterm

Created at 1 week ago
issue comment
Replace all deprecated `sets.String` with `sets.Set`

@BenTheElder Thanks for the information. Then, should we remove the deprecation notice on each set struct for now, or add some commend about the generics guidance on sets.Set for the Kubernetes internal contributors.

TBH, I didn't know about the documentation about the usage of generics until you let us know. If I still didn't know that and got received the review request for a PR that included sets.Set, then I would put /lgtm on it after the regular reviewing.

Created at 1 week ago
fix(concepts): fix the link for the resource quotas restriction example

/kind documentation

Created at 1 week ago
fix(concepts): fix the link for the resource quotas restriction example

I guess #basic-exceptions is a more appropriate section here.

Created at 1 week ago