Files
fluxer/deploy/helm/infra/templates/ingress.yaml
T

279 lines
7.1 KiB
YAML

# SPDX-License-Identifier: AGPL-3.0-or-later
{{ $hosts := .Values.ingress.hosts -}}
{{ $ports := .Values.ports -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: fluxer-ingress
namespace: {{ .Values.global.namespace }}
labels:
{{- include "fluxer.labels" . | nindent 4 }}
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: {{ $hosts.api }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api
port:
number: {{ $ports.api }}
- host: {{ $hosts.apiCanary }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api-canary
port:
number: {{ $ports.apiCanary }}
- host: {{ $hosts.appProxy }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-proxy
port:
number: {{ $ports.appProxy }}
- host: {{ $hosts.appProxyCanary }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-proxy-canary
port:
number: {{ $ports.appProxyCanary }}
- host: {{ $hosts.admin }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: admin
port:
number: {{ $ports.admin }}
- host: {{ $hosts.adminCanary }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: admin-canary
port:
number: {{ $ports.adminCanary }}
- host: {{ $hosts.marketing }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: marketing
port:
number: {{ $ports.marketing }}
{{- with $hosts.help }}
- host: {{ . }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: marketing
port:
number: {{ $ports.marketing }}
{{- end }}
{{- with $hosts.blog }}
- host: {{ . }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: marketing
port:
number: {{ $ports.marketing }}
{{- end }}
{{- with $hosts.docs }}
- host: {{ . }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: docs
port:
number: {{ $ports.docs }}
{{- end }}
{{- range $hosts.marketingAliases }}
- host: {{ . }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: marketing
port:
number: {{ $ports.marketing }}
{{- end }}
- host: {{ $hosts.marketingCanary }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: marketing-canary
port:
number: {{ $ports.marketingCanary }}
- host: {{ $hosts.mediaProxy }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: media-proxy
port:
number: {{ $ports.mediaProxy }}
- host: {{ $hosts.staticProxy }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: static-proxy
port:
number: {{ $ports.staticProxy }}
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: fluxer-ingress-gateway
namespace: {{ .Values.global.namespace }}
labels:
{{- include "fluxer.labels" . | nindent 4 }}
annotations:
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/upstream-hash-by: "$remote_addr"
nginx.ingress.kubernetes.io/websocket-services: gateway
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: {{ $hosts.gateway }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: gateway
port:
number: {{ $ports.gateway }}
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: fluxer-ingress-api-proxy
namespace: {{ .Values.global.namespace }}
labels:
{{- include "fluxer.labels" . | nindent 4 }}
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: {{ $hosts.appProxy }}
http:
paths:
- path: /api(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: api
port:
number: {{ $ports.api }}
- host: {{ $hosts.appProxyCanary }}
http:
paths:
- path: /api(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: api-canary
port:
number: {{ $ports.apiCanary }}
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: fluxer-ingress-uploads
namespace: {{ .Values.global.namespace }}
labels:
{{- include "fluxer.labels" . | nindent 4 }}
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "500m"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/proxy-buffering: "off"
nginx.ingress.kubernetes.io/proxy-read-timeout: "900"
nginx.ingress.kubernetes.io/proxy-send-timeout: "900"
nginx.ingress.kubernetes.io/client-body-buffer-size: "1m"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: {{ $hosts.uploads }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: uploads
port:
number: {{ $ports.uploads }}