Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
98139fa
chore(chart-deps): update gitea to version 12.7.0
svcAPLBot Jul 20, 2026
ddccad1
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 20, 2026
93088b4
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 21, 2026
cc7bca3
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 21, 2026
03f94d0
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 22, 2026
1a627bf
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 27, 2026
7d91762
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 28, 2026
85127b3
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 28, 2026
af95d73
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 28, 2026
6fc3f5a
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 28, 2026
385ede2
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 28, 2026
9547a53
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 29, 2026
6a3b0b9
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 29, 2026
25f22b8
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 29, 2026
09656f9
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 29, 2026
152a89a
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 30, 2026
74e420d
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Jul 31, 2026
1a5b53f
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Aug 3, 2026
b3813ef
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Aug 3, 2026
de18855
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Aug 4, 2026
f352304
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Aug 4, 2026
580a5d4
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Aug 4, 2026
bc12aba
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Aug 4, 2026
94f1b7e
Merge branch 'main' into ci-update-gitea-to-12.7.0
svcAPLBot Aug 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ appsInfo:
integration: ExternalDNS is used by App Platform to make public service domains accessible by registering them with App Platform's load balancer CNAME or IP address. When ExternalDNS is not enabled (default), then App Platform will rely on nip.io to create host names for all services.
gitea:
title: Gitea Self-hosted GIT
appVersion: 1.26.2
appVersion: 1.27.0
repo: https://github.com/go-gitea/gitea
maintainers: Gitea
relatedLinks:
Expand Down
2 changes: 1 addition & 1 deletion chart/chart-index/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ dependencies:
version: 2.7.0
repository: https://charts.external-secrets.io
- name: gitea
version: 12.6.0
version: 12.7.0
repository: https://dl.gitea.io/charts
- name: harbor
version: 1.19.1
Expand Down
62 changes: 62 additions & 0 deletions charts/gitea/.github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Gitea Helm Chart — Copilot Instructions

## Project Overview

