helm-charts/openfaas/templates/gateway-dep.yaml
2021-01-17 04:09:41 +03:00

261 lines
9.0 KiB
YAML

{{- $functionNs := default .Release.Namespace .Values.functionNamespace }}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: {{ template "openfaas.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
component: gateway
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: gateway
namespace: {{ .Release.Namespace | quote }}
spec:
replicas: {{ .Values.gateway.replicas }}
selector:
matchLabels:
app: gateway
template:
metadata:
annotations:
prometheus.io.scrape: "true"
prometheus.io.port: "8082"
labels:
app: gateway
spec:
{{- if .Values.operator.create }}
serviceAccountName: {{ .Release.Name }}-operator
{{- else }}
serviceAccountName: {{ .Release.Name }}-controller
{{- end }}
volumes:
- name: faas-netes-temp-volume
emptyDir: {}
{{- if .Values.basic_auth }}
- name: auth
secret:
secretName: basic-auth
{{- end }}
containers:
- name: gateway
resources:
{{- .Values.gateway.resources | toYaml | nindent 12 }}
image: {{ .Values.gateway.image }}
imagePullPolicy: {{ .Values.openfaasImagePullPolicy }}
{{- if .Values.securityContext }}
securityContext:
readOnlyRootFilesystem: true
runAsUser: 10001
{{- end }}
livenessProbe:
{{- if .Values.httpProbe }}
httpGet:
path: /healthz
port: 8080
{{- else }}
exec:
command:
- wget
- --quiet
- --tries=1
- --timeout=5
- --spider
- http://localhost:8080/healthz
{{- end }}
timeoutSeconds: 5
readinessProbe:
{{- if .Values.httpProbe }}
httpGet:
path: /healthz
port: 8080
{{- else }}
exec:
command:
- wget
- --quiet
- --tries=1
- --timeout=5
- --spider
- http://localhost:8080/healthz
{{- end }}
timeoutSeconds: 5
env:
{{- if .Values.gateway.logsProviderURL }}
- name: logs_provider_url
value: "{{ .Values.gateway.logsProviderURL }}"
{{- end }}
- name: read_timeout
value: "{{ .Values.gateway.readTimeout }}"
- name: write_timeout
value: "{{ .Values.gateway.writeTimeout }}"
- name: upstream_timeout
value: "{{ .Values.gateway.upstreamTimeout }}"
- name: functions_provider_url
value: "http://127.0.0.1:8081/"
- name: direct_functions
{{- if .Values.gateway.directFunctions }}
value: "{{.Values.gateway.directFunctions}}"
{{- else}}
value: "false"
{{- end }}
- name: direct_functions_suffix
value: "{{ $functionNs }}.svc.{{ .Values.kubernetesDNSDomain }}"
- name: function_namespace
value: {{ $functionNs | quote }}
{{- if .Values.nats.external.enabled }}
- name: faas_nats_address
value: "{{ .Values.nats.external.host }}"
- name: faas_nats_port
value: "{{ .Values.nats.external.port }}"
- name: faas_nats_cluster_name
value: "{{ .Values.nats.external.clusterName }}"
- name: faas_nats_channel
value: "{{ .Values.nats.channel }}"
{{- else }}
{{- if .Values.async }}
- name: faas_nats_address
value: "nats.{{ .Release.Namespace }}.svc.{{ .Values.kubernetesDNSDomain }}"
- name: faas_nats_port
value: "4222"
- name: faas_nats_channel
value: "{{ .Values.nats.channel }}"
{{- end }}
{{- end }}
{{- if .Values.basic_auth }}
- name: basic_auth
value: "true"
- name: secret_mount_path
value: "/var/secrets"
{{- if .Values.oauth2Plugin.enabled }}
- name: auth_proxy_url
value: "http://oauth2-plugin.{{ .Release.Namespace }}:8080/validate"
- name: auth_pass_body
value: "false"
{{- else }}
- name: auth_proxy_url
value: "http://basic-auth-plugin.{{ .Release.Namespace }}:8080/validate"
- name: auth_pass_body
value: "false"
{{- end }}
{{- end }}
- name: scale_from_zero
value: "{{ .Values.gateway.scaleFromZero }}"
- name: max_idle_conns
value: "{{ .Values.gateway.maxIdleConns }}"
- name: max_idle_conns_per_host
value: "{{ .Values.gateway.maxIdleConnsPerHost }}"
{{- if .Values.basic_auth }}
volumeMounts:
- name: auth
readOnly: true
mountPath: "/var/secrets"
{{- end }}
ports:
- name: http
containerPort: 8080
protocol: TCP
{{- if .Values.operator.create }}
- name: operator
resources:
{{- .Values.operator.resources | toYaml | nindent 12 }}
image: {{ .Values.operator.image }}
imagePullPolicy: {{ .Values.openfaasImagePullPolicy }}
command:
- ./faas-netes
- -operator=true
env:
- name: port
value: "8081"
- name: function_namespace
value: {{ $functionNs | quote }}
- name: profiles_namespace
value: {{ .Release.Namespace | quote }}
- name: read_timeout
value: "{{ .Values.faasnetes.readTimeout }}"
- name: write_timeout
value: "{{ .Values.faasnetes.writeTimeout }}"
- name: image_pull_policy
value: {{ .Values.faasnetes.imagePullPolicy | quote }}
- name: http_probe
value: "{{ .Values.faasnetes.httpProbe }}"
- name: set_nonroot_user
value: "{{ .Values.faasnetes.setNonRootUser }}"
- name: readiness_probe_initial_delay_seconds
value: "{{ .Values.faasnetes.readinessProbe.initialDelaySeconds }}"
- name: readiness_probe_timeout_seconds
value: "{{ .Values.faasnetes.readinessProbe.timeoutSeconds }}"
- name: readiness_probe_period_seconds
value: "{{ .Values.faasnetes.readinessProbe.periodSeconds }}"
- name: liveness_probe_initial_delay_seconds
value: "{{ .Values.faasnetes.livenessProbe.initialDelaySeconds }}"
- name: liveness_probe_timeout_seconds
value: "{{ .Values.faasnetes.livenessProbe.timeoutSeconds }}"
- name: liveness_probe_period_seconds
value: "{{ .Values.faasnetes.livenessProbe.periodSeconds }}"
- name: cluster_role
value: "{{ .Values.clusterRole }}"
ports:
- containerPort: 8081
protocol: TCP
{{- else }}
- name: faas-netes
resources:
{{- .Values.faasnetes.resources | toYaml | nindent 12 }}
image: {{ .Values.faasnetes.image }}
imagePullPolicy: {{ .Values.openfaasImagePullPolicy }}
{{- if .Values.securityContext }}
securityContext:
readOnlyRootFilesystem: true
runAsUser: 10001
{{- end }}
env:
- name: port
value: "8081"
- name: function_namespace
value: {{ $functionNs | quote }}
- name: read_timeout
value: "{{ .Values.faasnetes.readTimeout }}"
- name: profiles_namespace
value: {{ .Release.Namespace | quote }}
- name: write_timeout
value: "{{ .Values.faasnetes.writeTimeout }}"
- name: image_pull_policy
value: {{ .Values.faasnetes.imagePullPolicy | quote }}
- name: http_probe
value: "{{ .Values.faasnetes.httpProbe }}"
- name: set_nonroot_user
value: "{{ .Values.faasnetes.setNonRootUser }}"
- name: readiness_probe_initial_delay_seconds
value: "{{ .Values.faasnetes.readinessProbe.initialDelaySeconds }}"
- name: readiness_probe_timeout_seconds
value: "{{ .Values.faasnetes.readinessProbe.timeoutSeconds }}"
- name: readiness_probe_period_seconds
value: "{{ .Values.faasnetes.readinessProbe.periodSeconds }}"
- name: liveness_probe_initial_delay_seconds
value: "{{ .Values.faasnetes.livenessProbe.initialDelaySeconds }}"
- name: liveness_probe_timeout_seconds
value: "{{ .Values.faasnetes.livenessProbe.timeoutSeconds }}"
- name: liveness_probe_period_seconds
value: "{{ .Values.faasnetes.livenessProbe.periodSeconds }}"
- name: cluster_role
value: "{{ .Values.clusterRole }}"
volumeMounts:
- mountPath: /tmp
name: faas-netes-temp-volume
ports:
- containerPort: 8081
protocol: TCP
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}