blob: cb78a7035f3c0edfe76a35ada17a952542258d48 [file] [log] [blame]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001{{- if and .Values.controller.service.enabled .Values.controller.service.external.enabled -}}
2apiVersion: v1
3kind: Service
4metadata:
5 annotations:
6 {{- range $key, $value := .Values.controller.service.annotations }}
Mohammed Naser65cda132024-05-02 14:34:08 -04007 {{ $key }}: {{ tpl ($value | toString) $ | quote }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -05008 {{- 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" . }}
Mohammed Naser65cda132024-05-02 14:34:08 -040016 namespace: {{ include "ingress-nginx.namespace" . }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050017spec:
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 }}
Mohammed Naser65cda132024-05-02 14:34:08 -040031{{- if .Values.controller.service.loadBalancerClass }}
32 loadBalancerClass: {{ .Values.controller.service.loadBalancerClass }}
33{{- end }}
34{{- if hasKey .Values.controller.service "allocateLoadBalancerNodePorts" }}
35 allocateLoadBalancerNodePorts: {{ .Values.controller.service.allocateLoadBalancerNodePorts }}
36{{- end }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050037{{- if .Values.controller.service.externalTrafficPolicy }}
38 externalTrafficPolicy: {{ .Values.controller.service.externalTrafficPolicy }}
39{{- end }}
40{{- if .Values.controller.service.sessionAffinity }}
41 sessionAffinity: {{ .Values.controller.service.sessionAffinity }}
42{{- end }}
43{{- if .Values.controller.service.healthCheckNodePort }}
44 healthCheckNodePort: {{ .Values.controller.service.healthCheckNodePort }}
45{{- end }}
Mohammed Naser65cda132024-05-02 14:34:08 -040046{{- if semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version -}}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050047{{- if .Values.controller.service.ipFamilyPolicy }}
48 ipFamilyPolicy: {{ .Values.controller.service.ipFamilyPolicy }}
49{{- end }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050050{{- if .Values.controller.service.ipFamilies }}
51 ipFamilies: {{ toYaml .Values.controller.service.ipFamilies | nindent 4 }}
52{{- end }}
53{{- end }}
54 ports:
55 {{- $setNodePorts := (or (eq .Values.controller.service.type "NodePort") (eq .Values.controller.service.type "LoadBalancer")) }}
56 {{- if .Values.controller.service.enableHttp }}
57 - name: http
58 port: {{ .Values.controller.service.ports.http }}
59 protocol: TCP
60 targetPort: {{ .Values.controller.service.targetPorts.http }}
Mohammed Naser7d1623e2024-06-17 09:12:39 -040061 {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050062 appProtocol: http
63 {{- end }}
64 {{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.http))) }}
65 nodePort: {{ .Values.controller.service.nodePorts.http }}
66 {{- end }}
67 {{- end }}
68 {{- if .Values.controller.service.enableHttps }}
69 - name: https
70 port: {{ .Values.controller.service.ports.https }}
71 protocol: TCP
72 targetPort: {{ .Values.controller.service.targetPorts.https }}
Mohammed Naser7d1623e2024-06-17 09:12:39 -040073 {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050074 appProtocol: https
75 {{- end }}
76 {{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.https))) }}
77 nodePort: {{ .Values.controller.service.nodePorts.https }}
78 {{- end }}
79 {{- end }}
80 {{- range $key, $value := .Values.tcp }}
Mohammed Naser65cda132024-05-02 14:34:08 -040081 - name: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-tcp
Mohammed Naser9ad0d462023-01-15 20:36:37 -050082 port: {{ $key }}
83 protocol: TCP
Mohammed Naser65cda132024-05-02 14:34:08 -040084 targetPort: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-tcp
Mohammed Naser9ad0d462023-01-15 20:36:37 -050085 {{- if $.Values.controller.service.nodePorts.tcp }}
86 {{- if index $.Values.controller.service.nodePorts.tcp $key }}
87 nodePort: {{ index $.Values.controller.service.nodePorts.tcp $key }}
88 {{- end }}
89 {{- end }}
90 {{- end }}
91 {{- range $key, $value := .Values.udp }}
Mohammed Naser65cda132024-05-02 14:34:08 -040092 - name: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-udp
Mohammed Naser9ad0d462023-01-15 20:36:37 -050093 port: {{ $key }}
94 protocol: UDP
Mohammed Naser65cda132024-05-02 14:34:08 -040095 targetPort: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-udp
Mohammed Naser9ad0d462023-01-15 20:36:37 -050096 {{- if $.Values.controller.service.nodePorts.udp }}
97 {{- if index $.Values.controller.service.nodePorts.udp $key }}
98 nodePort: {{ index $.Values.controller.service.nodePorts.udp $key }}
99 {{- end }}
100 {{- end }}
101 {{- end }}
102 selector:
103 {{- include "ingress-nginx.selectorLabels" . | nindent 4 }}
104 app.kubernetes.io/component: controller
105{{- end }}