refactor(ingress)!: skip the Ingress when the HTTP Service is disabled
changelog / changelog (push) Successful in 16s
check-and-test / check-and-test (push) Failing after 1m51s

An Ingress that points at a Service which the chart does not render is broken by definition: the backend reference
cannot resolve and the ingress controller reports the rule as unavailable. The render condition therefore now also
requires `service.http.enabled` and lives in the new `gitea.ingress.enabled` helper, so the same rule can be reused
by other templates instead of being duplicated.

The namespace is taken from `.Release.Namespace` again. The `namespace` value is not a documented chart parameter,
and letting a single resource opt out of the release namespace breaks `helm uninstall` and Argo CD pruning, because
neither tracks objects outside the release namespace.

The `ingress.className` default changes from an empty string to `nginx`. An empty class makes the cluster fall back
to the default IngressClass, which silently produces a different result per cluster; naming the controller the chart
is tested against makes the rendered output predictable.

The scattered ingress suites are consolidated into a single `unittests/helm/ingress/ingress.yaml` that pins the
release name, namespace and appVersion, as required by the testing conventions, and covers the enable/disable matrix,
annotations, labels, TLS and a custom HTTP port.

BREAKING CHANGE: The Ingress is no longer rendered when `service.http.enabled` is `false`. `ingress.className` now
defaults to `nginx` instead of the cluster's default IngressClass. The undocumented `namespace` value no longer
applies to the Ingress.

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-09-13 20:20:00 +02:00
co-authored by Copilot
parent 41dcb48564
commit e17a4e7a7b
11 changed files with 166 additions and 246 deletions
+1 -1
View File
@@ -1146,7 +1146,7 @@ To comply with the Gitea helm chart definition of the digest parameter, a "custo
| `ingress.enabled` | Enable ingress | `false` |
| `ingress.annotations` | Additional annotations. | `{}` |
| `ingress.labels` | Additional labels. | `{}` |
| `ingress.className` | DEPRECATED: Ingress class name. | `""` |
| `ingress.className` | DEPRECATED: Ingress class name. | `nginx` |
| `ingress.pathType` | Ingress Path Type | `Prefix` |
| `ingress.hosts[0].host` | Default Ingress host | `git.example.com` |
| `ingress.hosts[0].paths[0].path` | Default Ingress path | `/` |