76 lines
2.2 KiB
YAML
76 lines
2.2 KiB
YAML
{{- if and (ne .Values.loadBalancer.type "disable") (ne .Values.loadBalancer.type "gclb") -}}
|
|
{{- $fullName := include "livekit-server.fullname" . -}}
|
|
{{- $svcPort := .Values.loadBalancer.servicePort -}}
|
|
kind: Ingress
|
|
metadata:
|
|
name: {{ $fullName }}
|
|
labels:
|
|
{{- include "livekit-server.labels" . | nindent 4 }}
|
|
annotations:
|
|
# custom annotations
|
|
{{- with .Values.loadBalancer.annotations }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
# AWS ALB
|
|
{{- if eq .Values.loadBalancer.type "alb" }}
|
|
kubernetes.io/ingress.class: alb
|
|
alb.ingress.kubernetes.io/scheme: internet-facing
|
|
{{- if .Values.loadBalancer.tls }}
|
|
alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
|
|
{{- end }}
|
|
{{- end }}
|
|
# GKE with managed certs
|
|
{{- if eq .Values.loadBalancer.type "gke-managed-cert" }}
|
|
kubernetes.io/ingress.global-static-ip-name: {{ .Values.loadBalancer.staticIpName }}
|
|
networking.gke.io/managed-certificates: {{ or .Values.loadBalancer.certificateName "managed-cert" }}
|
|
kubernetes.io/ingress.class: "gce"
|
|
{{- end }}
|
|
# DO with cert manager
|
|
{{- if eq .Values.loadBalancer.type "do" }}
|
|
cert-manager.io/cluster-issuer: {{ .Values.loadBalancer.clusterIssuer }}
|
|
{{- end }}
|
|
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
|
|
apiVersion: networking.k8s.io/v1
|
|
{{- else }}
|
|
apiVersion: extensions/v1beta1
|
|
{{- end }}
|
|
spec:
|
|
{{- if eq .Values.loadBalancer.type "do" }}
|
|
ingressClassName: nginx
|
|
{{- end }}
|
|
rules:
|
|
# In order to work with cert manager on DO, we cannot set us as a default backend
|
|
{{- range .Values.loadBalancer.tls }}
|
|
{{- range .hosts }}
|
|
- host: {{ . | quote }}
|
|
http:
|
|
paths:
|
|
- pathType: Prefix
|
|
path: /
|
|
backend:
|
|
service:
|
|
name: {{ $fullName }}
|
|
port:
|
|
number: {{ $svcPort }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if ne .Values.loadBalancer.type "gke-vpc-native" }}
|
|
{{- with .Values.loadBalancer }}
|
|
{{- if .tls }}
|
|
tls:
|
|
{{- range .tls }}
|
|
{{- if .hosts }}
|
|
- hosts:
|
|
{{- range .hosts }}
|
|
- {{ . | quote }}
|
|
{{- end }}
|
|
{{- if .secretName }}
|
|
secretName: {{ .secretName | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|