blob: 92488184573edf786b32a5339e51729f775e4af3 [file] [log] [blame]
Giorgi Lekveishvili725bb392023-05-05 18:24:27 +04001{{- if .Values.controller.service.enabled -}}
2apiVersion: v1
3kind: Service
4metadata:
5 annotations:
6 {{- range $key, $value := .Values.controller.service.annotations }}
7 {{ $key }}: {{ $value | quote }}
8 {{- end }}
9 labels:
10 {{- include "ingress-nginx.labels" . | nindent 4 }}
11 app.kubernetes.io/component: controller
12 {{- if .Values.controller.service.labels }}
13 {{- toYaml .Values.controller.service.labels | nindent 4 }}
14 {{- end }}
15 name: {{ include "ingress-nginx.controller.fullname" . }}
16 namespace: {{ .Release.Namespace }}
17spec:
18 type: {{ .Values.controller.service.type }}
19{{- if .Values.controller.service.clusterIP }}
20 clusterIP: {{ .Values.controller.service.clusterIP }}
21{{- end }}
22{{- if .Values.controller.service.externalIPs }}
23 externalIPs: {{ toYaml .Values.controller.service.externalIPs | nindent 4 }}
24{{- end }}
25{{- if .Values.controller.service.loadBalancerIP }}
26 loadBalancerIP: {{ .Values.controller.service.loadBalancerIP }}
27{{- end }}
28{{- if .Values.controller.service.loadBalancerSourceRanges }}
29 loadBalancerSourceRanges: {{ toYaml .Values.controller.service.loadBalancerSourceRanges | nindent 4 }}
30{{- end }}
31{{- if .Values.controller.service.externalTrafficPolicy }}
32 externalTrafficPolicy: {{ .Values.controller.service.externalTrafficPolicy }}
33{{- end }}
34{{- if .Values.controller.service.sessionAffinity }}
35 sessionAffinity: {{ .Values.controller.service.sessionAffinity }}
36{{- end }}
37{{- if .Values.controller.service.healthCheckNodePort }}
38 healthCheckNodePort: {{ .Values.controller.service.healthCheckNodePort }}
39{{- end }}
40 ports:
41 {{- $setNodePorts := (or (eq .Values.controller.service.type "NodePort") (eq .Values.controller.service.type "LoadBalancer")) }}
42 {{- if .Values.controller.service.enableHttp }}
43 - name: http
44 port: {{ .Values.controller.service.ports.http }}
45 protocol: TCP
46 targetPort: {{ .Values.controller.service.targetPorts.http }}
47 {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
48 appProtocol: http
49 {{- end }}
50 {{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.http))) }}
51 nodePort: {{ .Values.controller.service.nodePorts.http }}
52 {{- end }}
53 {{- end }}
54 {{- if .Values.controller.service.enableHttps }}
55 - name: https
56 port: {{ .Values.controller.service.ports.https }}
57 protocol: TCP
58 targetPort: {{ .Values.controller.service.targetPorts.https }}
59 {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
60 appProtocol: https
61 {{- end }}
62 {{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.https))) }}
63 nodePort: {{ .Values.controller.service.nodePorts.https }}
64 {{- end }}
65 {{- end }}
66 {{- range $key, $value := .Values.tcp }}
67 - name: {{ $key }}-tcp
68 port: {{ $key }}
69 protocol: TCP
70 targetPort: {{ $key }}-tcp
71 {{- if $.Values.controller.service.nodePorts.tcp }}
72 {{- if index $.Values.controller.service.nodePorts.tcp $key }}
73 nodePort: {{ index $.Values.controller.service.nodePorts.tcp $key }}
74 {{- end }}
75 {{- end }}
76 {{- end }}
77 {{- range $key, $value := .Values.udp }}
78 - name: {{ $key }}-udp
79 port: {{ $key }}
80 protocol: UDP
81 targetPort: {{ $key }}-udp
82 {{- if $.Values.controller.service.nodePorts.udp }}
83 {{- if index $.Values.controller.service.nodePorts.udp $key }}
84 nodePort: {{ index $.Values.controller.service.nodePorts.udp $key }}
85 {{- end }}
86 {{- end }}
87 {{- end }}
88 selector:
89 {{- include "ingress-nginx.selectorLabels" . | nindent 4 }}
90 app.kubernetes.io/component: controller
91{{- end }}