feat: Gateway API support, in lieu of Ingress
commitlint / check-and-test (pull_request) Successful in 3s
check-and-test / check-and-test (pull_request) Failing after 36s

This commit is contained in:
2026-07-04 12:22:32 -04:00
parent 0bdf8c789d
commit 9d9ea09afb
9 changed files with 289 additions and 3 deletions
+9
View File
@@ -471,3 +471,12 @@ https
{{- define "gitea.metrics-secret-name" -}}
{{ default (printf "%s-metrics-secret" (include "gitea.fullname" .)) }}
{{- end -}}
{{/*
Validate that Ingress and Gateway HTTPRoute are not enabled at the same time
*/}}
{{- define "gitea.validate-ingress-gateway-conflict" -}}
{{- if and ((.Values.ingress).enabled) (((.Values.gateway).httpRoute).enabled) -}}
{{- fail "You cannot enable both Ingress and HTTPRoute at the same time" -}}
{{- end -}}
{{- end -}}
+79
View File
@@ -0,0 +1,79 @@
{{- include "gitea.validate-ingress-gateway-conflict" . }}
{{- if .Values.gateway.httpRoute.enabled -}}
{{- $fullName := include "gitea.fullname" . -}}
{{- $httpPort := .Values.service.http.port -}}
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: {{ $fullName }}
namespace: {{ .Values.namespace | default .Release.Namespace }}
labels:
{{- include "gitea.labels" . | nindent 4 }}
annotations:
{{- range $key, $value := .Values.gateway.httpRoute.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
hostnames:
{{- range .Values.gateway.httpRoute.hostnames }}
- {{ tpl . $ | quote }}
{{- end }}
parentRefs:
{{- range .Values.gateway.httpRoute.parentRefs }}
- name: {{ .name | quote }}
{{- if .namespace }}
namespace: {{ .namespace | quote }}
{{- end }}
{{- if .kind }}
kind: {{ .kind | quote }}
{{- end }}
{{- if .group }}
group: {{ .group | quote }}
{{- end }}
{{- if .sectionName }}
sectionName: {{ .sectionName | quote }}
{{- end }}
{{- if .port }}
port: {{ .port }}
{{- end }}
{{- end }}
rules:
{{- if .Values.gateway.httpRoute.paths }}
{{- range .Values.gateway.httpRoute.paths }}
{{- if kindIs "string" . }}
- matches:
- path:
type: {{ default "PathPrefix" $.Values.gateway.httpRoute.pathType }}
value: {{ . }}
backendRefs:
- group: ""
kind: Service
name: {{ $fullName }}-http
namespace: {{ $.Values.namespace | default $.Release.Namespace }}
port: {{ $httpPort }}
{{- else }}
- matches:
- path:
type: {{ .pathType | default "PathPrefix" }}
value: {{ .path | default "/" }}
backendRefs:
- group: ""
kind: Service
name: {{ $fullName }}-http
namespace: {{ $.Values.namespace | default $.Release.Namespace }}
port: {{ $httpPort }}
{{- end }}
{{- end }}
{{- else }}
- matches:
- path:
type: PathPrefix
value: "/"
backendRefs:
- group: ""
kind: Service
name: {{ $fullName }}-http
namespace: {{ .Values.namespace | default .Release.Namespace }}
port: {{ $httpPort }}
{{- end }}
{{- end }}
+1
View File
@@ -1,3 +1,4 @@
{{- include "gitea.validate-ingress-gateway-conflict" . }}
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "gitea.fullname" . -}}
{{- $httpPort := .Values.service.http.port -}}