Skip to content

Commit 83e6aaa

Browse files
authored
Merge pull request #17763 from Sreeja1725/dra-config-qps-burst
Configure kube-scheduler QPS and Burst
2 parents e40e4d3 + 7550b9c commit 83e6aaa

File tree

3 files changed

+51
-3
lines changed

3 files changed

+51
-3
lines changed

pkg/model/components/kubescheduler/model.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ func MapToUnstructured(options interface{}, target *unstructured.Unstructured) e
181181
return err
182182
}
183183
// Clear the field, so we don't set the flag
184-
val.Set(reflect.ValueOf(nil))
184+
val.Set(reflect.Zero(val.Type()))
185185
default:
186186
if err := setValue(targetPath, val.Interface()); err != nil {
187187
return err

pkg/model/components/kubescheduler/model_test.go

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ import (
2121
"path/filepath"
2222
"testing"
2323

24+
"k8s.io/apimachinery/pkg/api/resource"
25+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
26+
"k8s.io/kops/pkg/apis/kops"
2427
"k8s.io/kops/pkg/assets"
2528
"k8s.io/kops/pkg/kubemanifest"
2629
"k8s.io/kops/pkg/model"
@@ -66,6 +69,51 @@ func Test_RunKubeSchedulerBuilder(t *testing.T) {
6669
}
6770
}
6871

72+
func Test_MapToUnstructured_WithQpsAndBurst(t *testing.T) {
73+
qps := resource.MustParse("500")
74+
75+
kubeScheduler := &kops.KubeSchedulerConfig{
76+
Qps: &qps,
77+
Burst: 500,
78+
}
79+
80+
target := &unstructured.Unstructured{}
81+
target.SetKind("KubeSchedulerConfiguration")
82+
target.SetAPIVersion("kubescheduler.config.k8s.io/v1")
83+
84+
err := MapToUnstructured(kubeScheduler, target)
85+
if err != nil {
86+
t.Fatalf("MapToUnstructured failed: %v", err)
87+
}
88+
89+
qpsVal, found, err := unstructured.NestedFloat64(target.Object, "clientConnection", "qps")
90+
if err != nil {
91+
t.Fatalf("error getting qps: %v", err)
92+
}
93+
if !found {
94+
t.Error("qps not found in target")
95+
}
96+
if qpsVal != 500.0 {
97+
t.Errorf("expected qps=500.0, got %v", qpsVal)
98+
}
99+
100+
burst, found, err := unstructured.NestedFieldNoCopy(target.Object, "clientConnection", "burst")
101+
if err != nil {
102+
t.Fatalf("error getting burst: %v", err)
103+
}
104+
if !found {
105+
t.Error("burst not found in target")
106+
}
107+
108+
burstVal, ok := burst.(int32)
109+
if !ok {
110+
t.Errorf("expected burst to be int32, got %T: %v", burst, burst)
111+
}
112+
if burstVal != 500 {
113+
t.Errorf("expected burst=500, got %v", burstVal)
114+
}
115+
}
116+
69117
func LoadKopsModelContext(basedir string) (*model.KopsModelContext, error) {
70118
spec, err := testutils.LoadModel(basedir)
71119
if err != nil {

tests/e2e/scenarios/scalability/run-test.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ create_args+=("--set spec.kubeScheduler.authorizationAlwaysAllowPaths=/healthz")
107107
create_args+=("--set spec.kubeScheduler.authorizationAlwaysAllowPaths=/livez")
108108
create_args+=("--set spec.kubeScheduler.authorizationAlwaysAllowPaths=/readyz")
109109
create_args+=("--set spec.kubeScheduler.authorizationAlwaysAllowPaths=/metrics")
110-
create_args+=("--set spec.kubeScheduler.kubeAPIQPS=${KOPS_SCHEDULER_QPS}")
111-
create_args+=("--set spec.kubeScheduler.kubeAPIBurst=${KOPS_SCHEDULER_BURST}")
110+
create_args+=("--set spec.kubeScheduler.qps=${KOPS_SCHEDULER_QPS}")
111+
create_args+=("--set spec.kubeScheduler.burst=${KOPS_SCHEDULER_BURST}")
112112
create_args+=("--set spec.kubeScheduler.enableProfiling=true")
113113
create_args+=("--set spec.kubeScheduler.enableContentionProfiling=true")
114114
create_args+=("--set spec.kubeControllerManager.endpointUpdatesBatchPeriod=500ms")

0 commit comments

Comments
 (0)