feat(new): gateway api support
check-and-test / check-and-test (pull_request) Successful in 39s

This commit is contained in:
2026-07-04 12:30:38 -04:00
parent 0bdf8c789d
commit 84349e6385
9 changed files with 286 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
suite: Test httproute.yaml
templates:
- templates/gitea/httproute.yaml
tests:
- it: should enable httproute when gateway.httpRoute.enabled is true
set:
gateway.httpRoute.enabled: true
gateway.httpRoute.annotations:
some-annotation: some-value
gateway.httpRoute.hostnames:
- example.com
gateway.httpRoute.parentRefs:
- name: traefik
sectionName: https
kind: Gateway
gateway.httpRoute.paths:
- path: /
asserts:
- hasDocuments:
count: 1
- isKind:
of: HTTPRoute
- isAPIVersion:
of: gateway.networking.k8s.io/v1
- equal:
path: metadata.name
value: RELEASE-NAME-gitea
- equal:
path: metadata.annotations["some-annotation"]
value: some-value
- equal:
path: spec.hostnames[0]
value: "example.com"
- equal:
path: spec.parentRefs[0].name
value: "traefik"
- equal:
path: spec.parentRefs[0].kind
value: "Gateway"
- equal:
path: spec.parentRefs[0].sectionName
value: "https"
- equal:
path: spec.rules[0].matches[0].path.type
value: "PathPrefix"
- equal:
path: spec.rules[0].matches[0].path.value
value: "/"
- equal:
path: spec.rules[0].backendRefs[0].name
value: "RELEASE-NAME-gitea-http"
- equal:
path: spec.rules[0].backendRefs[0].port
value: 3000
- it: should not create httproute when gateway.httpRoute.enabled is false
set:
gateway.httpRoute.enabled: false
asserts:
- hasDocuments:
count: 0
- it: hostname using TPL
set:
global.giteaHostName: "gitea.example.com"
gateway.httpRoute.enabled: true
gateway.httpRoute.hostnames:
- "{{ .Values.global.giteaHostName }}"
asserts:
- isKind:
of: HTTPRoute
- equal:
path: spec.hostnames[0]
value: "gitea.example.com"
@@ -0,0 +1,19 @@
suite: Test httproute with implicit path defaults
templates:
- templates/gitea/httproute.yaml
tests:
- it: should use default path and pathType when no paths are specified
set:
gateway.httpRoute.enabled: true
gateway.httpRoute.paths: []
asserts:
- hasDocuments:
count: 1
- isKind:
of: HTTPRoute
- equal:
path: spec.rules[0].matches[0].path.type
value: "PathPrefix"
- equal:
path: spec.rules[0].matches[0].path.value
value: "/"
@@ -0,0 +1,56 @@
suite: Test httproute with structured paths
templates:
- templates/gitea/httproute.yaml
tests:
- it: should work with a plain string path
set:
gateway.httpRoute.enabled: true
gateway.httpRoute.paths:
- /
asserts:
- hasDocuments:
count: 1
- isKind:
of: HTTPRoute
- equal:
path: spec.rules[0].matches[0].path.type
value: "PathPrefix"
- equal:
path: spec.rules[0].matches[0].path.value
value: "/"
- it: should work with structured path definitions and per-path pathType
set:
gateway.httpRoute.enabled: true
gateway.httpRoute.paths:
- path: /
- path: /foo
pathType: Exact
asserts:
- hasDocuments:
count: 1
- isKind:
of: HTTPRoute
- equal:
path: spec.rules[0].matches[0].path.type
value: "PathPrefix"
- equal:
path: spec.rules[0].matches[0].path.value
value: "/"
- equal:
path: spec.rules[1].matches[0].path.type
value: "Exact"
- equal:
path: spec.rules[1].matches[0].path.value
value: "/foo"
- it: should allow overriding the default pathType
set:
gateway.httpRoute.enabled: true
gateway.httpRoute.pathType: Exact
gateway.httpRoute.paths:
- /
asserts:
- equal:
path: spec.rules[0].matches[0].path.type
value: "Exact"
@@ -12,3 +12,14 @@ tests:
asserts:
- failedTemplate:
errorMessage: valkey and valkey-cluster cannot be enabled at the same time. Please only choose one.
- it: fails when trying to enable ingress and gateway httpRoute at the same time
set:
ingress:
enabled: true
gateway:
httpRoute:
enabled: true
asserts:
- failedTemplate:
errorMessage: You cannot enable both Ingress and HTTPRoute at the same time