apiVersion: apps/v1 kind: Deployment metadata: name: metrics-server namespace: {{ .Release.Namespace }} labels: k8s-app: metrics-server app.kubernetes.io/name: metrics-server app.kubernetes.io/instance: {{ .Release.Name }} spec: replicas: 1 revisionHistoryLimit: 10 strategy: rollingUpdate: maxUnavailable: 0 type: RollingUpdate selector: matchLabels: k8s-app: metrics-server template: metadata: labels: k8s-app: metrics-server app.kubernetes.io/name: metrics-server app.kubernetes.io/instance: {{ .Release.Name }} spec: serviceAccountName: metrics-server priorityClassName: system-cluster-critical nodeSelector: kubernetes.io/os: linux containers: - name: metrics-server image: {{ printf "%s:v%s" .Values.image.repository .Chart.AppVersion | quote }} imagePullPolicy: {{ .Values.image.pullPolicy }} args: - --cert-dir=/tmp - --secure-port=10250 - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname - --kubelet-use-node-status-port - --metric-resolution=15s {{- if .Values.kubeletInsecureTls }} - --kubelet-insecure-tls {{- end }} ports: - name: https containerPort: 10250 protocol: TCP livenessProbe: httpGet: path: /livez port: https scheme: HTTPS periodSeconds: 10 timeoutSeconds: 1 failureThreshold: 3 readinessProbe: httpGet: path: /readyz port: https scheme: HTTPS initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 1 failureThreshold: 3 resources: requests: cpu: 100m memory: 200Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: [ALL] readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 1000 seccompProfile: type: RuntimeDefault volumeMounts: - name: tmp-dir mountPath: /tmp volumes: - name: tmp-dir emptyDir: {}