Kubernetes Helm chart for deploying [Gitea](https://gitea.com). Uses Go/Helm templating (`templates/`), YAML values (`values.yaml`), and includes sub-charts for PostgreSQL, PostgreSQL-HA, Valkey, and Valkey-cluster.

## Build & Test

```bash
make readme # Regenerate README.md parameter table + lint
make unittests-helm # Run Helm unit tests (helm-unittest plugin required)
make unittests-bash # Run bash/bats script tests (requires git submodule init)
make unittests # Both of the above
```

Always run `make readme` after changing `values.yaml` `@param` annotations.
Always run `make unittests-helm` after changing templates or unit tests.

## Conventions

### values.yaml

- Use `## @param path.to.key Description` annotations for every user-facing value. These drive the auto-generated README parameter table.
- Property ordering within a resource block: `enabled`, `annotations`, `labels` first, then type-specific fields.
- Top-level keys are sorted alphabetically within their section group.
- Use [Helm Values](https://docs.renovatebot.com/modules/manager/helm-values/#additional-information) pattern from renovatebot. Ensure that the attributes `registry`, `repository` and `tag` are available as part of the dict `image`. For example:

```yaml
image:
registry: docker.io
repository: library/busybox
tag: 0.1.0
```

### Templates

- Helm templates live in `templates/gitea/`. Helpers live in `templates/_helpers.tpl`.
- Use camelCase for all files and variables (e.g `httpRoute`, `backendTLSPolicy`, `gatewayAPI`, `statefulSet`).
- Use `include "gitea.fullname"` for naming resources.
- Use `fail` for required-value validation with clear error messages referencing the full values path.
- Ensure, that the attributes `annotations`, `labels`, `name` and `namespace` are alphabetically sorted.
- Render all attributes, even if they are empty, to prevent drift in Argo CD. For example, `labels` must be rendered, while `annotations` are defined as `yaml:"annotations,omitempty"`.
- Use plural for `*.tpl` files, because they may contain functions for multiple resources of the same kind (e.g. `_services.tpl` for `httpService.yaml` or `sshService.yaml`, `_backendTLSPolicies.tpl` for `backendTLSPolicy.yaml`).

### Unit Tests

- Helm unit tests live in `unittests/helm/` mirroring the template structure.
- Test files are YAML using the [helm-unittest](https://github.com/helm-unittest/helm-unittest) format.
- Each test must set all required values explicitly — do not rely on cross-test state.
- The `values.yaml` file must pass `yamllint`. The configuration is in `.yamllint`. Use `make yamllint` to run the linter.

### Commits & PRs

- Follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for PR titles and commit messages (e.g. `feat:`, `fix:`, `refactor:`, `docs:`, `style:`).
- See `CONTRIBUTING.md` for full PR requirements.
- Explain in detail why a change is needed, not just what the change is. Include links to relevant issues, PRs, or external references.
- Add co-authors for any contributions that are not your own. Use the `Co-authored-by:` trailer in the commit message.

### Documentation

- `docs/` contains topic-specific guides (e.g. `gateway-api.md`, `ha-setup.md`).
- `README.md` parameter tables are auto-generated — never edit them manually.
26 changes: 18 additions & 8 deletions charts/gitea/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
annotations:
artifacthub.io/changes: |
- kind: added
description: add Gateway API support (#1073)
Comment on lines 2 to +4
- kind: changed
description: update lockfiles (#1079)
description: update alpine/helm docker tag to v3.21.3 (#1096)
- kind: changed
description: upgrade to 1.26 and replace environment_to_ini_call with gitea config edit-ini (#1070)
description: update to 1.27.0 (#1095)
- kind: changed
description: update lockfiles (#1075)
description: update workflow dependencies (minor & patch) (#1094)
- kind: changed
description: update commitlint/commitlint docker tag to v20.5.3 (#1074)
description: update gitea version to 1.26.4 (#1093)
- kind: changed
description: update workflow dependencies (minor & patch) (#1072)
description: update workflow dependencies (minor & patch) (#1092)
- kind: changed
description: update dependency go-gitea/gitea to v1.26.1 (#1071)
description: update dependency helm-unittest/helm-unittest to v1.1.1 (#1090)
- kind: changed
description: update lockfiles (#1087)
- kind: changed
description: update dependency go-gitea/gitea to v1.26.2 (#1084)
- kind: changed
description: update lockfiles (#1082)
- kind: changed
description: update workflow dependencies (minor & patch) (#1080)
artifacthub.io/links: |
- name: support
url: https://gitea.com/gitea/helm-gitea/issues
apiVersion: v2
appVersion: 1.26.2
appVersion: 1.27.0
dependencies:
- condition: postgresql.enabled
name: postgresql
Expand Down Expand Up @@ -56,4 +66,4 @@ sources:
- https://github.com/go-gitea/gitea
- https://docker.gitea.com/gitea
type: application
version: 12.6.0
version: 12.7.0
37 changes: 37 additions & 0 deletions charts/gitea/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
- [Security](#security)
- [Service](#service)
- [Ingress](#ingress)
- [Route](#route)
- [Gateway API](#gateway-api)
- [deployment](#deployment)
- [ServiceAccount](#serviceaccount)
- [Persistence](#persistence-1)
Expand Down Expand Up @@ -311,6 +313,11 @@ route:

When `route.host` is set, the chart uses it for `DOMAIN`, `SSH_DOMAIN`, and `ROOT_URL`. Setting `route.tls.termination` also switches the default `ROOT_URL` scheme to `https`.

#### Gateway API

The chart can also expose Gitea through Gateway API resources (`HTTPRoute`, `TCPRoute`, `BackendTLSPolicy`, and optionally `Gateway`).
See [docs/gateway-api.md](docs/gateway-api.md) for the full guide, including how routes interact with `ROOT_URL`/`DOMAIN` resolution and recommended topologies.

#### Session, Cache and Queue

The session, cache and queue settings are set to use the built-in Valkey Cluster sub-chart dependency.
Expand Down Expand Up @@ -1075,6 +1082,36 @@ To comply with the Gitea helm chart definition of the digest parameter, a "custo
| `route.tls.caCertificate` | Route TLS CA certificate | `nil` |
| `route.tls.destinationCACertificate` | Route destination CA certificate | `nil` |

### Gateway API

| Name | Description | Value |
| --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `gatewayAPI.enabled` | Enable deployment of Gateway API resources | `false` |
| `gatewayAPI.core.backendTLSPolicy.enabled` | Render a BackendTLSPolicy resource for encrypted backend traffic | `false` |
| `gatewayAPI.core.backendTLSPolicy.annotations` | Annotations applied to the BackendTLSPolicy | `{}` |
| `gatewayAPI.core.backendTLSPolicy.labels` | Additional labels applied to the BackendTLSPolicy | `{}` |
| `gatewayAPI.core.backendTLSPolicy.targetRefs` | Target references for the BackendTLSPolicy. Defaults to the HTTP service. | `[]` |
| `gatewayAPI.core.backendTLSPolicy.validation` | Validation configuration (required when enabled). See `docs/gateway-api.md`. | `{}` |
| `gatewayAPI.core.backendTLSPolicy.validation.caCertificateRefs` | CA certificate references for the BackendTLSPolicy validation. See `docs/gateway-api.md`. | |
| `gatewayAPI.core.backendTLSPolicy.validation.hostname` | Hostname for the BackendTLSPolicy validation. Must be the Common Name (CN) or a Subject Alternative Name (SAN) of the Gitea server certificate. See `docs/gateway-api.md`. | |
| `gatewayAPI.core.httpRoute.enabled` | Render an HTTPRoute resource | `false` |
| `gatewayAPI.core.httpRoute.annotations` | Annotations applied to the HTTPRoute | `{}` |
| `gatewayAPI.core.httpRoute.labels` | Additional labels applied to the HTTPRoute | `{}` |
| `gatewayAPI.core.httpRoute.tls` | When true, treat the upstream Gateway as terminating TLS so `ROOT_URL` uses `https`. | `false` |
| `gatewayAPI.core.httpRoute.parentRefs` | Parent gateway references (required when enabled). | `[]` |
| `gatewayAPI.core.httpRoute.hostnames` | List of hostnames for the HTTPRoute. | `[]` |
| `gatewayAPI.core.httpRoute.rules` | Custom routing rules. Defaults to a PathPrefix `/` rule targeting the HTTP service. | `[]` |
| `gatewayAPI.core.tcpRoute.enabled` | Render a TCPRoute resource (typically for SSH) | `false` |
| `gatewayAPI.core.tcpRoute.annotations` | Annotations applied to the TCPRoute | `{}` |
| `gatewayAPI.core.tcpRoute.labels` | Additional labels applied to the TCPRoute | `{}` |
| `gatewayAPI.core.tcpRoute.parentRefs` | Parent gateway references (required when enabled). | `[]` |
| `gatewayAPI.core.tcpRoute.rules` | Custom routing rules. Defaults to a rule targeting the SSH service. | `[]` |
| `gatewayAPI.nginx.clientSettingsPolicies.enabled` | Render a ClientSettingsPolicy (NGINX Gateway Fabric) to raise the client request body limit | `false` |
| `gatewayAPI.nginx.clientSettingsPolicies.annotations` | Annotations applied to the ClientSettingsPolicy | `{}` |
| `gatewayAPI.nginx.clientSettingsPolicies.labels` | Additional labels applied to the ClientSettingsPolicy | `{}` |
| `gatewayAPI.nginx.clientSettingsPolicies.targetRef` | Target reference for the ClientSettingsPolicy. Defaults to the chart's HTTPRoute. | `{}` |
| `gatewayAPI.nginx.clientSettingsPolicies.body` | Client body settings (required when enabled), e.g. `maxSize`. See `docs/gateway-api.md`. | `{}` |

### deployment

| Name | Description | Value |
Expand Down
Loading
Loading