Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 1 | {{- if and .Values.controller.service.enabled .Values.controller.service.external.enabled -}} |
| 2 | apiVersion: v1 |
| 3 | kind: Service |
| 4 | metadata: |
| 5 | annotations: |
| 6 | {{- range $key, $value := .Values.controller.service.annotations }} |
Mohammed Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 7 | {{ $key }}: {{ tpl ($value | toString) $ | quote }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 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" . }} |
Mohammed Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 16 | namespace: {{ include "ingress-nginx.namespace" . }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 17 | spec: |
| 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 Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 31 | {{- 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 Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 37 | {{- 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 Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 46 | {{- if semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version -}} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 47 | {{- if .Values.controller.service.ipFamilyPolicy }} |
| 48 | ipFamilyPolicy: {{ .Values.controller.service.ipFamilyPolicy }} |
| 49 | {{- end }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 50 | {{- 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 Naser | 7d1623e | 2024-06-17 09:12:39 -0400 | [diff] [blame] | 61 | {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 62 | 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 Naser | 7d1623e | 2024-06-17 09:12:39 -0400 | [diff] [blame] | 73 | {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }} |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 74 | 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 Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 81 | - name: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-tcp |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 82 | port: {{ $key }} |
| 83 | protocol: TCP |
Mohammed Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 84 | targetPort: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-tcp |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 85 | {{- 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 Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 92 | - name: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-udp |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 93 | port: {{ $key }} |
| 94 | protocol: UDP |
Mohammed Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 95 | targetPort: {{ if $.Values.portNamePrefix }}{{ $.Values.portNamePrefix }}-{{ end }}{{ $key }}-udp |
Mohammed Naser | 9ad0d46 | 2023-01-15 20:36:37 -0500 | [diff] [blame] | 96 | {{- 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 }} |