...
1---
2###
3### Metrics API
4###
5kind: Service
6apiVersion: v1
7metadata:
8 name: metrics-api
9 namespace: {{ .Release.Namespace }}
10 labels:
11 linkerd.io/extension: viz
12 component: metrics-api
13 {{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
14 annotations:
15 {{ include "partials.annotations.created-by" . }}
16 {{- with .Values.metricsAPI.service.annotations }}{{ toYaml . | trim | nindent 4 }}{{- end }}
17 linkerd.io/inject: enabled
18spec:
19 type: ClusterIP
20 selector:
21 linkerd.io/extension: viz
22 component: metrics-api
23 ports:
24 - name: http
25 port: 8085
26 targetPort: 8085
27---
28{{- $tree := deepCopy . }}
29apiVersion: apps/v1
30kind: Deployment
31metadata:
32 annotations:
33 {{ include "partials.annotations.created-by" . }}
34 linkerd.io/inject: enabled
35 config.linkerd.io/proxy-await: "enabled"
36 labels:
37 linkerd.io/extension: viz
38 app.kubernetes.io/name: metrics-api
39 app.kubernetes.io/part-of: Linkerd
40 app.kubernetes.io/version: {{default .Values.linkerdVersion .Values.cliVersion}}
41 component: metrics-api
42 {{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
43 name: metrics-api
44 namespace: {{ .Release.Namespace }}
45spec:
46 replicas: {{.Values.metricsAPI.replicas}}
47 revisionHistoryLimit: {{.Values.revisionHistoryLimit}}
48 selector:
49 matchLabels:
50 linkerd.io/extension: viz
51 component: metrics-api
52 template:
53 metadata:
54 annotations:
55 {{- if empty .Values.cliVersion }}
56 checksum/config: {{ include (print $.Template.BasePath "/metrics-api-rbac.yaml") . | sha256sum }}
57 {{- end }}
58 {{ include "partials.annotations.created-by" . }}
59 {{- with .Values.metricsAPI.proxy }}
60 {{- include "partials.proxy.config.annotations" .resources | nindent 8 }}
61 {{- end }}
62 {{- with .Values.podAnnotations }}{{ toYaml . | trim | nindent 8 }}{{- end }}
63 linkerd.io/inject: enabled
64 config.alpha.linkerd.io/proxy-wait-before-exit-seconds: "0"
65 cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
66 labels:
67 linkerd.io/extension: viz
68 component: metrics-api
69 {{- with .Values.podLabels }}{{ toYaml . | trim | nindent 8 }}{{- end }}
70 spec:
71 {{- if .Values.metricsAPI.tolerations -}}
72 {{- include "linkerd.tolerations" (dict "Values" .Values.metricsAPI) | nindent 6 }}
73 {{- end -}}
74 {{- include "linkerd.node-selector" (dict "Values" .Values.metricsAPI) | nindent 6 }}
75 {{- $_ := set $tree "component" "metrics-api" -}}
76 {{- $_ := set $tree "label" "component" -}}
77 {{- include "linkerd.affinity" $tree | nindent 6 }}
78 containers:
79 - args:
80 - -controller-namespace={{.Values.linkerdNamespace}}
81 - -log-level={{.Values.metricsAPI.logLevel | default .Values.defaultLogLevel}}
82 - -log-format={{.Values.metricsAPI.logFormat | default .Values.defaultLogFormat}}
83 - -cluster-domain={{.Values.clusterDomain}}
84 {{- if .Values.prometheusUrl }}
85 - -prometheus-url={{.Values.prometheusUrl}}
86 {{- else if .Values.prometheus.enabled }}
87 - -prometheus-url=http://prometheus.{{.Release.Namespace}}.svc.{{.Values.clusterDomain}}:9090
88 {{- else }}
89 {{ fail "Please enable `linkerd-prometheus` or provide `prometheusUrl` for the viz extension to function properly"}}
90 {{- end }}
91 - -enable-pprof={{.Values.enablePprof | default false}}
92 image: {{.Values.metricsAPI.image.registry | default .Values.defaultRegistry}}/{{.Values.metricsAPI.image.name}}:{{.Values.metricsAPI.image.tag | default .Values.linkerdVersion}}
93 imagePullPolicy: {{.Values.metricsAPI.image.pullPolicy | default .Values.defaultImagePullPolicy}}
94 livenessProbe:
95 httpGet:
96 path: /ping
97 port: 9995
98 initialDelaySeconds: 10
99 name: metrics-api
100 ports:
101 - containerPort: 8085
102 name: http
103 - containerPort: 9995
104 name: admin-http
105 readinessProbe:
106 failureThreshold: 7
107 httpGet:
108 path: /ready
109 port: 9995
110 {{- if .Values.metricsAPI.resources -}}
111 {{- include "partials.resources" .Values.metricsAPI.resources | nindent 8 }}
112 {{- end }}
113 securityContext:
114 allowPrivilegeEscalation: false
115 capabilities:
116 drop:
117 - ALL
118 runAsNonRoot: true
119 readOnlyRootFilesystem: true
120 runAsUser: {{.Values.metricsAPI.UID | default .Values.defaultUID}}
121 runAsGroup: {{.Values.metricsAPI.GID | default .Values.defaultGID}}
122 seccompProfile:
123 type: RuntimeDefault
124 securityContext:
125 seccompProfile:
126 type: RuntimeDefault
127 serviceAccountName: metrics-api
128{{- if and .Values.enablePodDisruptionBudget (gt (int .Values.metricsAPI.replicas) 1) }}
129---
130kind: PodDisruptionBudget
131apiVersion: policy/v1
132metadata:
133 name: metrics-api
134 namespace: {{ .Release.Namespace }}
135 labels:
136 linkerd.io/extension: viz
137 component: metrics-api
138 namespace: {{.Release.Namespace}}
139 {{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
140 annotations:
141 {{ include "partials.annotations.created-by" . }}
142spec:
143 maxUnavailable: 1
144 selector:
145 matchLabels:
146 linkerd.io/extension: viz
147 component: metrics-api
148{{- end }}
View as plain text