# 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 }}