{{- /* Single unified Ingress for all services */ -}} {{- $fullName := include "gitdata.fullname" . -}} {{- $ns := include "gitdata.namespace" . -}} apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: {{ $fullName }}-ingress namespace: {{ $ns }} labels: app.kubernetes.io/name: {{ $fullName }} app.kubernetes.io/instance: {{ .Release.Name }} annotations: cert-manager.io/cluster-issuer: cloudflare-acme-cluster-issuer nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" spec: ingressClassName: nginx tls: - hosts: - gitdata.ai - api.gitdata.ai - git.gitdata.ai - static.gitdata.ai secretName: {{ $fullName }}-tls rules: # Frontend (default), with /api and /ws routed to app - host: gitdata.ai http: paths: - path: /api pathType: Prefix backend: service: name: {{ $fullName }}-app port: number: {{ .Values.app.service.port }} - path: /ws pathType: Prefix backend: service: name: {{ $fullName }}-app port: number: {{ .Values.app.service.port }} - path: / pathType: Prefix backend: service: name: {{ $fullName }}-frontend port: number: 80 # Dedicated API host - host: api.gitdata.ai http: paths: - path: / pathType: Prefix backend: service: name: {{ $fullName }}-app port: number: {{ .Values.app.service.port }} # Gitserver HTTP - host: git.gitdata.ai http: paths: - path: / pathType: Prefix backend: service: name: {{ $fullName }}-gitserver-http port: number: {{ .Values.gitserver.service.http.port }} # Static files - host: static.gitdata.ai http: paths: - path: / pathType: Prefix backend: service: name: {{ $fullName }}-static port: number: {{ .Values.static.service.port }}