Skip to content

Commit d55ead7

Browse files
authored
QPS helm and node fix
1 parent 82d8068 commit d55ead7

File tree

5 files changed

+32
-0
lines changed

5 files changed

+32
-0
lines changed

cli/cmd/install.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -724,6 +724,7 @@ func prepareYAMLFiles() error {
724724
ISCSISelfHealingInterval: iscsiSelfHealingInterval.String(),
725725
ISCSISelfHealingWaitTime: iscsiSelfHealingWaitTime.String(),
726726
NodePrep: nodePrep,
727+
K8sAPIQPS: k8sAPIQPS,
727728
}
728729
daemonSetYAML := k8sclient.GetCSIDaemonSetYAMLLinux(daemonArgs)
729730
if err = writeFile(daemonsetPath, daemonSetYAML); err != nil {
@@ -1116,6 +1117,7 @@ func installTrident() (returnError error) {
11161117
ServiceAccountName: getNodeRBACResourceName(true),
11171118
ImagePullPolicy: imagePullPolicy,
11181119
NodePrep: nodePrep,
1120+
K8sAPIQPS: k8sAPIQPS,
11191121
}
11201122
returnError = client.CreateObjectByYAML(
11211123
k8sclient.GetCSIDaemonSetYAMLWindows(daemonSetArgs))
@@ -1171,6 +1173,7 @@ func installTrident() (returnError error) {
11711173
ISCSISelfHealingInterval: iscsiSelfHealingInterval.String(),
11721174
ISCSISelfHealingWaitTime: iscsiSelfHealingWaitTime.String(),
11731175
NodePrep: nodePrep,
1176+
K8sAPIQPS: k8sAPIQPS,
11741177
}
11751178
returnError = client.CreateObjectByYAML(
11761179
k8sclient.GetCSIDaemonSetYAMLLinux(daemonSetArgs))

cli/k8s_client/types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ type DaemonsetYAMLArguments struct {
203203
ISCSISelfHealingInterval string `json:"iscsiSelfHealingInterval"`
204204
ISCSISelfHealingWaitTime string `json:"iscsiSelfHealingWaitTime"`
205205
NodePrep []string `json:"nodePrep"`
206+
K8sAPIQPS int `json:"k8sAPIQPS"`
206207
}
207208

208209
type TridentVersionPodYAMLArguments struct {

cli/k8s_client/yaml_factory.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,14 @@ func GetCSIDaemonSetYAMLWindows(args *DaemonsetYAMLArguments) string {
865865
debugLine = "#- -debug"
866866
}
867867

868+
var K8sAPITridentThrottle, K8sAPISidecarThrottle string
869+
if args.K8sAPIQPS != 0 {
870+
queriesPerSecond := args.K8sAPIQPS
871+
burst := getBurstValueForQPS(queriesPerSecond)
872+
K8sAPITridentThrottle = fmt.Sprintf("- --k8s_api_qps=%d\n - --k8s_api_burst=%d", queriesPerSecond, burst)
873+
K8sAPISidecarThrottle = fmt.Sprintf("- --kube-api-qps=%d\n - --kube-api-burst=%d", queriesPerSecond, burst)
874+
}
875+
868876
if IsLogLevelDebugOrHigher(args.LogLevel) || args.Debug {
869877
sidecarLogLevel = "8"
870878
} else {
@@ -927,6 +935,8 @@ func GetCSIDaemonSetYAMLWindows(args *DaemonsetYAMLArguments) string {
927935
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{HTTP_REQUEST_TIMEOUT}", args.HTTPRequestTimeout)
928936
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{SERVICE_ACCOUNT}", args.ServiceAccountName)
929937
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{IMAGE_PULL_POLICY}", args.ImagePullPolicy)
938+
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{K8S_API_CLIENT_TRIDENT_THROTTLE}", K8sAPITridentThrottle)
939+
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{K8S_API_CLIENT_SIDECAR_THROTTLE}", K8sAPISidecarThrottle)
930940
daemonSetYAML = yaml.ReplaceMultilineTag(daemonSetYAML, "NODE_SELECTOR", constructNodeSelector(args.NodeSelector))
931941
daemonSetYAML = yaml.ReplaceMultilineTag(daemonSetYAML, "NODE_TOLERATIONS", constructTolerations(tolerations))
932942
daemonSetYAML = yaml.ReplaceMultilineTag(daemonSetYAML, "LABELS", constructLabels(args.Labels))
@@ -979,6 +989,14 @@ func GetCSIDaemonSetYAMLLinux(args *DaemonsetYAMLArguments) string {
979989
}
980990
}
981991

992+
var K8sAPITridentThrottle, K8sAPISidecarThrottle string
993+
if args.K8sAPIQPS != 0 {
994+
queriesPerSecond := args.K8sAPIQPS
995+
burst := getBurstValueForQPS(queriesPerSecond)
996+
K8sAPITridentThrottle = fmt.Sprintf("- --k8s_api_qps=%d\n - --k8s_api_burst=%d", queriesPerSecond, burst)
997+
K8sAPISidecarThrottle = fmt.Sprintf("- --kube-api-qps=%d\n - --kube-api-burst=%d", queriesPerSecond, burst)
998+
}
999+
9821000
if args.ImageRegistry == "" {
9831001
args.ImageRegistry = commonconfig.KubernetesCSISidecarRegistry
9841002
}
@@ -1010,6 +1028,8 @@ func GetCSIDaemonSetYAMLLinux(args *DaemonsetYAMLArguments) string {
10101028
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{IMAGE_PULL_POLICY}", args.ImagePullPolicy)
10111029
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{ISCSI_SELF_HEALING_INTERVAL}", args.ISCSISelfHealingInterval)
10121030
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{ISCSI_SELF_HEALING_WAIT_TIME}", args.ISCSISelfHealingWaitTime)
1031+
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{K8S_API_CLIENT_TRIDENT_THROTTLE}", K8sAPITridentThrottle)
1032+
daemonSetYAML = strings.ReplaceAll(daemonSetYAML, "{K8S_API_CLIENT_SIDECAR_THROTTLE}", K8sAPISidecarThrottle)
10131033
daemonSetYAML = yaml.ReplaceMultilineTag(daemonSetYAML, "NODE_SELECTOR", constructNodeSelector(args.NodeSelector))
10141034
daemonSetYAML = yaml.ReplaceMultilineTag(daemonSetYAML, "NODE_TOLERATIONS", constructTolerations(tolerations))
10151035
daemonSetYAML = yaml.ReplaceMultilineTag(daemonSetYAML, "LABELS", constructLabels(args.Labels))
@@ -1136,6 +1156,7 @@ spec:
11361156
- "--iscsi_self_healing_interval={ISCSI_SELF_HEALING_INTERVAL}"
11371157
- "--iscsi_self_healing_wait_time={ISCSI_SELF_HEALING_WAIT_TIME}"
11381158
{DEBUG}
1159+
{K8S_API_CLIENT_TRIDENT_THROTTLE}
11391160
startupProbe:
11401161
httpGet:
11411162
path: /liveness
@@ -1202,6 +1223,7 @@ spec:
12021223
- "--v={SIDECAR_LOG_LEVEL}"
12031224
- "--csi-address=$(ADDRESS)"
12041225
- "--kubelet-registration-path=$(REGISTRATION_PATH)"
1226+
{K8S_API_CLIENT_SIDECAR_THROTTLE}
12051227
env:
12061228
- name: ADDRESS
12071229
value: /plugin/csi.sock
@@ -1330,6 +1352,7 @@ spec:
13301352
- "--https_rest"
13311353
- "--https_port={PROBE_PORT}"
13321354
{DEBUG}
1355+
{K8S_API_CLIENT_TRIDENT_THROTTLE}
13331356
# Windows requires named ports for it to actually bind
13341357
ports:
13351358
- containerPort: {PROBE_PORT}
@@ -1406,6 +1429,7 @@ spec:
14061429
- --v=2
14071430
- --csi-address=$(CSI_ENDPOINT)
14081431
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
1432+
{K8S_API_CLIENT_SIDECAR_THROTTLE}
14091433
livenessProbe:
14101434
exec:
14111435
command:

helm/trident-operator/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,3 +192,6 @@ ontapConfigurator:
192192

193193
# enableConcurrency enables the concurrent core feature in Trident **TECH PREVIEW**
194194
enableConcurrency: false
195+
196+
# k8sAPIQPS sets the maximum QPS to the Kubernetes API server from the Trident operator. (default 100)
197+
k8sAPIQPS: 100

operator/controllers/orchestrator/installer/installer.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1601,6 +1601,7 @@ func (i *Installer) createOrPatchTridentDaemonSet(
16011601
ISCSISelfHealingInterval: iscsiSelfHealingInterval,
16021602
ISCSISelfHealingWaitTime: iscsiSelfHealingWaitTime,
16031603
NodePrep: nodePrep,
1604+
K8sAPIQPS: k8sAPIQPS,
16041605
}
16051606

16061607
var newDaemonSetYAML string

0 commit comments

Comments
 (0)