helm: support PodDisruptionBudget for resources

Signed-off-by: Amir Alavi <amiralavi7@gmail.com>
This commit is contained in:
Amir Alavi 2023-08-18 16:05:16 -04:00
parent dc921e8a68
commit 823aeb3175
No known key found for this signature in database
GPG Key ID: 9BFF951CCD6037E7
11 changed files with 192 additions and 0 deletions

View File

@ -131,4 +131,21 @@ spec:
- name: kubeconfig - name: kubeconfig
secret: secret:
secretName: {{ $name }}-kubeconfig secretName: {{ $name }}-kubeconfig
{{ if .Values.agent.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.agent.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.agent.labels" . | nindent 6 }}
{{ toYaml .Values.agent.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -124,4 +124,20 @@ spec:
selector: selector:
{{- include "karmada.aggregatedApiserver.labels" . | nindent 4 }} {{- include "karmada.aggregatedApiserver.labels" . | nindent 4 }}
{{ if and .Values.aggregatedApiserver .Values.aggregatedApiserver.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-aggregated-apiserver
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.aggregatedApiserver.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.aggregatedApiserver.labels" . | nindent 6 }}
{{ toYaml .Values.aggregatedApiserver.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -170,4 +170,20 @@ spec:
selector: selector:
{{- include "karmada.apiserver.labels" . | nindent 4}} {{- include "karmada.apiserver.labels" . | nindent 4}}
{{ if .Values.apiServer.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-apiserver
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.apiserver.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.apiserver.labels" . | nindent 6}}
{{ toYaml .Values.apiServer.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -75,5 +75,22 @@ spec:
{{- include "karmada.kubeconfig.volumeMount" . | nindent 12 }} {{- include "karmada.kubeconfig.volumeMount" . | nindent 12 }}
resources: resources:
{{- toYaml .Values.controllerManager.resources | nindent 12 }} {{- toYaml .Values.controllerManager.resources | nindent 12 }}
{{ if .Values.controllerManager.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-controller-manager
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.cm.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.cm.labels" . | nindent 6 }}
{{ toYaml .Values.controllerManager.podDisruptionBudget | nindent 2 }}
{{- end -}}
--- ---
{{- end }} {{- end }}

View File

@ -66,4 +66,21 @@ spec:
{{- toYaml .Values.descheduler.resources | nindent 12 }} {{- toYaml .Values.descheduler.resources | nindent 12 }}
volumes: volumes:
{{- include "karmada.descheduler.kubeconfig.volume" . | nindent 8 }} {{- include "karmada.descheduler.kubeconfig.volume" . | nindent 8 }}
{{ if .Values.descheduler.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-descheduler
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.descheduler.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.descheduler.labels" . | nindent 6}}
{{ toYaml .Values.descheduler.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -105,4 +105,23 @@ stringData:
user: {{ $clusterName }}-apiserver user: {{ $clusterName }}-apiserver
name: {{ $clusterName }}-apiserver name: {{ $clusterName }}-apiserver
current-context: {{ $clusterName }}-apiserver current-context: {{ $clusterName }}-apiserver
{{ if .Values.schedulerEstimator.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: karmada-scheduler-estimator-{{ $clusterName }}
namespace: {{ include "karmada.namespace" . }}
labels:
cluster: {{ $clusterName }}
{{- include "karmada.schedulerEstimator.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
app: karmada-scheduler-estimator-{{ $clusterName }}
{{- include "karmada.schedulerEstimator.labels" . | nindent 6 }}
{{ toYaml .Values.schedulerEstimator.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -66,6 +66,23 @@ spec:
{{- toYaml .Values.scheduler.resources | nindent 12 }} {{- toYaml .Values.scheduler.resources | nindent 12 }}
volumes: volumes:
{{- include "karmada.kubeconfig.volume" . | nindent 8 }} {{- include "karmada.kubeconfig.volume" . | nindent 8 }}
{{ if .Values.scheduler.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-scheduler
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.scheduler.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.scheduler.labels" . | nindent 6 }}
{{ toYaml .Values.scheduler.podDisruptionBudget | nindent 2 }}
{{- end }}
--- ---
{{- end }} {{- end }}

View File

@ -167,4 +167,21 @@ spec:
name: {{ $name }}-search-apiservice name: {{ $name }}-search-apiservice
{{ include "karmada.search.kubeconfig.volume" . | nindent 8 }} {{ include "karmada.search.kubeconfig.volume" . | nindent 8 }}
{{- end }} {{- end }}
{{ if .Values.search.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-search
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.search.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.search.labels" . | nindent 6 }}
{{ toYaml .Values.search.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -81,4 +81,20 @@ spec:
- port: 443 - port: 443
targetPort: 8443 targetPort: 8443
{{ if .Values.webhook.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-webhook
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.webhook.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.webhook.labels" . | nindent 6 }}
{{ toYaml .Values.webhook.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -88,4 +88,21 @@ spec:
secret: secret:
secretName: {{ $name }}-cert secretName: {{ $name }}-cert
{{- include "karmada.kubeconfig.volume" . | nindent 8 }} {{- include "karmada.kubeconfig.volume" . | nindent 8 }}
{{ if .Values.kubeControllerManager.podDisruptionBudget }}
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ $name }}-kube-controller-manager
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.kube-cm.labels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "karmada.kube-cm.labels" . | nindent 6 }}
{{ toYaml .Values.kubeControllerManager.podDisruptionBudget | nindent 2 }}
{{- end -}}
{{- end }} {{- end }}

View File

@ -19,6 +19,9 @@ global:
## for more details about yaml anchors and aliases. ## for more details about yaml anchors and aliases.
karmadaImageVersion: &karmadaImageVersion latest karmadaImageVersion: &karmadaImageVersion latest
podDisruptionBudget: &podDisruptionBudget {}
# maxUnavailable: 20%
## @param installMode "host" and "agent" are provided ## @param installMode "host" and "agent" are provided
## "host" means install karmada in the control-cluster ## "host" means install karmada in the control-cluster
## "agent" means install agent client in the member cluster ## "agent" means install agent client in the member cluster
@ -192,6 +195,8 @@ scheduler:
rollingUpdate: rollingUpdate:
maxUnavailable: 0 maxUnavailable: 0
maxSurge: 50% maxSurge: 50%
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## webhook config ## webhook config
webhook: webhook:
@ -249,6 +254,8 @@ webhook:
rollingUpdate: rollingUpdate:
maxUnavailable: 0 maxUnavailable: 0
maxSurge: 50% maxSurge: 50%
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## controller manager config ## controller manager config
controllerManager: controllerManager:
@ -314,6 +321,8 @@ controllerManager:
controllers: "" controllers: ""
## @param extraCommandArgs to extraCommandArgs ## @param extraCommandArgs to extraCommandArgs
extraCommandArgs: {} extraCommandArgs: {}
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## karmada apiserver config ## karmada apiserver config
apiServer: apiServer:
@ -396,6 +405,8 @@ apiServer:
rollingUpdate: rollingUpdate:
maxUnavailable: 1 maxUnavailable: 1
maxSurge: 1 maxSurge: 1
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## karmada aggregated apiserver config ## karmada aggregated apiserver config
aggregatedApiServer: aggregatedApiServer:
@ -455,6 +466,8 @@ aggregatedApiServer:
rollingUpdate: rollingUpdate:
maxUnavailable: 0 maxUnavailable: 0
maxSurge: 50% maxSurge: 50%
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## kubernetes controller manager config ## kubernetes controller manager config
kubeControllerManager: kubeControllerManager:
@ -514,6 +527,8 @@ kubeControllerManager:
maxUnavailable: 0 maxUnavailable: 0
maxSurge: 50% maxSurge: 50%
controllers: namespace,garbagecollector,serviceaccount-token,ttl-after-finished,bootstrapsigner,tokencleaner,csrapproving,csrcleaner,csrsigning controllers: namespace,garbagecollector,serviceaccount-token,ttl-after-finished,bootstrapsigner,tokencleaner,csrapproving,csrcleaner,csrsigning
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## etcd config ## etcd config
etcd: etcd:
@ -680,6 +695,8 @@ agent:
rollingUpdate: rollingUpdate:
maxUnavailable: 0 maxUnavailable: 0
maxSurge: 50% maxSurge: 50%
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## karmada scheduler estimator ## karmada scheduler estimator
schedulerEstimator: schedulerEstimator:
@ -758,6 +775,8 @@ schedulerEstimator:
rollingUpdate: rollingUpdate:
maxUnavailable: 0 maxUnavailable: 0
maxSurge: 50% maxSurge: 50%
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## descheduler config ## descheduler config
descheduler: descheduler:
@ -817,6 +836,8 @@ descheduler:
maxSurge: 50% maxSurge: 50%
## @param descheduler.kubeconfig kubeconfig of the descheduler ## @param descheduler.kubeconfig kubeconfig of the descheduler
kubeconfig: karmada-kubeconfig kubeconfig: karmada-kubeconfig
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget
## karmada-search config ## karmada-search config
search: search:
@ -878,3 +899,5 @@ search:
certs: karmada-cert certs: karmada-cert
## @param search.kubeconfig kubeconfig of the search ## @param search.kubeconfig kubeconfig of the search
kubeconfig: karmada-kubeconfig kubeconfig: karmada-kubeconfig
## @param apiServer.podDisruptionBudget
podDisruptionBudget: *podDisruptionBudget