Merge pull request #2970 from Poor12/fix-chart

Fix charts installation with component mode
This commit is contained in:
karmada-bot 2022-12-20 11:57:45 +08:00 committed by GitHub
commit 18d1ceca4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 102 additions and 10 deletions

View File

@ -347,6 +347,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `descheduler.affinity` | Affinity of the descheduler | `{}` |
| `descheduler.tolerations` | Tolerations of the descheduler | `{}` |
| `descheduler.strategy` | Strategy of the descheduler | `{"type": "RollingUpdate", "rollingUpdate": {"maxUnavailable": "0", "maxSurge": "50%"} }` |
| `descheduler.kubeconfig` | Kubeconfig of the descheduler | `karmada-kubeconfig` |
| `search.labels` | Labels of the search deployment | `{"app": "karmada-search", "apiserver": "true"}` |
| `search.replicaCount` | Target replicas of the search | `2` |
| `search.podAnnotations` | Annotations of the search pods | `{}` |
@ -360,3 +361,5 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `search.affinity` | Affinity of the search | `{}` |
| `search.tolerations` | Tolerations of the search | `{}` |
| `search.strategy` | Strategy of the search | `{"type": "RollingUpdate", "rollingUpdate": {"maxUnavailable": "0", "maxSurge": "50%"} }` |
| `search.certs` | Certs of the search | `karmada-cert` |
| `search.kubeconfig` | Kubeconfig of the search | `karmada-kubeconfig` |

View File

@ -135,9 +135,16 @@ app: {{$name}}
{{- end -}}
{{- define "karmada.descheduler.kubeconfig.volume" -}}
{{ $name := include "karmada.name" . }}
{{- if eq .Values.installMode "host" -}}
- name: kubeconfig-secret
secret:
secretName: karmada-kubeconfig
secretName: {{ $name }}-kubeconfig
{{- else -}}
- name: kubeconfig-secret
secret:
secretName: {{ .Values.descheduler.kubeconfig }}
{{- end -}}
{{- end -}}
@ -222,6 +229,25 @@ app: {{- include "karmada.name" .}}-search
{{- end }}
{{- end -}}
{{- define "karmada.search.kubeconfig.volume" -}}
{{ $name := include "karmada.name" . }}
{{- if eq .Values.installMode "host" -}}
- name: k8s-certs
secret:
secretName: {{ $name }}-cert
- name: kubeconfig-secret
secret:
secretName: {{ $name }}-kubeconfig
{{- else -}}
- name: k8s-certs
secret:
secretName: {{ .Values.search.certs }}
- name: kubeconfig-secret
secret:
secretName: {{ .Values.search.kubeconfig }}
{{- end -}}
{{- end -}}
{{/*
Return the proper karmada internal etcd image name
*/}}

View File

@ -1,5 +1,6 @@
{{- define "karmada.apiservice" -}}
{{- $name := include "karmada.name" . -}}
{{- if eq .Values.installMode "host" }}
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService
@ -26,8 +27,8 @@ metadata:
spec:
type: ExternalName
externalName: {{ $name }}-aggregated-apiserver.{{ include "karmada.namespace" . }}.svc.{{ .Values.clusterDomain }}
{{- if and (or (eq .Values.installMode "component") (eq .Values.installMode "host")) (has "search" .Values.components) }}
{{- end }}
{{- if has "search" .Values.components }}
---
apiVersion: apiregistration.k8s.io/v1
kind: APIService

View File

@ -44,7 +44,7 @@ spec:
- name: k8s-certs
mountPath: /etc/kubernetes/pki
readOnly: true
- name: kubeconfig
- name: kubeconfig-secret
subPath: kubeconfig
mountPath: /etc/kubeconfig
command:
@ -74,12 +74,7 @@ spec:
resources:
{{- toYaml .Values.apiServer.resources | nindent 12 }}
volumes:
- name: k8s-certs
secret:
secretName: karmada-cert
- name: kubeconfig
secret:
secretName: {{ $name }}-kubeconfig
{{- include "karmada.search.kubeconfig.volume" . | nindent 8 }}
---
apiVersion: v1
kind: Service
@ -95,4 +90,65 @@ spec:
targetPort: 443
selector:
{{- include "karmada.search.labels" . | nindent 4 }}
{{- if eq .Values.installMode "component" }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $name }}-search-apiservice
namespace: {{ include "karmada.namespace" . }}
data:
{{- print "karmada-search-apiservice.yaml: " | nindent 2 }} |-
{{- include "karmada.apiservice" . | nindent 4 }}
---
apiVersion: batch/v1
kind: Job
metadata:
name: "{{ $name }}-search-post-install"
namespace: {{ include "karmada.namespace" . }}
labels:
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ $name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
annotations:
# This is what defines this resource as a hook. Without this line, the
# job is considered part of the release.
"helm.sh/hook": post-install
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
parallelism: 1
completions: 1
template:
metadata:
name: {{ $name }}
labels:
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ $name | quote }}
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
spec:
restartPolicy: Never
containers:
- name: post-install
image: {{ template "karmada.kubectl.image" . }}
imagePullPolicy: {{ .Values.kubectl.image.pullPolicy }}
command:
- /bin/sh
- -c
- |
bash <<'EOF'
set -ex
kubectl apply -f /search-apiservice --kubeconfig /etc/kubeconfig
EOF
volumeMounts:
- name: {{ $name }}-search-apiservice
mountPath: /search-apiservice
{{ include "karmada.kubeconfig.volumeMount" . | nindent 12 }}
volumes:
- name: {{ $name }}-search-apiservice
configMap:
name: {{ $name }}-search-apiservice
{{ include "karmada.search.kubeconfig.volume" . | nindent 8 }}
{{- end }}
{{- end }}

View File

@ -772,6 +772,8 @@ descheduler:
rollingUpdate:
maxUnavailable: 0
maxSurge: 50%
## @param descheduler.kubeconfig kubeconfig of the descheduler
kubeconfig: karmada-kubeconfig
## karmada-search config
search:
@ -829,3 +831,7 @@ search:
rollingUpdate:
maxUnavailable: 0
maxSurge: 50%
## @param search.certs certs of the search
certs: karmada-cert
## @param search.kubeconfig kubeconfig of the search
kubeconfig: karmada-kubeconfig