143 lines
5.6 KiB
YAML
143 lines
5.6 KiB
YAML
{{- if eq .Values.controller.kind "Deployment" }}
|
|
apiVersion: extensions/v1beta1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: {{ template "name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
component: "{{ .Values.controller.name }}"
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
name: {{ template "controller.fullname" . }}
|
|
spec:
|
|
replicas: {{ .Values.controller.replicaCount }}
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/config: {{ include (print $.Template.BasePath "/controller-configmap.yaml") . | sha256sum }}
|
|
{{- if .Values.controller.podAnnotations }}
|
|
{{ toYaml .Values.controller.podAnnotations | indent 8}}
|
|
{{- end }}
|
|
labels:
|
|
app: {{ template "name" . }}
|
|
component: "{{ .Values.controller.name }}"
|
|
release: {{ .Release.Name }}
|
|
{{- if .Values.controller.podLabels }}
|
|
{{ toYaml .Values.controller.podLabels | indent 8 }}
|
|
{{- end }}
|
|
spec:
|
|
containers:
|
|
- name: {{ template "name" . }}-{{ .Values.controller.name }}
|
|
image: "{{ .Values.controller.image.repository }}:{{ .Values.controller.image.tag }}"
|
|
imagePullPolicy: "{{ .Values.controller.image.pullPolicy }}"
|
|
args:
|
|
- /nginx-ingress-controller
|
|
- --default-backend-service={{ if .Values.defaultBackend.enabled }}{{ .Release.Namespace }}/{{ template "defaultBackend.fullname" . }}{{ else }}{{ .Values.controller.defaultBackendService }}{{ end }}
|
|
{{- if and (contains "0.9" .Values.controller.image.tag) .Values.controller.publishService.enabled }}
|
|
- --publish-service={{ template "controller.publishServicePath" . }}
|
|
{{- end }}
|
|
{{- if (contains "0.9" .Values.controller.image.tag) }}
|
|
- --election-id={{ .Values.controller.electionID }}
|
|
{{- end }}
|
|
{{- if (contains "0.9" .Values.controller.image.tag) }}
|
|
- --ingress-class={{ .Values.controller.ingressClass }}
|
|
{{- end }}
|
|
{{- if (contains "0.9" .Values.controller.image.tag) }}
|
|
- --configmap={{ .Release.Namespace }}/{{ template "controller.fullname" . }}
|
|
{{- else }}
|
|
- --nginx-configmap={{ .Release.Namespace }}/{{ template "controller.fullname" . }}
|
|
{{- end }}
|
|
{{- if .Values.tcp }}
|
|
- --tcp-services-configmap={{ .Release.Namespace }}/{{ template "fullname" . }}-tcp
|
|
{{- end }}
|
|
{{- if .Values.udp }}
|
|
- --udp-services-configmap={{ .Release.Namespace }}/{{ template "fullname" . }}-udp
|
|
{{- end }}
|
|
{{- if .Values.controller.scope.enabled }}
|
|
- --watch-namespace={{ default .Release.Namespace .Values.controller.scope.namespace }}
|
|
{{- end }}
|
|
{{- range $key, $value := .Values.controller.extraArgs }}
|
|
{{- if $value }}
|
|
- --{{ $key }}={{ $value }}
|
|
{{- else }}
|
|
- --{{ $key }}
|
|
{{- end }}
|
|
{{- end }}
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 10254
|
|
scheme: HTTP
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 1
|
|
ports:
|
|
- name: http
|
|
containerPort: 80
|
|
protocol: TCP
|
|
- name: https
|
|
containerPort: 443
|
|
protocol: TCP
|
|
{{- if .Values.controller.stats.enabled }}
|
|
- name: stats
|
|
containerPort: 18080
|
|
protocol: TCP
|
|
{{- end }}
|
|
{{- range $key, $value := .Values.tcp }}
|
|
- name: "{{ $key }}-tcp"
|
|
containerPort: {{ $key }}
|
|
protocol: TCP
|
|
{{- end }}
|
|
{{- range $key, $value := .Values.udp }}
|
|
- name: "{{ $key }}-udp"
|
|
containerPort: {{ $key }}
|
|
protocol: UDP
|
|
{{- end }}
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 10254
|
|
scheme: HTTP
|
|
resources:
|
|
{{ toYaml .Values.controller.resources | indent 12 }}
|
|
{{- if .Values.controller.stats.enabled }}
|
|
- name: {{ template "name" . }}-{{ .Values.statsExporter.name }}
|
|
image: "{{ .Values.statsExporter.image.repository }}:{{ .Values.statsExporter.image.tag }}"
|
|
imagePullPolicy: "{{ .Values.statsExporter.image.pullPolicy }}"
|
|
env:
|
|
- name: METRICS_ADDR
|
|
value: ":9913"
|
|
- name: METRICS_ENDPOINT
|
|
value: "{{ .Values.statsExporter.endpoint }}"
|
|
- name: METRICS_NS
|
|
value: "{{ .Values.statsExporter.metricsNamespace }}"
|
|
- name: NGINX_STATUS
|
|
value: "{{ .Values.statsExporter.statusPage }}"
|
|
ports:
|
|
- name: metrics
|
|
containerPort: 9913
|
|
protocol: TCP
|
|
resources:
|
|
{{ toYaml .Values.statsExporter.resources | indent 12 }}
|
|
{{- end }}
|
|
hostNetwork: {{ .Values.controller.hostNetwork }}
|
|
{{- if .Values.controller.nodeSelector }}
|
|
nodeSelector:
|
|
{{ toYaml .Values.controller.nodeSelector | indent 8 }}
|
|
{{- end }}
|
|
{{- if .Values.controller.tolerations }}
|
|
tolerations:
|
|
{{ toYaml .Values.controller.tolerations | indent 8 }}
|
|
{{- end }}
|
|
serviceAccountName: {{ if .Values.rbac.create }}{{ template "fullname" . }}{{ else }}"{{ .Values.rbac.serviceAccountName }}"{{ end }}
|
|
terminationGracePeriodSeconds: 60
|
|
{{- end }}
|