{{- if and (eq .Values.installMode "component") (has "schedulerEstimator" .Values.components) }} {{ $namespace := include "karmada.namespace" .}} {{ $clusterName := .Values.schedulerEstimator.clusterName }} --- apiVersion: apps/v1 kind: Deployment metadata: name: karmada-scheduler-estimator-{{ $clusterName }} namespace: {{ $namespace }} labels: cluster: {{ $clusterName }} {{- include "karmada.schedulerEstimator.labels" . | nindent 4}} spec: replicas: {{ .Values.schedulerEstimator.replicaCount }} selector: matchLabels: app: karmada-scheduler-estimator-{{ $clusterName }} {{- include "karmada.schedulerEstimator.labels" . | nindent 6}} {{- with .Values.schedulerEstimator.strategy }} strategy: {{- toYaml . | nindent 8 }} {{- end }} template: metadata: {{- with .Values.schedulerEstimator.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} labels: app: karmada-scheduler-estimator-{{ $clusterName }} {{- include "karmada.schedulerEstimator.labels" . | nindent 8}} {{- include "karmada.schedulerEstimator.podLabels" . | nindent 8}} spec: {{- with .Values.schedulerEstimator.tolerations}} tolerations: {{- toYaml . | nindent 8 }} {{- end }} containers: - name: karmada-scheduler-estimator image: "{{ .Values.schedulerEstimator.image.repository }}:{{ .Values.schedulerEstimator.image.tag | default "latest" }}" imagePullPolicy: {{ .Values.schedulerEstimator.image.pullPolicy }} command: - /bin/karmada-scheduler-estimator - --kubeconfig=/etc/{{ $clusterName }}-kubeconfig - --cluster-name={{ $clusterName }} volumeMounts: - name: member-kubeconfig subPath: {{ $clusterName }}-kubeconfig mountPath: /etc/{{ $clusterName }}-kubeconfig volumes: - name: member-kubeconfig secret: secretName: {{ $clusterName }}-kubeconfig --- apiVersion: v1 kind: Service metadata: name: karmada-scheduler-estimator-{{ $clusterName }} namespace: {{ $namespace }} labels: cluster: {{ $clusterName }} spec: selector: app: karmada-scheduler-estimator-{{ $clusterName }} {{- include "karmada.schedulerEstimator.labels" . | nindent 4}} ports: - protocol: TCP port: 10352 targetPort: 10352 --- apiVersion: v1 kind: Secret metadata: name: {{ $clusterName }}-kubeconfig namespace: {{ $namespace }} stringData: {{ $clusterName }}-kubeconfig: |- apiVersion: v1 kind: Config clusters: - cluster: certificate-authority-data: {{ b64enc .Values.schedulerEstimator.kubeconfig.caCrt }} insecure-skip-tls-verify: false server: {{ .Values.schedulerEstimator.kubeconfig.server }} name: {{ $clusterName }}-apiserver users: - user: client-certificate-data: {{ b64enc .Values.schedulerEstimator.kubeconfig.crt }} client-key-data: {{ b64enc .Values.schedulerEstimator.kubeconfig.key }} name: {{ $clusterName }}-apiserver contexts: - context: cluster: {{ $clusterName }}-apiserver user: {{ $clusterName }}-apiserver name: {{ $clusterName }}-apiserver current-context: {{ $clusterName }}-apiserver {{- end }}