...

Text file src/github.com/linkerd/linkerd2/viz/charts/linkerd-viz/templates/web.yaml

Documentation: github.com/linkerd/linkerd2/viz/charts/linkerd-viz/templates

     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