{{- if .Values.server.enabled -}} apiVersion: apps/v1beta2 kind: DaemonSet metadata: labels: app: {{ template "kiam.name" . }} chart: {{ template "kiam.chart" . }} component: "{{ .Values.server.name }}" heritage: {{ .Release.Service }} release: {{ .Release.Name }} name: {{ template "kiam.fullname" . }}-server spec: selector: matchLabels: app: {{ template "kiam.name" . }} component: "{{ .Values.server.name }}" release: {{ .Release.Name }} template: metadata: {{- if .Values.server.podAnnotations }} annotations: {{ toYaml .Values.server.podAnnotations | indent 8 }} {{- end }} labels: app: {{ template "kiam.name" . }} component: "{{ .Values.server.name }}" release: {{ .Release.Name }} {{- if .Values.server.podLabels }} {{ toYaml .Values.server.podLabels | indent 8 }} {{- end }} spec: serviceAccountName: {{ template "kiam.serviceAccountName.server" . }} hostNetwork: {{ .Values.server.useHostNetwork }} {{- if .Values.server.nodeSelector }} nodeSelector: {{ toYaml .Values.server.nodeSelector | indent 8 }} {{- end }} tolerations: {{ toYaml .Values.server.tolerations | indent 8 }} {{- if .Values.server.affinity }} affinity: {{ toYaml .Values.server.affinity | indent 10 }} {{- end }} volumes: - name: tls secret: {{- if .Values.server.tlsSecret }} secretName: {{ .Values.server.tlsSecret }} {{else}} secretName: {{ template "kiam.fullname" . }}-server {{- end }} {{- range .Values.server.extraHostPathMounts }} - name: {{ .name }} hostPath: path: {{ .hostPath }} {{- end }} {{- if .Values.server.priorityClassName }} priorityClassName: {{ .Values.server.priorityClassName | quote }} {{- end }} containers: - name: {{ template "kiam.name" . }}-{{ .Values.server.name }} image: "{{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}" imagePullPolicy: {{ .Values.server.image.pullPolicy }} command: - /kiam - server args: {{- if .Values.server.log.jsonOutput }} - --json-log {{- end }} - --level={{ .Values.server.log.level }} - --bind=0.0.0.0:{{ .Values.server.service.targetPort }} - --cert=/etc/kiam/tls/{{ .Values.server.tlsCerts.certFileName }} - --key=/etc/kiam/tls/{{ .Values.server.tlsCerts.keyFileName }} - --ca=/etc/kiam/tls/{{ .Values.server.tlsCerts.caFileName }} {{- if .Values.server.roleBaseArn }} - --role-base-arn={{ .Values.server.roleBaseArn }} {{- else }} - --role-base-arn-autodetect {{- end }} {{- if .Values.server.assumeRoleArn }} - --assume-role-arn={{ .Values.server.assumeRoleArn }} {{- end }} - --session-duration={{ .Values.server.sessionDuration }} - --sync={{ .Values.server.cache.syncInterval }} {{- if .Values.server.prometheus.scrape }} - --prometheus-listen-addr=0.0.0.0:{{ .Values.server.prometheus.port }} - --prometheus-sync-interval={{ .Values.server.prometheus.syncInterval }} {{- end }} {{- range $key, $value := .Values.server.extraArgs }} {{- if $value }} - --{{ $key }}={{ $value }} {{- else }} - --{{ $key }} {{- end }} {{- end }} {{- if .Values.server.extraEnv }} env: {{- range $name, $value := .Values.server.extraEnv }} - name: {{ $name }} value: {{ quote $value }} {{- end }} {{- end }} volumeMounts: - mountPath: /etc/kiam/tls name: tls {{- range .Values.server.extraHostPathMounts }} - name: {{ .name }} mountPath: {{ .mountPath }} readOnly: {{ .readOnly }} {{- end }} livenessProbe: exec: command: - /kiam - health - --cert=/etc/kiam/tls/{{ .Values.server.tlsCerts.certFileName }} - --key=/etc/kiam/tls/{{ .Values.server.tlsCerts.keyFileName }} - --ca=/etc/kiam/tls/{{ .Values.server.tlsCerts.caFileName }} - --server-address={{ .Values.server.probes.serverAddress }}:{{ .Values.server.service.targetPort }} - --server-address-refresh=2s - --timeout=5s - --gateway-timeout-creation={{ .Values.server.gatewayTimeoutCreation }} initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 10 readinessProbe: exec: command: - /kiam - health - --cert=/etc/kiam/tls/{{ .Values.server.tlsCerts.certFileName }} - --key=/etc/kiam/tls/{{ .Values.server.tlsCerts.keyFileName }} - --ca=/etc/kiam/tls/{{ .Values.server.tlsCerts.caFileName }} - --server-address={{ .Values.server.probes.serverAddress }}:{{ .Values.server.service.targetPort }} - --server-address-refresh=2s - --timeout=5s - --gateway-timeout-creation={{ .Values.server.gatewayTimeoutCreation }} initialDelaySeconds: 3 periodSeconds: 10 timeoutSeconds: 10 {{- if .Values.server.resources }} resources: {{ toYaml .Values.server.resources | indent 12 }} {{- end }} updateStrategy: type: {{ .Values.server.updateStrategy }} {{- end }}