feat: support install metrics adapter with chart
Signed-off-by: jwcesign <jwcesign@gmail.com>
This commit is contained in:
parent
bf1098ba1c
commit
d86d922d0d
|
@ -62,6 +62,24 @@ app: {{- include "karmada.name" .}}-aggregated-apiserver
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "karmada.metricsAdapter.labels" -}}
|
||||||
|
{{- if .Values.metricsAdapter.labels }}
|
||||||
|
{{- range $key, $value := .Values.metricsAdapter.labels }}
|
||||||
|
{{ $key }}: {{ $value }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else}}
|
||||||
|
app: {{- include "karmada.name" .}}-metrics-adapter
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "karmada.metricsAdapter.podLabels" -}}
|
||||||
|
{{- if .Values.metricsAdapter.podLabels }}
|
||||||
|
{{- range $key, $value := .Values.metricsAdapter.podLabels }}
|
||||||
|
{{ $key }}: {{ $value }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "karmada.kube-cm.labels" -}}
|
{{- define "karmada.kube-cm.labels" -}}
|
||||||
{{- if .Values.kubeControllerManager.labels }}
|
{{- if .Values.kubeControllerManager.labels }}
|
||||||
{{- range $key, $value := .Values.kubeControllerManager.labels }}
|
{{- range $key, $value := .Values.kubeControllerManager.labels }}
|
||||||
|
@ -422,6 +440,20 @@ Return the proper Docker Image Registry Secret Names
|
||||||
{{ include "common.images.pullSecrets" (dict "images" (list .Values.aggregatedApiServer.image) "global" .Values.global) }}
|
{{ include "common.images.pullSecrets" (dict "images" (list .Values.aggregatedApiServer.image) "global" .Values.global) }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Return the proper karmada metricsAdapter image name
|
||||||
|
*/}}
|
||||||
|
{{- define "karmada.metricsAdapter.image" -}}
|
||||||
|
{{ include "common.images.image" (dict "imageRoot" .Values.metricsAdapter.image "global" .Values.global) }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Return the proper Docker Image Registry Secret Names
|
||||||
|
*/}}
|
||||||
|
{{- define "karmada.metricsAdapter.imagePullSecrets" -}}
|
||||||
|
{{ include "common.images.pullSecrets" (dict "images" (list .Values.metricsAdapter.image) "global" .Values.global) }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Return the proper karmada search image name
|
Return the proper karmada search image name
|
||||||
*/}}
|
*/}}
|
||||||
|
|
|
@ -28,6 +28,66 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
type: ExternalName
|
type: ExternalName
|
||||||
externalName: {{ $name }}-aggregated-apiserver.{{ include "karmada.namespace" . }}.svc.{{ .Values.clusterDomain }}
|
externalName: {{ $name }}-aggregated-apiserver.{{ include "karmada.namespace" . }}.svc.{{ .Values.clusterDomain }}
|
||||||
|
---
|
||||||
|
apiVersion: apiregistration.k8s.io/v1
|
||||||
|
kind: APIService
|
||||||
|
metadata:
|
||||||
|
name: v1beta1.metrics.k8s.io
|
||||||
|
labels:
|
||||||
|
app: {{ $name }}-metrics-adapter
|
||||||
|
apiserver: "true"
|
||||||
|
spec:
|
||||||
|
{{- include "karmada.apiserver.caBundle" . | nindent 2 }}
|
||||||
|
group: metrics.k8s.io
|
||||||
|
groupPriorityMinimum: 100
|
||||||
|
service:
|
||||||
|
name: {{ $name }}-metrics-adapter
|
||||||
|
namespace: {{ $systemNamespace }}
|
||||||
|
version: v1beta1
|
||||||
|
versionPriority: 200
|
||||||
|
---
|
||||||
|
apiVersion: apiregistration.k8s.io/v1
|
||||||
|
kind: APIService
|
||||||
|
metadata:
|
||||||
|
name: v1beta2.custom.metrics.k8s.io
|
||||||
|
labels:
|
||||||
|
app: {{ $name }}-metrics-adapter
|
||||||
|
apiserver: "true"
|
||||||
|
spec:
|
||||||
|
{{- include "karmada.apiserver.caBundle" . | nindent 2 }}
|
||||||
|
group: custom.metrics.k8s.io
|
||||||
|
groupPriorityMinimum: 100
|
||||||
|
service:
|
||||||
|
name: {{ $name }}-metrics-adapter
|
||||||
|
namespace: {{ $systemNamespace }}
|
||||||
|
version: v1beta2
|
||||||
|
versionPriority: 200
|
||||||
|
---
|
||||||
|
apiVersion: apiregistration.k8s.io/v1
|
||||||
|
kind: APIService
|
||||||
|
metadata:
|
||||||
|
name: v1beta1.custom.metrics.k8s.io
|
||||||
|
labels:
|
||||||
|
app: {{ $name }}-metrics-adapter
|
||||||
|
apiserver: "true"
|
||||||
|
spec:
|
||||||
|
{{- include "karmada.apiserver.caBundle" . | nindent 2 }}
|
||||||
|
group: custom.metrics.k8s.io
|
||||||
|
groupPriorityMinimum: 100
|
||||||
|
service:
|
||||||
|
name: {{ $name }}-metrics-adapter
|
||||||
|
namespace: {{ $systemNamespace }}
|
||||||
|
version: v1beta1
|
||||||
|
versionPriority: 200
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}-metrics-adapter
|
||||||
|
namespace: {{ $systemNamespace }}
|
||||||
|
spec:
|
||||||
|
type: ExternalName
|
||||||
|
externalName: {{ $name }}-metrics-adapter.{{ include "karmada.namespace" . }}.svc.{{ .Values.clusterDomain }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if has "search" .Values.components }}
|
{{- if has "search" .Values.components }}
|
||||||
---
|
---
|
||||||
|
|
|
@ -0,0 +1,119 @@
|
||||||
|
{{- if eq .Values.installMode "host" }}
|
||||||
|
{{- $name := include "karmada.name" . -}}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}-metrics-adapter
|
||||||
|
namespace: {{ include "karmada.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "karmada.metricsAdapter.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "karmada.metricsAdapter.labels" . | nindent 6 }}
|
||||||
|
replicas: {{ .Values.metricsAdapter.replicaCount }}
|
||||||
|
{{- with .Values.metricsAdapter.strategy }}
|
||||||
|
strategy:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
{{- with .Values.metricsAdapter.podAnnotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
labels:
|
||||||
|
{{- include "karmada.metricsAdapter.labels" . | nindent 8 }}
|
||||||
|
{{- include "karmada.metricsAdapter.podLabels" . | nindent 8 }}
|
||||||
|
spec:
|
||||||
|
{{- include "karmada.metricsAdapter.imagePullSecrets" . | nindent 6 }}
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
containers:
|
||||||
|
- name: {{ $name }}-aggregated-apiserver
|
||||||
|
image: {{ template "karmada.metricsAdapter.image" . }}
|
||||||
|
imagePullPolicy: {{ .Values.metricsAdapter.image.pullPolicy }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "karmada.kubeconfig.volumeMount" . | nindent 12 }}
|
||||||
|
- name: apiserver-cert
|
||||||
|
mountPath: /etc/kubernetes/pki
|
||||||
|
readOnly: true
|
||||||
|
command:
|
||||||
|
- /bin/karmada-metrics-adapter
|
||||||
|
- --kubeconfig=/etc/kubeconfig
|
||||||
|
- --authentication-kubeconfig=/etc/kubeconfig
|
||||||
|
- --authorization-kubeconfig=/etc/kubeconfig
|
||||||
|
- --tls-cert-file=/etc/kubernetes/pki/karmada.crt
|
||||||
|
- --tls-private-key-file=/etc/kubernetes/pki/karmada.key
|
||||||
|
- --audit-log-path=-
|
||||||
|
- --audit-log-maxage=0
|
||||||
|
- --audit-log-maxbackup=0
|
||||||
|
- --tls-min-version=VersionTLS13
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.metricsAdapter.resources | nindent 12 }}
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /readyz
|
||||||
|
port: 443
|
||||||
|
scheme: HTTPS
|
||||||
|
initialDelaySeconds: 1
|
||||||
|
periodSeconds: 3
|
||||||
|
timeoutSeconds: 15
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 443
|
||||||
|
scheme: HTTPS
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 15
|
||||||
|
{{- with .Values.metricsAdapter.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.metricsAdapter.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.metricsAdapter.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
{{- include "karmada.kubeconfig.volume" . | nindent 8 }}
|
||||||
|
- name: apiserver-cert
|
||||||
|
secret:
|
||||||
|
secretName: {{ $name }}-cert
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}-metrics-adapter
|
||||||
|
namespace: {{ include "karmada.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "karmada.metricsAdapter.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 443
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 443
|
||||||
|
selector:
|
||||||
|
{{- include "karmada.metricsAdapter.labels" . | nindent 4 }}
|
||||||
|
|
||||||
|
{{ if and .Values.metricsAdapter .Values.metricsAdapter.podDisruptionBudget }}
|
||||||
|
---
|
||||||
|
apiVersion: policy/v1
|
||||||
|
kind: PodDisruptionBudget
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}-metrics-adapter
|
||||||
|
namespace: {{ include "karmada.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "karmada.metricsAdapter.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "karmada.metricsAdapter.labels" . | nindent 6 }}
|
||||||
|
{{ toYaml .Values.metricsAdapter.podDisruptionBudget | nindent 2 }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- end }}
|
|
@ -469,6 +469,67 @@ aggregatedApiServer:
|
||||||
## @param apiServer.podDisruptionBudget
|
## @param apiServer.podDisruptionBudget
|
||||||
podDisruptionBudget: *podDisruptionBudget
|
podDisruptionBudget: *podDisruptionBudget
|
||||||
|
|
||||||
|
## karmada metrics adapter config
|
||||||
|
metricsAdapter:
|
||||||
|
## @param metricsAdapter.labels labels of the karmada-metrics-adapter pods
|
||||||
|
labels:
|
||||||
|
app: karmada-metrics-adapter
|
||||||
|
## @param metricsAadpter.replicaCount target replicas of the karmada-mertics-adapter
|
||||||
|
replicaCount: 1
|
||||||
|
## @param metricsAadpter.podAnnotations annotations of the karmada-mertics-adapter pods
|
||||||
|
podAnnotations: {}
|
||||||
|
## @param metricsAadpter.podLabels labels of the karmada-mertics-adapter pods
|
||||||
|
podLabels: {}
|
||||||
|
## @param image.registry karmada metricsAadpter image registry
|
||||||
|
## @param image.repository karmada metricsAadpter image repository
|
||||||
|
## @param image.tag karmada metricsAadpter image tag (immutable tags are recommended)
|
||||||
|
## @param image.pullPolicy karmada metricsAadpter image pull policy
|
||||||
|
## @param image.pullSecrets Specify docker-registry secret names as an array
|
||||||
|
##
|
||||||
|
image:
|
||||||
|
registry: docker.io
|
||||||
|
repository: karmada/karmada-metrics-adapter
|
||||||
|
tag: *karmadaImageVersion
|
||||||
|
## Specify a imagePullPolicy
|
||||||
|
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||||
|
##
|
||||||
|
pullPolicy: Always
|
||||||
|
## Optionally specify an array of imagePullSecrets.
|
||||||
|
## Secrets must be manually created in the namespace.
|
||||||
|
## Example:
|
||||||
|
## pullSecrets:
|
||||||
|
## - myRegistryKeySecretName
|
||||||
|
##
|
||||||
|
pullSecrets: []
|
||||||
|
## @param metricsAadpter.resources resource quota of the karmada-mertics-adapter
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
# If you do want to specify resources, uncomment the following
|
||||||
|
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||||
|
# limits:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 128Mi
|
||||||
|
# requests:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 128Mi
|
||||||
|
## @param metricsAadpter.nodeSelector node selector of the karmada-mertics-adapter
|
||||||
|
nodeSelector: {}
|
||||||
|
## @param metricsAadpter.affinity affinity of the karmada-mertics-adapter
|
||||||
|
affinity: {}
|
||||||
|
## @param metricsAadpter.tolerations tolerations of the karmada-mertics-adapter
|
||||||
|
tolerations: []
|
||||||
|
# - key: node-role.kubernetes.io/master
|
||||||
|
# operator: Exists
|
||||||
|
## @param metricsAadpter.strategy strategy of the karmada-mertics-adapter
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
rollingUpdate:
|
||||||
|
maxUnavailable: 0
|
||||||
|
maxSurge: 50%
|
||||||
|
## @param apiServer.podDisruptionBudget
|
||||||
|
podDisruptionBudget: *podDisruptionBudget
|
||||||
|
|
||||||
## kubernetes controller manager config
|
## kubernetes controller manager config
|
||||||
kubeControllerManager:
|
kubeControllerManager:
|
||||||
## @param kubeControllerManager.labels labels of the kube-controller-manager deployment
|
## @param kubeControllerManager.labels labels of the kube-controller-manager deployment
|
||||||
|
|
Loading…
Reference in New Issue