...
1---
2###
3### Web
4###
5kind: Service
6apiVersion: v1
7metadata:
8 name: web
9 namespace: {{ .Release.Namespace }}
10 labels:
11 linkerd.io/extension: viz
12 component: web
13 namespace: {{.Release.Namespace}}
14 {{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
15 annotations:
16 {{ include "partials.annotations.created-by" . }}
17 {{ with .Values.dashboard.service.annotations }}{{ toYaml . | trim | nindent 4 }}{{ end }}
18 linkerd.io/inject: enabled
19spec:
20 type: ClusterIP
21 selector:
22 linkerd.io/extension: viz
23 component: web
24 ports:
25 - name: http
26 port: 8084
27 targetPort: 8084
28 - name: admin-http
29 port: 9994
30 targetPort: 9994
31---
32{{- $tree := deepCopy . }}
33apiVersion: apps/v1
34kind: Deployment
35metadata:
36 annotations:
37 {{ include "partials.annotations.created-by" . }}
38 linkerd.io/inject: enabled
39 config.linkerd.io/proxy-await: "enabled"
40 labels:
41 linkerd.io/extension: viz
42 app.kubernetes.io/name: web
43 app.kubernetes.io/part-of: Linkerd
44 app.kubernetes.io/version: {{default .Values.linkerdVersion .Values.cliVersion}}
45 component: web
46 namespace: {{.Release.Namespace}}
47 {{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
48 name: web
49 namespace: {{ .Release.Namespace }}
50spec:
51 replicas: {{.Values.dashboard.replicas}}
52 revisionHistoryLimit: {{.Values.revisionHistoryLimit}}
53 selector:
54 matchLabels:
55 linkerd.io/extension: viz
56 component: web
57 namespace: {{.Release.Namespace}}
58 template:
59 metadata:
60 annotations:
61 {{ include "partials.annotations.created-by" . }}
62 {{- with .Values.dashboard.proxy }}
63 {{- include "partials.proxy.config.annotations" .resources | nindent 8 }}
64 {{- end }}
65 {{- with .Values.podAnnotations }}{{ toYaml . | trim | nindent 8 }}{{- end }}
66 linkerd.io/inject: enabled
67 config.alpha.linkerd.io/proxy-wait-before-exit-seconds: "0"
68 cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
69 labels:
70 linkerd.io/extension: viz
71 component: web
72 namespace: {{.Release.Namespace}}
73 {{- with .Values.podLabels }}{{ toYaml . | trim | nindent 8 }}{{- end }}
74 spec:
75 {{- if .Values.tolerations -}}
76 {{- include "linkerd.tolerations" . | nindent 6 }}
77 {{- end -}}
78 {{- include "linkerd.node-selector" . | nindent 6 }}
79 {{- $_ := set $tree "component" "web" -}}
80 {{- $_ := set $tree "label" "component" -}}
81 {{- include "linkerd.affinity" $tree | nindent 6 }}
82 containers:
83 - args:
84 - -linkerd-metrics-api-addr=metrics-api.{{.Release.Namespace}}.svc.{{.Values.clusterDomain}}:8085
85 - -cluster-domain={{.Values.clusterDomain}}
86 {{- if and .Values.grafana.url .Values.grafana.externalUrl }}
87 {{ fail "Cannot set both grafana.url (on-cluster Grafana) and grafana.externalUrl (off-cluster Grafana)"}}
88 {{- end}}
89 {{- if .Values.grafana.url }}
90 - -grafana-addr={{.Values.grafana.url}}
91 {{- end}}
92 {{- if .Values.grafana.externalUrl }}
93 - -grafana-external-addr={{.Values.grafana.externalUrl}}
94 {{- end}}
95 {{- if .Values.grafana.uidPrefix }}
96 - -grafana-prefix={{.Values.grafana.uidPrefix}}
97 {{- end}}
98 {{- if .Values.jaegerUrl }}
99 - -jaeger-addr={{.Values.jaegerUrl}}
100 {{- end}}
101 - -controller-namespace={{.Values.linkerdNamespace}}
102 - -log-level={{.Values.dashboard.logLevel | default .Values.defaultLogLevel}}
103 - -log-format={{.Values.dashboard.logFormat | default .Values.defaultLogFormat}}
104 {{- if .Values.dashboard.enforcedHostRegexp }}
105 - -enforced-host={{.Values.dashboard.enforcedHostRegexp}}
106 {{- else -}}
107 {{- $hostFull := replace "." "\\." (printf "web.%s.svc.%s" .Release.Namespace .Values.clusterDomain) }}
108 {{- $hostAbbrev := replace "." "\\." (printf "web.%s.svc" .Release.Namespace) }}
109 - -enforced-host=^(localhost|127\.0\.0\.1|{{ $hostFull }}|{{ $hostAbbrev }}|\[::1\])(:\d+)?$
110 {{- end}}
111 - -enable-pprof={{.Values.enablePprof | default false}}
112 image: {{.Values.dashboard.image.registry | default .Values.defaultRegistry}}/{{.Values.dashboard.image.name}}:{{.Values.dashboard.image.tag | default .Values.linkerdVersion}}
113 imagePullPolicy: {{.Values.dashboard.image.pullPolicy | default .Values.defaultImagePullPolicy}}
114 livenessProbe:
115 httpGet:
116 path: /ping
117 port: 9994
118 initialDelaySeconds: 10
119 name: web
120 ports:
121 - containerPort: 8084
122 name: http
123 - containerPort: 9994
124 name: admin-http
125 readinessProbe:
126 failureThreshold: 7
127 httpGet:
128 path: /ready
129 port: 9994
130 {{- if .Values.dashboard.resources -}}
131 {{- include "partials.resources" .Values.dashboard.resources | nindent 8 }}
132 {{- end }}
133 securityContext:
134 allowPrivilegeEscalation: false
135 capabilities:
136 drop:
137 - ALL
138 readOnlyRootFilesystem: true
139 runAsNonRoot: true
140 runAsUser: {{.Values.dashboard.UID | default .Values.defaultUID}}
141 runAsGroup: {{.Values.dashboard.GID | default .Values.defaultGID}}
142 seccompProfile:
143 type: RuntimeDefault
144 securityContext:
145 seccompProfile:
146 type: RuntimeDefault
147 serviceAccountName: web
148{{- if and .Values.enablePodDisruptionBudget (gt (int .Values.dashboard.replicas) 1) }}
149---
150kind: PodDisruptionBudget
151apiVersion: policy/v1
152metadata:
153 name: web
154 namespace: {{ .Release.Namespace }}
155 labels:
156 linkerd.io/extension: viz
157 component: web
158 namespace: {{.Release.Namespace}}
159 {{- with .Values.commonLabels }}{{ toYaml . | trim | nindent 4 }}{{- end }}
160 annotations:
161 {{ include "partials.annotations.created-by" . }}
162spec:
163 maxUnavailable: 1
164 selector:
165 matchLabels:
166 linkerd.io/extension: viz
167 component: web
168{{- end }}
View as plain text