From 557602e180d58450a0782c01a29cb5fb2071a9ee Mon Sep 17 00:00:00 2001 From: zhzhuang-zju Date: Tue, 11 Feb 2025 16:36:19 +0800 Subject: [PATCH] Add Support for Component Priority Class Configuration in helm Signed-off-by: zhzhuang-zju --- charts/karmada/templates/etcd.yaml | 1 + charts/karmada/templates/karmada-agent.yaml | 1 + .../karmada-aggregated-apiserver.yaml | 1 + .../karmada/templates/karmada-apiserver.yaml | 2 +- .../templates/karmada-controller-manager.yaml | 1 + .../templates/karmada-descheduler.yaml | 1 + .../templates/karmada-metrics-adapter.yaml | 1 + .../karmada-scheduler-estimator.yaml | 1 + .../karmada/templates/karmada-scheduler.yaml | 1 + charts/karmada/templates/karmada-search.yaml | 1 + charts/karmada/templates/karmada-webhook.yaml | 1 + .../templates/kube-controller-manager.yaml | 2 +- charts/karmada/values.yaml | 24 +++++++++++++++++++ 13 files changed, 36 insertions(+), 2 deletions(-) diff --git a/charts/karmada/templates/etcd.yaml b/charts/karmada/templates/etcd.yaml index 786bfd25d..3a46f144c 100644 --- a/charts/karmada/templates/etcd.yaml +++ b/charts/karmada/templates/etcd.yaml @@ -101,6 +101,7 @@ spec: # They are obtained by the return value of the function CipherSuites() under the go/src/crypto/tls/cipher_suites.go package. # Consistent with the Preferred values of k8s’s default cipher suites. - --cipher-suites=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 + priorityClassName: {{ .Values.etcd.internal.priorityClassName }} volumes: - name: etcd-cert secret: diff --git a/charts/karmada/templates/karmada-agent.yaml b/charts/karmada/templates/karmada-agent.yaml index afecdfcf4..248fbef54 100644 --- a/charts/karmada/templates/karmada-agent.yaml +++ b/charts/karmada/templates/karmada-agent.yaml @@ -130,6 +130,7 @@ spec: mountPath: /etc/kubeconfig resources: {{- toYaml .Values.agent.resources | nindent 12 }} + priorityClassName: {{ .Values.agent.priorityClassName }} volumes: - name: kubeconfig secret: diff --git a/charts/karmada/templates/karmada-aggregated-apiserver.yaml b/charts/karmada/templates/karmada-aggregated-apiserver.yaml index d353cc8b3..e522fa464 100644 --- a/charts/karmada/templates/karmada-aggregated-apiserver.yaml +++ b/charts/karmada/templates/karmada-aggregated-apiserver.yaml @@ -97,6 +97,7 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + priorityClassName: {{ .Values.aggregatedApiServer.priorityClassName }} volumes: {{- include "karmada.kubeconfig.volume" . | nindent 8 }} - name: apiserver-cert diff --git a/charts/karmada/templates/karmada-apiserver.yaml b/charts/karmada/templates/karmada-apiserver.yaml index 69d2e2852..151211770 100644 --- a/charts/karmada/templates/karmada-apiserver.yaml +++ b/charts/karmada/templates/karmada-apiserver.yaml @@ -117,7 +117,6 @@ spec: {{- end }} preemptionPolicy: PreemptLowerPriority priority: 2000001000 - priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler terminationGracePeriodSeconds: 30 @@ -133,6 +132,7 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + priorityClassName: {{ .Values.apiServer.priorityClassName }} volumes: - name: apiserver-cert secret: diff --git a/charts/karmada/templates/karmada-controller-manager.yaml b/charts/karmada/templates/karmada-controller-manager.yaml index 41585c54a..919e0cd62 100644 --- a/charts/karmada/templates/karmada-controller-manager.yaml +++ b/charts/karmada/templates/karmada-controller-manager.yaml @@ -41,6 +41,7 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + priorityClassName: {{ .Values.controllerManager.priorityClassName }} volumes: {{- include "karmada.kubeconfig.volume" . | nindent 8 }} initContainers: diff --git a/charts/karmada/templates/karmada-descheduler.yaml b/charts/karmada/templates/karmada-descheduler.yaml index 21772976f..c9fa2f1f6 100644 --- a/charts/karmada/templates/karmada-descheduler.yaml +++ b/charts/karmada/templates/karmada-descheduler.yaml @@ -77,6 +77,7 @@ spec: {{- include "karmada.kubeconfig.volumeMount" . | nindent 12 }} resources: {{- toYaml .Values.descheduler.resources | nindent 12 }} + priorityClassName: {{ .Values.descheduler.priorityClassName }} volumes: {{- include "karmada.descheduler.kubeconfig.volume" . | nindent 8 }} {{- include "karmada.scheduler.cert.volume" . | nindent 8 }} diff --git a/charts/karmada/templates/karmada-metrics-adapter.yaml b/charts/karmada/templates/karmada-metrics-adapter.yaml index 0bb881d46..c0ae35998 100644 --- a/charts/karmada/templates/karmada-metrics-adapter.yaml +++ b/charts/karmada/templates/karmada-metrics-adapter.yaml @@ -83,6 +83,7 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + priorityClassName: {{ .Values.metricsAdapter.priorityClassName }} volumes: {{- include "karmada.kubeconfig.volume" . | nindent 8 }} - name: apiserver-cert diff --git a/charts/karmada/templates/karmada-scheduler-estimator.yaml b/charts/karmada/templates/karmada-scheduler-estimator.yaml index 7c1eabd7d..3a146688e 100644 --- a/charts/karmada/templates/karmada-scheduler-estimator.yaml +++ b/charts/karmada/templates/karmada-scheduler-estimator.yaml @@ -78,6 +78,7 @@ spec: mountPath: /etc/{{ $clusterName }}-kubeconfig resources: {{- toYaml $.Values.schedulerEstimator.resources | nindent 12 }} + priorityClassName: {{ $.Values.schedulerEstimator.priorityClassName }} volumes: {{- include "karmada.scheduler.cert.volume" $ | nindent 8 }} - name: member-kubeconfig diff --git a/charts/karmada/templates/karmada-scheduler.yaml b/charts/karmada/templates/karmada-scheduler.yaml index a690c5319..34a4e78f7 100644 --- a/charts/karmada/templates/karmada-scheduler.yaml +++ b/charts/karmada/templates/karmada-scheduler.yaml @@ -76,6 +76,7 @@ spec: {{- include "karmada.kubeconfig.volumeMount" . | nindent 12 }} resources: {{- toYaml .Values.scheduler.resources | nindent 12 }} + priorityClassName: {{ .Values.scheduler.priorityClassName }} volumes: {{- include "karmada.kubeconfig.volume" . | nindent 8 }} {{- include "karmada.scheduler.cert.volume" . | nindent 8 }} diff --git a/charts/karmada/templates/karmada-search.yaml b/charts/karmada/templates/karmada-search.yaml index 76c9f7261..e33493378 100644 --- a/charts/karmada/templates/karmada-search.yaml +++ b/charts/karmada/templates/karmada-search.yaml @@ -91,6 +91,7 @@ spec: timeoutSeconds: 5 resources: {{- toYaml .Values.apiServer.resources | nindent 12 }} + priorityClassName: {{ .Values.search.priorityClassName }} volumes: {{- include "karmada.search.kubeconfig.volume" . | nindent 8 }} {{- include "karmada.search.etcd.cert.volume" . | nindent 8 }} diff --git a/charts/karmada/templates/karmada-webhook.yaml b/charts/karmada/templates/karmada-webhook.yaml index 9a2ae56a7..866f5ba3c 100644 --- a/charts/karmada/templates/karmada-webhook.yaml +++ b/charts/karmada/templates/karmada-webhook.yaml @@ -70,6 +70,7 @@ spec: scheme: HTTPS resources: {{- toYaml .Values.webhook.resources | nindent 12 }} + priorityClassName: {{ .Values.webhook.priorityClassName }} volumes: {{- include "karmada.kubeconfig.volume" . | nindent 8 }} - name: {{ $name }}-webhook-cert-secret diff --git a/charts/karmada/templates/kube-controller-manager.yaml b/charts/karmada/templates/kube-controller-manager.yaml index 1d6eb64c2..2611ff683 100644 --- a/charts/karmada/templates/kube-controller-manager.yaml +++ b/charts/karmada/templates/kube-controller-manager.yaml @@ -84,7 +84,7 @@ spec: name: apiserver-cert readOnly: true {{- include "karmada.kubeconfig.volumeMount" . | nindent 12 }} - priorityClassName: system-node-critical + priorityClassName: {{ .Values.kubeControllerManager.priorityClassName }} volumes: - name: apiserver-cert secret: diff --git a/charts/karmada/values.yaml b/charts/karmada/values.yaml index e4c557396..810aac68d 100644 --- a/charts/karmada/values.yaml +++ b/charts/karmada/values.yaml @@ -232,6 +232,8 @@ scheduler: maxSurge: 50% ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param scheduler.priorityClassName the priority class name for the karmada-scheduler + priorityClassName: "system-node-critical" ## webhook config webhook: @@ -288,6 +290,8 @@ webhook: maxSurge: 50% ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param webhook.priorityClassName the priority class name for the karmada-webhook + priorityClassName: "system-node-critical" ## controller manager config controllerManager: @@ -352,6 +356,8 @@ controllerManager: extraCommandArgs: {} ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param controllerManager.priorityClassName the priority class name for the karmada-controller-manager + priorityClassName: "system-node-critical" ## karmada apiserver config apiServer: @@ -435,6 +441,8 @@ apiServer: maxSurge: 1 ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param apiServer.priorityClassName the priority class name for the karmada-apiserver + priorityClassName: "system-node-critical" ## karmada aggregated apiserver config aggregatedApiServer: @@ -493,6 +501,8 @@ aggregatedApiServer: maxSurge: 50% ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param aggregatedApiServer.priorityClassName the priority class name for the karmada-aggregated-apiserver. + priorityClassName: "system-node-critical" ## karmada metrics adapter config metricsAdapter: @@ -551,6 +561,8 @@ metricsAdapter: maxSurge: 50% ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param metricsAadpter.priorityClassName the priority class name for the karmada-mertics-adapter + priorityClassName: "system-node-critical" ## kubernetes controller manager config kubeControllerManager: @@ -612,6 +624,8 @@ kubeControllerManager: podDisruptionBudget: *podDisruptionBudget serviceClusterIPRange: "10.96.0.0/12" clusterCIDR: "10.244.0.0/16" + ## @param kubeControllerManager.priorityClassName the priority class name for the kube-controller-manager + priorityClassName: "system-node-critical" ## etcd config etcd: @@ -696,6 +710,8 @@ etcd: # requests: # cpu: 100m # memory: 128Mi + ## @param etcd.internal.priorityClassName the priority class name for the etcd + priorityClassName: "system-node-critical" ## agent client config agent: @@ -775,6 +791,8 @@ agent: maxSurge: 50% ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param agent.priorityClassName the priority class name for the karmada-agent + priorityClassName: "system-node-critical" ## karmada scheduler estimator schedulerEstimator: @@ -857,6 +875,8 @@ schedulerEstimator: ## @param featureGate to schedulerEstimator # FooPluginName: true featureGates: {} + ## @param schedulerEstimator.priorityClassName the priority class name for the scheduler-estimator + priorityClassName: "system-node-critical" ## descheduler config descheduler: @@ -915,6 +935,8 @@ descheduler: kubeconfig: karmada-kubeconfig ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param descheduler.priorityClassName the priority class name for the descheduler + priorityClassName: "system-node-critical" ## karmada-search config search: @@ -975,3 +997,5 @@ search: kubeconfig: karmada-kubeconfig ## @param apiServer.podDisruptionBudget podDisruptionBudget: *podDisruptionBudget + ## @param search.priorityClassName the priority class name for the karmada-search + priorityClassName: "system-node-critical"