charts/apisix-ingress-controller/templates/service-apisix.yaml (44 lines of code) (raw):
apiVersion: v1
kind: Service
metadata:
name: {{ include "apisix-ingress-controller.fullname" . }}-apisix-gateway
namespace: {{ .Release.Namespace }}
annotations:
{{- range $key, $value := .Values.gateway.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
labels:
{{- include "apisix-ingress-controller.labels" . | nindent 4 }}
spec:
ports:
- name: http
protocol: TCP
port: 80
targetPort: 9080
- name: https
protocol: TCP
port: {{ .Values.gateway.tls.servicePort }}
targetPort: {{ .Values.gateway.tls.containerPort }}
selector:
{{- include "apisix-ingress-controller.selectorLabels" . | nindent 4 }}
type: {{ .Values.gateway.type }} # LoadBalancer or NodePort
{{- if or (eq .Values.gateway.type "LoadBalancer") (eq .Values.gateway.type "NodePort") }}
externalTrafficPolicy: {{ .Values.gateway.externalTrafficPolicy }}
{{- end }}
{{- if eq .Values.gateway.type "LoadBalancer" }}
{{- if .Values.gateway.loadBalancerIP }}
loadBalancerIP: {{ .Values.gateway.loadBalancerIP }} # specify load balancer ip by user
{{- end }}
{{- if .Values.gateway.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range $cidr := .Values.gateway.loadBalancerSourceRanges }}
- {{ $cidr }}
{{- end }}
{{- end }}
{{- end }}
{{- if gt (len .Values.gateway.externalIPs) 0 }}
externalIPs:
{{- range $ip := .Values.gateway.externalIPs }}
- {{ $ip }}
{{- end }}
{{- end }}