Compare commits

..

1 commit

Author SHA1 Message Date
Renovate Bot
7a8d059592
ci(deps): update dependency k3s to v1.29.8+k3s1 (minor) 2024-09-12 10:31:29 +02:00
40 changed files with 536 additions and 1193 deletions

View file

@ -6,11 +6,11 @@ runs:
using: 'composite' using: 'composite'
steps: steps:
- name: Setup pnpm - name: Setup pnpm
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0
with: with:
standalone: true standalone: true
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0 - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: 'pnpm' cache: 'pnpm'

View file

@ -1,57 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"packageRules": [
{
"description": "Separate minor and patch updates for k3s",
"matchDatasources": ["github-releases"],
"matchPackageNames": ["k3s-io/k3s"],
"separateMultipleMinor": true,
"separateMinorPatch": true,
"branchTopic": "{{{depNameSanitized}}}{{#if isMinor}}-minor{{/if}}-{{{newMajor}}}{{#if isPatch}}.{{{newMinor}}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}",
"commitMessageSuffix": "{{#if isMinor}}(minor){{/if}}{{#if isPatch}}(patch){{/if}}"
},
{
"description": "No automerge for k3s major and minor updates",
"matchDatasources": ["github-releases"],
"matchPackageNames": ["k3s-io/k3s"],
"matchUpdateTypes": ["major", "minor"],
"automerge": false
},
{
"description": "Group k3s patch updates",
"matchDatasources": ["github-releases"],
"matchPackageNames": ["k3s-io/k3s"],
"matchUpdateTypes": ["patch"],
"groupName": "k3s"
},
{
"description": "Disable k3s major and minor updates for old versions",
"matchDatasources": ["github-releases"],
"matchFileNames": [".forgejo/workflows/**"],
"matchPackageNames": ["k3s-io/k3s"],
"matchUpdateTypes": ["major", "minor"],
"matchCurrentValue": "!/^v1.32/",
"enabled": false
}
],
"customDatasources": {
"k3s": {
"defaultRegistryUrlTemplate": "https://update.k3s.io/v1-release/channels",
"transformTemplates": [
"($isVersion:=function($name){$contains($name,/^v\\d+.\\d+$/)};{\"releases\":[data[$isVersion(name)].{\"version\":latest}],\"sourceUrl\":\"https://github.com/k3s-io/k3s\",\"homepage\":\"https://k3s.io/\"})"
]
}
},
"customManagers": [
{
"customType": "regex",
"fileMatch": [".forgejo/renovate/k3s.json"],
"matchStrings": [
"matchCurrentValue\": \"!\\/^v(?<currentValue>\\d+\\.\\d+)\\/"
],
"depNameTemplate": "k3s",
"versioningTemplate": "npm",
"datasourceTemplate": "custom.k3s"
}
]
}

View file

@ -8,16 +8,15 @@ on:
- maint/** - maint/**
tags: tags:
- v* - v*
workflow_dispatch:
permissions: permissions:
contents: read contents: read
env: env:
HELM_VERSION: v3.17.2 # renovate: datasource=github-releases depName=helm packageName=helm/helm HELM_VERSION: v3.16.0 # renovate: datasource=github-releases depName=helm packageName=helm/helm
HELM_UNITTEST_VERSION: v0.7.2 # renovate: datasource=github-releases depName=helm-unittest packageName=helm-unittest/helm-unittest HELM_UNITTEST_VERSION: v0.6.1 # renovate: datasource=github-releases depName=helm-unittest packageName=helm-unittest/helm-unittest
HELM_CHART_TESTING_VERSION: v3.12.0 # renovate: datasource=github-releases depName=chart-testing packageName=helm/chart-testing HELM_CHART_TESTING_VERSION: v3.11.0 # renovate: datasource=github-releases depName=chart-testing packageName=helm/chart-testing
KUBECTL_VERSION: v1.32.3 # renovate: datasource=github-releases depName=kubectl packageName=kubernetes/kubernetes KUBECTL_VERSION: v1.31.1 # renovate: datasource=github-releases depName=kubectl packageName=kubernetes/kubernetes
CT_GITHUB_GROUPS: true CT_GITHUB_GROUPS: true
jobs: jobs:
@ -26,11 +25,9 @@ jobs:
steps: steps:
- run: cat /etc/os-release - run: cat /etc/os-release
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with: with:
show-progress: false show-progress: false
fetch-depth: 0 # Important for changelog
filter: blob:none # We don't need all blobs
- uses: ./.forgejo/actions/setup - uses: ./.forgejo/actions/setup
- uses: ./.forgejo/actions/setup-node - uses: ./.forgejo/actions/setup-node
@ -40,10 +37,6 @@ jobs:
- run: make readme - run: make readme
- run: git diff --exit-code --name-only README.md - run: git diff --exit-code --name-only README.md
- name: changelog
run: |
pnpm changelog ${{ github.ref_type == 'tag' && 'true' || '' }}
lint-helm: lint-helm:
runs-on: docker runs-on: docker
steps: steps:
@ -51,7 +44,7 @@ jobs:
- run: ps axf - run: ps axf
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with: with:
show-progress: false show-progress: false
fetch-depth: 0 fetch-depth: 0
@ -60,12 +53,12 @@ jobs:
- uses: ./.forgejo/actions/setup - uses: ./.forgejo/actions/setup
- name: install chart-testing - name: install chart-testing
uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0 uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1
with: with:
version: ${{ env.HELM_CHART_TESTING_VERSION }} version: ${{ env.HELM_CHART_TESTING_VERSION }}
- name: install helm - name: install helm
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0 uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
with: with:
version: ${{ env.HELM_VERSION }} version: ${{ env.HELM_VERSION }}
@ -91,17 +84,17 @@ jobs:
k3s: k3s:
# https://github.com/k3s-io/k3s/branches # https://github.com/k3s-io/k3s/branches
# oldest supported version # oldest supported version
- v1.28.15+k3s1 # renovate: k3s - v1.29.8+k3s1 # renovate: k3s
# https://github.com/k3s-io/k3s/blob/master/channel.yaml#L3-L4 # https://github.com/k3s-io/k3s/blob/master/channel.yaml#L3-L4
# stable version # stable version
- v1.31.6+k3s1 # renovate: k3s - v1.30.4+k3s1 # renovate: k3s
# newest version # newest version
- v1.32.2+k3s1 # renovate: k3s - v1.31.0+k3s1 # renovate: k3s
steps: steps:
- run: cat /etc/os-release - run: cat /etc/os-release
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with: with:
show-progress: false show-progress: false
fetch-depth: 0 fetch-depth: 0
@ -110,12 +103,13 @@ jobs:
- uses: ./.forgejo/actions/setup - uses: ./.forgejo/actions/setup
- name: install helm - name: install helm
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0 uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
with: with:
version: ${{ env.HELM_VERSION }} version: ${{ env.HELM_VERSION }}
- name: Install chart-testing - name: Install chart-testing
uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0 # TODO: pin to version when this is released: https://github.com/helm/chart-testing-action/pull/137
uses: helm/chart-testing-action@5aa1c68405a43a57240a9b2869379324b2bec0fc # main
with: with:
version: ${{ env.HELM_CHART_TESTING_VERSION }} version: ${{ env.HELM_CHART_TESTING_VERSION }}
@ -126,7 +120,7 @@ jobs:
- run: kubectl get no -o wide - run: kubectl get no -o wide
- name: install chart - name: install chart
uses: https://github.com/nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2 uses: https://github.com/nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # v3.0.0
with: with:
timeout_minutes: 15 timeout_minutes: 15
max_attempts: 3 max_attempts: 3
@ -169,7 +163,7 @@ jobs:
if: ${{ github.ref_type == 'tag' }} if: ${{ github.ref_type == 'tag' }}
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with: with:
show-progress: false show-progress: false
fetch-depth: 0 # Important for changelog fetch-depth: 0 # Important for changelog
@ -179,7 +173,7 @@ jobs:
- uses: ./.forgejo/actions/setup-node - uses: ./.forgejo/actions/setup-node
- name: install helm - name: install helm
uses: https://github.com/azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0 uses: https://github.com/azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
with: with:
version: ${{ env.HELM_VERSION }} version: ${{ env.HELM_VERSION }}

View file

@ -6,8 +6,6 @@ on:
branches: branches:
- 'main' - 'main'
workflow_dispatch:
jobs: jobs:
mirror: mirror:
runs-on: docker runs-on: docker

View file

@ -1 +1 @@
22.14.0 20.17.0

View file

@ -4,7 +4,7 @@
".github/workflows/*", ".github/workflows/*",
".forgejo/workflows/*" ".forgejo/workflows/*"
], ],
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.7.2/schema/helm-testsuite.json": [ "https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.6.1/schema/helm-testsuite.json": [
"/unittests/**/*.yaml" "/unittests/**/*.yaml"
] ]
}, },

View file

@ -1,18 +1,15 @@
dependencies: dependencies:
- name: common
repository: oci://ghcr.io/visualon/bitnamicharts
version: 2.30.0
- name: postgresql - name: postgresql
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 16.5.6 version: 15.5.29
- name: postgresql-ha - name: postgresql-ha
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 15.3.8 version: 14.2.27
- name: redis-cluster - name: redis-cluster
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 11.4.6 version: 11.0.3
- name: redis - name: redis
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 20.11.4 version: 20.1.0
digest: sha256:a9c9f0779663336dd22ca4896f22bb64427e28f20aa567aee2f18474f8e31a23 digest: sha256:00ab3685216e8998a00aaa046b0f70a5f87bee9f9187e21a3f1c8d75d4e8615a
generated: "2025-03-26T15:31:33.532188569Z" generated: "2024-09-12T00:00:34.21890473Z"

View file

@ -3,7 +3,7 @@ name: forgejo
description: Forgejo Helm chart for Kubernetes description: Forgejo Helm chart for Kubernetes
type: application type: application
version: 0.0.0 version: 0.0.0
appVersion: 10.0.3 appVersion: 8.0.3
icon: https://code.forgejo.org/forgejo/forgejo/raw/branch/forgejo/assets/logo.svg icon: https://code.forgejo.org/forgejo/forgejo/raw/branch/forgejo/assets/logo.svg
home: https://forgejo.org/ home: https://forgejo.org/
@ -22,35 +22,27 @@ maintainers:
- name: Michael Kriese - name: Michael Kriese
email: michael.kriese@visualon.de email: michael.kriese@visualon.de
# Bitnami charts are served from ghcr mirror because of rate limiting on Docker Hub # Bitnami charts are served from Docker Hub
# https://hub.docker.com/u/bitnamicharts # https://hub.docker.com/u/bitnamicharts
# https://blog.bitnami.com/2023/01/bitnami-helm-charts-available-as-oci.html # https://blog.bitnami.com/2023/01/bitnami-helm-charts-available-as-oci.html
# https://github.com/bitnami/charts/issues/30853
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045
dependencies: dependencies:
# https://github.com/bitnami/charts/blob/main/bitnami/common/Chart.yaml
- name: common
repository: oci://ghcr.io/visualon/bitnamicharts
tags:
- bitnami-common
version: 2.30.0
# https://github.com/bitnami/charts/blob/main/bitnami/postgresql/Chart.yaml # https://github.com/bitnami/charts/blob/main/bitnami/postgresql/Chart.yaml
- name: postgresql - name: postgresql
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 16.5.6 version: 15.5.29
condition: postgresql.enabled condition: postgresql.enabled
# https://github.com/bitnami/charts/blob/main/bitnami/postgresql-ha/Chart.yaml # https://github.com/bitnami/charts/blob/main/bitnami/postgresql-ha/Chart.yaml
- name: postgresql-ha - name: postgresql-ha
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 15.3.8 version: 14.2.27
condition: postgresql-ha.enabled condition: postgresql-ha.enabled
# https://github.com/bitnami/charts/blob/main/bitnami/redis-cluster/Chart.yaml # https://github.com/bitnami/charts/blob/main/bitnami/redis-cluster/Chart.yaml
- name: redis-cluster - name: redis-cluster
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 11.4.6 version: 11.0.3
condition: redis-cluster.enabled condition: redis-cluster.enabled
# https://github.com/bitnami/charts/blob/main/bitnami/redis/Chart.yaml # https://github.com/bitnami/charts/blob/main/bitnami/redis/Chart.yaml
- name: redis - name: redis
repository: oci://ghcr.io/visualon/bitnamicharts repository: oci://registry-1.docker.io/bitnamicharts
version: 20.11.4 version: 20.1.0
condition: redis.enabled condition: redis.enabled

212
README.md
View file

@ -20,6 +20,7 @@
- [User defined environment variables in app.ini](#user-defined-environment-variables-in-appini) - [User defined environment variables in app.ini](#user-defined-environment-variables-in-appini)
- [External Database](#external-database) - [External Database](#external-database)
- [Ports and external url](#ports-and-external-url) - [Ports and external url](#ports-and-external-url)
- [ClusterIP](#clusterip)
- [SSH and Ingress](#ssh-and-ingress) - [SSH and Ingress](#ssh-and-ingress)
- [SSH on crio based kubernetes cluster](#ssh-on-crio-based-kubernetes-cluster) - [SSH on crio based kubernetes cluster](#ssh-on-crio-based-kubernetes-cluster)
- [Cache](#cache) - [Cache](#cache)
@ -56,12 +57,9 @@
- [Advanced](#advanced) - [Advanced](#advanced)
- [Contributing](#contributing) - [Contributing](#contributing)
- [Upgrading](#upgrading) - [Upgrading](#upgrading)
- [To v11](#to-v11) - [To v8.0.0](#to-v800)
- [To v10](#to-v10) - [To v7.0.0](#to-v700)
- [To v9](#to-v9) - [To v6.0.0](#to-v600)
- [To v8](#to-v8)
- [To v7](#to-v7)
- [To v6](#to-v6)
[Forgejo](https://forgejo.org/) is a community managed lightweight code hosting solution written in Go. [Forgejo](https://forgejo.org/) is a community managed lightweight code hosting solution written in Go.
It is published under the MIT license. It is published under the MIT license.
@ -176,14 +174,14 @@ gitea:
This chart will set a few defaults in the Forgejo configuration based on the service and ingress settings. This chart will set a few defaults in the Forgejo configuration based on the service and ingress settings.
All defaults can be overwritten in `gitea.config`. All defaults can be overwritten in `gitea.config`.
INSTALL_LOCK is always set to true because the configuration in this helm chart makes any configuration via installer superfluous. INSTALL_LOCK is always set to true, since we want to configure Forgejo with this helm chart and everything is taken care of.
_All default settings are made directly in the generated `app.ini`, not in the Values._ _All default settings are made directly in the generated `app.ini`, not in the Values._
#### Database defaults #### Database defaults
If a database subchart is enabled, the database configuration is set automatically. If a builtIn database is enabled the database configuration is set automatically.
For example, PostgreSQL will appear in the `app.ini` as: For example, PostgreSQL builtIn will appear in the `app.ini` as:
```ini ```ini
[database] [database]
@ -449,6 +447,23 @@ This helm chart automatically configures the clone urls to use the correct ports
You can change these ports by hand using the `gitea.config` dict. You can change these ports by hand using the `gitea.config` dict.
However you should know what you're doing. However you should know what you're doing.
### ClusterIP
By default the `clusterIP` will be set to `None`, which is the default for headless services.
However if you want to omit the clusterIP field in the service, use the following values:
```yaml
service:
http:
type: ClusterIP
port: 3000
clusterIP:
ssh:
type: ClusterIP
port: 22
clusterIP:
```
### SSH and Ingress ### SSH and Ingress
If you're using ingress and want to use SSH, keep in mind, that ingress is not able to forward SSH Ports. If you're using ingress and want to use SSH, keep in mind, that ingress is not able to forward SSH Ports.
@ -458,7 +473,7 @@ You will need a LoadBalancer like `metallb` and a setting in your ssh service an
service: service:
ssh: ssh:
annotations: annotations:
metallb.io/allow-shared-ip: test metallb.universe.tf/allow-shared-ip: test
``` ```
### SSH on crio based kubernetes cluster ### SSH on crio based kubernetes cluster
@ -531,6 +546,8 @@ postgresql:
This chart enables you to create a default admin user. This chart enables you to create a default admin user.
It is also possible to update the password for this user by upgrading or redeploying the chart. It is also possible to update the password for this user by upgrading or redeploying the chart.
It is not possible to delete an admin user after it has been created.
This has to be done in the ui.
You cannot use `admin` as username. You cannot use `admin` as username.
```yaml ```yaml
@ -560,9 +577,7 @@ gitea:
existingSecret: gitea-admin-secret existingSecret: gitea-admin-secret
``` ```
To delete the admin user, set `username` or `password` to an empty value and delete the user in the UI. Whether you use the existing Secret or specify a user name and password, there are three modes for how the admin user password is created or set.
Whether you use the existing Secret or specify a username and password directly, there are three modes for how the admin user password is created or set.
- `keepUpdated` (the default) will set the admin user password, and reset it to the defined value every time the pod is recreated. - `keepUpdated` (the default) will set the admin user password, and reset it to the defined value every time the pod is recreated.
- `initialOnlyNoReset` will set the admin user password when creating it, but never try to update the password. - `initialOnlyNoReset` will set the admin user password when creating it, but never try to update the password.
@ -633,7 +648,7 @@ Affected options:
Like the admin user, OAuth2 settings can be updated and disabled but not deleted. Like the admin user, OAuth2 settings can be updated and disabled but not deleted.
Deleting OAuth2 settings has to be done in the UI. Deleting OAuth2 settings has to be done in the UI.
[All OAuth2 values](https://forgejo.org/docs/latest/admin/command-line/#admin-auth-add-oauth) are available. All OAuth2 values, which are documented [here](https://forgejo.org/docs/latest/admin/command-line/#admin), are available.
Multiple OAuth2 sources can be configured with additional OAuth list items. Multiple OAuth2 sources can be configured with additional OAuth list items.
@ -672,29 +687,14 @@ gitea:
existingSecret: gitea-oauth-secret existingSecret: gitea-oauth-secret
``` ```
### Compatibility with OCP (OKD or OpenShift)
Normally OCP is automatically detected and the compatibility mode set accordingly. To enforce the OCP compatibility mode use the following configuration:
```yaml
global:
compatibility:
openshift:
adaptSecurityContext: force
```
An OCP route to access Forgejo can be enabled with the following config:
```yaml
route:
enabled: true
```
## Configure commit signing ## Configure commit signing
When using the rootless image, the GPG key folder is not persistent by default. When using the rootless image the gpg key folder is not persistent by default.
If you want commits by Forgejo (e.g. initial commit) to be signed, If you consider using signed commits for internal Forgejo activities (e.g. initial commit), you'd need to provide a signing key.
you need to provide a signing key: Prior to [PR186](https://gitea.com/gitea/helm-chart/pulls/186), imported keys had to be re-imported once the container got replaced by another.
The mentioned PR introduced a new configuration object `signing` allowing you to configure prerequisites for commit signing.
By default this section is disabled to maintain backwards compatibility.
```yaml ```yaml
signing: signing:
@ -702,10 +702,8 @@ signing:
gpgHome: /data/git/.gnupg gpgHome: /data/git/.gnupg
``` ```
By default this section is disabled to maintain backwards compatibility. Regardless of the used container image the `signing` object allows to specify a private gpg key.
Either using the `signing.privateKey` to define the key inline, or refer to an existing secret containing the key data by using `signing.existingSecret`.
Regardless of the used container image the `signing` object allows to specify a private GPG key.
Either using the `signing.privateKey` to define the key inline, or referring to an existing secret containing the key data with `signing.existingSecret`.
```yaml ```yaml
apiVersion: v1 apiVersion: v1
@ -725,7 +723,7 @@ signing:
existingSecret: custom-gitea-gpg-key existingSecret: custom-gitea-gpg-key
``` ```
To use the GPG key, Forgejo needs to be configured accordingly. To use the gpg key, Forgejo needs to be configured accordingly.
A detailed description can be found in the [documentation](https://forgejo.org/docs/latest/admin/signing/#general-configuration). A detailed description can be found in the [documentation](https://forgejo.org/docs/latest/admin/signing/#general-configuration).
## Metrics and profiling ## Metrics and profiling
@ -864,7 +862,6 @@ To comply with the Forgejo helm chart definition of the digest parameter, a "cus
| `global.imagePullSecrets` | global image pull secrets override; can be extended by `imagePullSecrets` | `[]` | | `global.imagePullSecrets` | global image pull secrets override; can be extended by `imagePullSecrets` | `[]` |
| `global.storageClass` | global storage class override | `""` | | `global.storageClass` | global storage class override | `""` |
| `global.hostAliases` | global hostAliases which will be added to the pod's hosts files | `[]` | | `global.hostAliases` | global hostAliases which will be added to the pod's hosts files | `[]` |
| `namespaceOverride` | String to fully override common.names.namespace | `""` |
| `replicaCount` | number of replicas for the deployment | `1` | | `replicaCount` | number of replicas for the deployment | `1` |
### strategy ### strategy
@ -904,7 +901,7 @@ To comply with the Forgejo helm chart definition of the digest parameter, a "cus
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `service.http.type` | Kubernetes service type for web traffic | `ClusterIP` | | `service.http.type` | Kubernetes service type for web traffic | `ClusterIP` |
| `service.http.port` | Port number for web traffic | `3000` | | `service.http.port` | Port number for web traffic | `3000` |
| `service.http.clusterIP` | ClusterIP setting for http autosetup for deployment | `nil` | | `service.http.clusterIP` | ClusterIP setting for http autosetup for deployment is None | `None` |
| `service.http.loadBalancerIP` | LoadBalancer IP setting | `nil` | | `service.http.loadBalancerIP` | LoadBalancer IP setting | `nil` |
| `service.http.nodePort` | NodePort for http service | `nil` | | `service.http.nodePort` | NodePort for http service | `nil` |
| `service.http.externalTrafficPolicy` | If `service.http.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation | `nil` | | `service.http.externalTrafficPolicy` | If `service.http.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation | `nil` |
@ -917,7 +914,7 @@ To comply with the Forgejo helm chart definition of the digest parameter, a "cus
| `service.http.loadBalancerClass` | Loadbalancer class | `nil` | | `service.http.loadBalancerClass` | Loadbalancer class | `nil` |
| `service.ssh.type` | Kubernetes service type for ssh traffic | `ClusterIP` | | `service.ssh.type` | Kubernetes service type for ssh traffic | `ClusterIP` |
| `service.ssh.port` | Port number for ssh traffic | `22` | | `service.ssh.port` | Port number for ssh traffic | `22` |
| `service.ssh.clusterIP` | ClusterIP setting for ssh autosetup for deployment | `nil` | | `service.ssh.clusterIP` | ClusterIP setting for ssh autosetup for deployment is None | `None` |
| `service.ssh.loadBalancerIP` | LoadBalancer IP setting | `nil` | | `service.ssh.loadBalancerIP` | LoadBalancer IP setting | `nil` |
| `service.ssh.nodePort` | NodePort for ssh service | `nil` | | `service.ssh.nodePort` | NodePort for ssh service | `nil` |
| `service.ssh.externalTrafficPolicy` | If `service.ssh.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation | `nil` | | `service.ssh.externalTrafficPolicy` | If `service.ssh.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation | `nil` |
@ -932,31 +929,16 @@ To comply with the Forgejo helm chart definition of the digest parameter, a "cus
### Ingress ### Ingress
| Name | Description | Value | | Name | Description | Value |
| ------------------------------------ | -------------------- | ----------------- | | ------------------------------------ | --------------------------------------------------------------------------- | ----------------- |
| `ingress.enabled` | Enable ingress | `false` | | `ingress.enabled` | Enable ingress | `false` |
| `ingress.className` | Ingress class name | `nil` | | `ingress.className` | Ingress class name | `nil` |
| `ingress.annotations` | Ingress annotations | `{}` | | `ingress.annotations` | Ingress annotations | `{}` |
| `ingress.hosts[0].host` | Default Ingress host | `git.example.com` | | `ingress.hosts[0].host` | Default Ingress host | `git.example.com` |
| `ingress.hosts[0].paths[0].path` | Default Ingress path | `/` | | `ingress.hosts[0].paths[0].path` | Default Ingress path | `/` |
| `ingress.hosts[0].paths[0].pathType` | Ingress path type | `Prefix` | | `ingress.hosts[0].paths[0].pathType` | Ingress path type | `Prefix` |
| `ingress.tls` | Ingress tls settings | `[]` | | `ingress.tls` | Ingress tls settings | `[]` |
| `ingress.apiVersion` | Specify APIVersion of ingress object. Mostly would only be used for argocd. | |
### Route
| Name | Description | Value |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| `route.enabled` | Enable route | `false` |
| `route.annotations` | Route annotations | `{}` |
| `route.host` | Host to use for the route (will be assigned automatically by OKD / OpenShift is not defined) | `nil` |
| `route.wildcardPolicy` | Wildcard policy if any for the route, currently only 'Subdomain' or 'None' is allowed. | `nil` |
| `route.tls.termination` | termination type (see [OKD documentation](https://docs.okd.io/latest/rest_api/network_apis/route-route-openshift-io-v1.html#spec-tls)) | `edge` |
| `route.tls.insecureEdgeTerminationPolicy` | the desired behavior for insecure connections to a route (e.g. with http) | `Redirect` |
| `route.tls.existingSecret` | the name of a predefined secret of type kubernetes.io/tls with both key (tls.crt and tls.key) set accordingly (if defined attributes 'certificate', 'caCertificate' and 'privateKey' are ignored) | `nil` |
| `route.tls.certificate` | PEM encoded single certificate | `nil` |
| `route.tls.privateKey` | PEM encoded private key | `nil` |
| `route.tls.caCertificate` | PEM encoded CA certificate or chain that issued the certificate | `nil` |
| `route.tls.destinationCACertificate` | PEM encoded CA certificate used to verify the authenticity of final end point when 'termination' is set to 'passthrough' (ignored otherwise) | `nil` |
### deployment ### deployment
@ -1021,27 +1003,26 @@ To comply with the Forgejo helm chart definition of the digest parameter, a "cus
| ------------------------ | ----------------------------------------------------------------- | ------------------ | | ------------------------ | ----------------------------------------------------------------- | ------------------ |
| `signing.enabled` | Enable commit/action signing | `false` | | `signing.enabled` | Enable commit/action signing | `false` |
| `signing.gpgHome` | GPG home directory | `/data/git/.gnupg` | | `signing.gpgHome` | GPG home directory | `/data/git/.gnupg` |
| `signing.privateKey` | Inline private GPG key for signed internal Git activity | `""` | | `signing.privateKey` | Inline private gpg key for signed internal Git activity | `""` |
| `signing.existingSecret` | Use an existing secret to store the value of `signing.privateKey` | `""` | | `signing.existingSecret` | Use an existing secret to store the value of `signing.privateKey` | `""` |
### Gitea ### Gitea
| Name | Description | Value | | Name | Description | Value |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------- | | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| `gitea.admin.username` | Username for the Forgejo admin user | `gitea_admin` | | `gitea.admin.username` | Username for the Forgejo admin user | `gitea_admin` |
| `gitea.admin.existingSecret` | Use an existing secret to store admin user credentials | `nil` | | `gitea.admin.existingSecret` | Use an existing secret to store admin user credentials | `nil` |
| `gitea.admin.password` | Password for the Forgejo admin user | `r8sA8CPHD9!bt6d` | | `gitea.admin.password` | Password for the Forgejo admin user | `r8sA8CPHD9!bt6d` |
| `gitea.admin.email` | Email for the Forgejo admin user | `gitea@local.domain` | | `gitea.admin.email` | Email for the Forgejo admin user | `gitea@local.domain` |
| `gitea.admin.passwordMode` | Mode for how to set/update the admin user password. Options are: initialOnlyNoReset, initialOnlyRequireReset, and keepUpdated | `keepUpdated` | | `gitea.admin.passwordMode` | Mode for how to set/update the admin user password. Options are: initialOnlyNoReset, initialOnlyRequireReset, and keepUpdated | `keepUpdated` |
| `gitea.metrics.enabled` | Enable Forgejo metrics | `false` | | `gitea.metrics.enabled` | Enable Forgejo metrics | `false` |
| `gitea.metrics.serviceMonitor.enabled` | Enable Forgejo metrics service monitor | `false` | | `gitea.metrics.serviceMonitor.enabled` | Enable Forgejo metrics service monitor | `false` |
| `gitea.metrics.serviceMonitor.namespace` | Namespace in which Prometheus is running | `""` | | `gitea.ldap` | LDAP configuration | `[]` |
| `gitea.ldap` | LDAP configuration | `[]` | | `gitea.oauth` | OAuth configuration | `[]` |
| `gitea.oauth` | OAuth configuration | `[]` | | `gitea.additionalConfigSources` | Additional configuration from secret or configmap | `[]` |
| `gitea.additionalConfigSources` | Additional configuration from secret or configmap | `[]` | | `gitea.additionalConfigFromEnvs` | Additional configuration sources from environment variables | `[]` |
| `gitea.additionalConfigFromEnvs` | Additional configuration sources from environment variables | `[]` | | `gitea.podAnnotations` | Annotations for the Forgejo pod | `{}` |
| `gitea.podAnnotations` | Annotations for the Forgejo pod | `{}` | | `gitea.ssh.logLevel` | Configure OpenSSH's log level. Only available for root-based Forgejo image. | `INFO` |
| `gitea.ssh.logLevel` | Configure OpenSSH's log level. Only available for root-based Forgejo image. | `INFO` |
### `app.ini` overrides ### `app.ini` overrides
@ -1113,16 +1094,15 @@ blocks, while the keys themselves remain in all caps.
### ReadinessProbe ### ReadinessProbe
| Name | Description | Value | | Name | Description | Value |
| ------------------------------------------ | ------------------------------------------------- | -------------- | | ------------------------------------------ | ------------------------------------------------- | ------ |
| `gitea.readinessProbe.enabled` | Enable readiness probe | `true` | | `gitea.readinessProbe.enabled` | Enable readiness probe | `true` |
| `gitea.readinessProbe.httpGet.path` | Path to probe for readiness | `/api/healthz` | | `gitea.readinessProbe.tcpSocket.port` | Port to probe for readiness | `http` |
| `gitea.readinessProbe.httpGet.port` | Port to probe for readiness | `http` | | `gitea.readinessProbe.initialDelaySeconds` | Initial delay before readiness probe is initiated | `5` |
| `gitea.readinessProbe.initialDelaySeconds` | Initial delay before readiness probe is initiated | `5` | | `gitea.readinessProbe.timeoutSeconds` | Timeout for readiness probe | `1` |
| `gitea.readinessProbe.timeoutSeconds` | Timeout for readiness probe | `1` | | `gitea.readinessProbe.periodSeconds` | Period for readiness probe | `10` |
| `gitea.readinessProbe.periodSeconds` | Period for readiness probe | `10` | | `gitea.readinessProbe.successThreshold` | Success threshold for readiness probe | `1` |
| `gitea.readinessProbe.successThreshold` | Success threshold for readiness probe | `1` | | `gitea.readinessProbe.failureThreshold` | Failure threshold for readiness probe | `3` |
| `gitea.readinessProbe.failureThreshold` | Failure threshold for readiness probe | `3` |
### StartupProbe ### StartupProbe
@ -1139,7 +1119,7 @@ blocks, while the keys themselves remain in all caps.
### Redis&reg; Cluster ### Redis&reg; Cluster
Redis&reg; Cluster is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis-cluster) if enabled in the values. Redis&reg; Cluster is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis-cluster) if enabled in the values.
Full configuration options are available on their website. Complete Configuration can be taken from their website.
Redis cluster and [Redis](#redis) cannot be enabled at the same time. Redis cluster and [Redis](#redis) cannot be enabled at the same time.
| Name | Description | Value | | Name | Description | Value |
@ -1152,7 +1132,7 @@ Redis cluster and [Redis](#redis) cannot be enabled at the same time.
### Redis&reg; ### Redis&reg;
Redis&reg; is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis) if enabled in the values. Redis&reg; is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis) if enabled in the values.
Full configuration options are available on their website. Complete Configuration can be taken from their website.
Redis and [Redis cluster](#redis-cluster) cannot be enabled at the same time. Redis and [Redis cluster](#redis-cluster) cannot be enabled at the same time.
| Name | Description | Value | | Name | Description | Value |
@ -1165,7 +1145,7 @@ Redis and [Redis cluster](#redis-cluster) cannot be enabled at the same time.
### PostgreSQL HA ### PostgreSQL HA
PostgreSQL HA is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql-ha) if enabled in the values. PostgreSQL HA is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql-ha) if enabled in the values.
Full configuration options are available on their website. Complete Configuration can be taken from their website.
| Name | Description | Value | | Name | Description | Value |
| ------------------------------------------- | ---------------------------------------------------------------- | ----------- | | ------------------------------------------- | ---------------------------------------------------------------- | ----------- |
@ -1183,7 +1163,7 @@ Full configuration options are available on their website.
### PostgreSQL ### PostgreSQL
PostgreSQL is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) if enabled in the values. PostgreSQL is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) if enabled in the values.
Full configuration options are available on their website. Complete Configuration can be taken from their website.
| Name | Description | Value | | Name | Description | Value |
| ------------------------------------------------------- | ---------------------------------------------------------------- | ------- | | ------------------------------------------------------- | ---------------------------------------------------------------- | ------- |
@ -1198,11 +1178,11 @@ Full configuration options are available on their website.
| Name | Description | Value | | Name | Description | Value |
| ------------------ | ------------------------------------------------------------------ | --------- | | ------------------ | ------------------------------------------------------------------ | --------- |
| `checkDeprecation` | Whether to run this basic validation check. | `true` | | `checkDeprecation` | Set it to false to skip this basic validation check. | `true` |
| `test.enabled` | Whether to use test-connection Pod. | `true` | | `test.enabled` | Set it to false to disable test-connection Pod. | `true` |
| `test.image.name` | Image name for the wget container used in the test-connection Pod. | `busybox` | | `test.image.name` | Image name for the wget container used in the test-connection Pod. | `busybox` |
| `test.image.tag` | Image tag for the wget container used in the test-connection Pod. | `latest` | | `test.image.tag` | Image tag for the wget container used in the test-connection Pod. | `latest` |
| `extraDeploy` | Array of extra objects to deploy with the release. | `[]` | | `extraDeploy` | Array of extra objects to deploy with the release | `[]` |
## Contributing ## Contributing
@ -1218,38 +1198,16 @@ This section lists major and breaking changes of each Helm Chart version.
Please read them carefully to upgrade successfully, especially the change of the **default database backend**! Please read them carefully to upgrade successfully, especially the change of the **default database backend**!
If you miss this, blindly upgrading may delete your Postgres instance and you may lose your data! If you miss this, blindly upgrading may delete your Postgres instance and you may lose your data!
### To v11 ### To v8.0.0
PostgreSQL and PostgreSQL HA are now using PostgreSQL v17.
Please read PostgresSQL upgrade guide before upgrading.
You need Forgejo v10+ to use this Helm Chart version.
Forgejo v9 is now EOL.
ClusterIP is now emtpy instead of `None` for http and ssh service.
Unsupported api versions for `Ingress` and `PodDisruptionBudget` are removed.
`Ingress` and `Service` are now using named ports.
The ReadinessProbe is now using the `/api/healthz` endpoint.
### To v10
You need Forgejo v9+ to use this Helm Chart version.
Forgejo v8 is now EOL.
### To v9
Namespaces for all resources are now set to `common.names.namespace` by default.
### To v8
You need Forgejo v8+ to use this Helm Chart version. You need Forgejo v8+ to use this Helm Chart version.
Use the v7 Helm Chart for Forgejo v7. Use the v7 Helm Chart for Forgejo v7.
### To v7 ### To v7.0.0
The Forgejo docker image is pulled from `code.forgejo.org` instead of `codeberg.org`. The Forgejo docker image is pulled from `code.forgejo.org` instead of `codeberg.org`.
### To v6 ### To v6.0.0
You need Forgejo v7+ to use this Helm Chart version. You need Forgejo v7+ to use this Helm Chart version.
Use the v5 Helm Chart for Forgejo v1.21. Use the v5 Helm Chart for Forgejo v1.21.

View file

@ -1,20 +1 @@
# default values with some modifications # default values with some modifications
# Use mirror
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045
global:
security:
allowInsecureImages: true
redis-cluster:
image:
registry: public.ecr.aws
postgresql-ha:
postgresql:
image:
registry: public.ecr.aws
pgpool:
image:
registry: public.ecr.aws
test:
image:
name: code.forgejo.org/oci/busybox

View file

@ -1,11 +1,6 @@
# Test codeberg.org image # Test codeberg.org image
image: image:
registry: codeberg.org registry: codeberg.org
# Use mirror
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045
test:
image:
name: code.forgejo.org/oci/busybox
redis-cluster: redis-cluster:
enabled: false enabled: false

View file

@ -1,23 +1,9 @@
redis-cluster: redis-cluster:
enabled: false enabled: false
postgresql-ha:
enabled: false
postgresql: postgresql:
enabled: true enabled: true
# Use mirror postgresql-ha:
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045 enabled: false
image:
registry: public.ecr.aws
global:
security:
allowInsecureImages: true
# Use mirror
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045
test:
image:
name: code.forgejo.org/oci/busybox
persistence: persistence:
enabled: true enabled: true

View file

@ -1,29 +0,0 @@
image:
registry: codeberg.org
repository: forgejo-experimental/forgejo
tag: 12 # don't pin, manifests can be missing
# Use mirror
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045
test:
image:
name: code.forgejo.org/oci/busybox
redis-cluster:
enabled: false
postgresql-ha:
enabled: false
persistence:
enabled: false
gitea:
config:
database:
DB_TYPE: sqlite3
session:
PROVIDER: memory
cache:
ADAPTER: memory
queue:
TYPE: level

View file

@ -1,13 +1,7 @@
image: image:
registry: codeberg.org registry: codeberg.org
repository: forgejo-experimental/forgejo repository: forgejo-experimental/forgejo
tag: 10 # don't pin, manifests can be missing tag: 8.0-test # don't pin, manifests can be missing
# Use mirror
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045
test:
image:
name: code.forgejo.org/oci/busybox
redis-cluster: redis-cluster:
enabled: false enabled: false

View file

@ -1,13 +1,7 @@
image: image:
registry: codeberg.org registry: codeberg.org
repository: forgejo-experimental/forgejo repository: forgejo-experimental/forgejo
tag: 11 # don't pin, manifests can be missing tag: 9.0-test # don't pin, manifests can be missing
# Use mirror
# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045
test:
image:
name: code.forgejo.org/oci/busybox
redis-cluster: redis-cluster:
enabled: false enabled: false

View file

@ -14,18 +14,18 @@
"test": "helm unittest --strict -f 'unittests/**/*.yaml' ./" "test": "helm unittest --strict -f 'unittests/**/*.yaml' ./"
}, },
"devDependencies": { "devDependencies": {
"@bitnami/readme-generator-for-helm": "2.7.0", "@bitnami/readme-generator-for-helm": "2.6.1",
"clipanion": "3.2.1", "clipanion": "3.2.1",
"conventional-changelog-conventionalcommits": "8.0.0", "conventional-changelog-conventionalcommits": "8.0.0",
"conventional-changelog-core": "9.0.0", "conventional-changelog-core": "8.0.0",
"husky": "9.1.7", "husky": "9.1.6",
"lint-staged": "15.5.0", "lint-staged": "15.2.10",
"markdownlint-cli": "0.44.0", "markdownlint-cli": "0.41.0",
"prettier": "3.5.3" "prettier": "3.3.3"
}, },
"packageManager": "pnpm@10.7.0", "packageManager": "pnpm@9.10.0",
"engines": { "engines": {
"node": "^22.0.0", "node": "^20.9.0",
"pnpm": "^10.0.0" "pnpm": "^9.0.0"
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,6 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [ "extends": ["forgejo-contrib/forgejo-renovate//base.json"],
"forgejo-contrib/forgejo-renovate//base.json",
"forgejo-helm/forgejo-helm//.forgejo/renovate/k3s.json"
],
"assignees": ["viceice"], "assignees": ["viceice"],
"baseBranches": ["main", "/^maint\\/.+/"], "baseBranches": ["main", "/^maint\\/.+/"],
"packageRules": [ "packageRules": [
@ -74,6 +71,29 @@
"matchUpdateTypes": ["digest"], "matchUpdateTypes": ["digest"],
"automerge": true "automerge": true
}, },
{
"description": "Separate minor and patch updates for k3s",
"matchDatasources": ["github-releases"],
"matchPackageNames": ["k3s-io/k3s"],
"separateMultipleMinor": true,
"separateMinorPatch": true,
"branchTopic": "{{{depNameSanitized}}}{{#if isMinor}}-minor{{/if}}-{{{newMajor}}}{{#if isPatch}}.{{{newMinor}}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}",
"commitMessageSuffix": "{{#if isMinor}}(minor){{/if}}{{#if isPatch}}(patch){{/if}}"
},
{
"description": "No automerge for k3s major and minor updates",
"matchDatasources": ["github-releases"],
"matchPackageNames": ["k3s-io/k3s"],
"matchUpdateTypes": ["major", "minor"],
"automerge": false
},
{
"description": "Group k3s patch updates",
"matchDatasources": ["github-releases"],
"matchPackageNames": ["k3s-io/k3s"],
"matchUpdateTypes": ["patch"],
"groupName": "k3s"
},
{ {
"description": "Use test scope for forgejo ci tests", "description": "Use test scope for forgejo ci tests",
"matchFileNames": ["ci/*.yaml"], "matchFileNames": ["ci/*.yaml"],

View file

@ -2,7 +2,6 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: {{ include "gitea.fullname" . }}-inline-config name: {{ include "gitea.fullname" . }}-inline-config
namespace: {{ include "common.names.namespace" . | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
type: Opaque type: Opaque
@ -89,18 +88,15 @@ stringData:
env2ini::log " + '${setting}'" env2ini::log " + '${setting}'"
local masked_setting="${setting//./_0X2E_}" # '//' instructs to replace all matches
masked_setting="${masked_setting//-/_0X2D_}"
if [[ -z "${section}" ]]; then if [[ -z "${section}" ]]; then
export "FORGEJO____${masked_setting^^}=${value}" # '^^' makes the variable content uppercase export "FORGEJO____${setting^^}=${value}" # '^^' makes the variable content uppercase
return return
fi fi
local masked_section="${section//./_0X2E_}" # '//' instructs to replace all matches local masked_section="${section//./_0X2E_}" # '//' instructs to replace all matches
masked_section="${masked_section//-/_0X2D_}" masked_section="${masked_section//-/_0X2D_}"
export "FORGEJO__${masked_section^^}__${masked_setting^^}=${value}" # '^^' makes the variable content uppercase export "FORGEJO__${masked_section^^}__${setting^^}=${value}" # '^^' makes the variable content uppercase
} }
function env2ini::reload_preset_envs() { function env2ini::reload_preset_envs() {

View file

@ -2,7 +2,6 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "gitea.fullname" . }} name: {{ include "gitea.fullname" . }}
namespace: {{ include "common.names.namespace" . | quote }}
annotations: annotations:
{{- if .Values.deployment.annotations }} {{- if .Values.deployment.annotations }}
{{- toYaml .Values.deployment.annotations | nindent 4 }} {{- toYaml .Values.deployment.annotations | nindent 4 }}
@ -57,7 +56,7 @@ spec:
{{- end }} {{- end }}
{{- include "gitea.images.pullSecrets" . | nindent 6 }} {{- include "gitea.images.pullSecrets" . | nindent 6 }}
securityContext: securityContext:
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.podSecurityContext "context" $) | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
initContainers: initContainers:
- name: init-directories - name: init-directories
image: "{{ include "gitea.image" . }}" image: "{{ include "gitea.image" . }}"
@ -91,7 +90,7 @@ spec:
{{- end }} {{- end }}
{{- include "gitea.init-additional-mounts" . | nindent 12 }} {{- include "gitea.init-additional-mounts" . | nindent 12 }}
securityContext: securityContext:
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }} {{- toYaml .Values.containerSecurityContext | nindent 12 }}
resources: resources:
{{- toYaml .Values.initContainers.resources | nindent 12 }} {{- toYaml .Values.initContainers.resources | nindent 12 }}
- name: init-app-ini - name: init-app-ini
@ -131,7 +130,7 @@ spec:
{{- end }} {{- end }}
{{- include "gitea.init-additional-mounts" . | nindent 12 }} {{- include "gitea.init-additional-mounts" . | nindent 12 }}
securityContext: securityContext:
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }} {{- toYaml .Values.containerSecurityContext | nindent 12 }}
resources: resources:
{{- toYaml .Values.initContainers.resources | nindent 12 }} {{- toYaml .Values.initContainers.resources | nindent 12 }}
{{- if .Values.signing.enabled }} {{- if .Values.signing.enabled }}
@ -145,7 +144,7 @@ spec:
{{- if not (hasKey $csc "runAsUser") -}} {{- if not (hasKey $csc "runAsUser") -}}
{{- $_ := set $csc "runAsUser" 1000 -}} {{- $_ := set $csc "runAsUser" 1000 -}}
{{- end -}} {{- end -}}
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" $csc "context" $) | nindent 12 }} {{- toYaml $csc | nindent 12 }}
env: env:
- name: GNUPGHOME - name: GNUPGHOME
value: {{ .Values.signing.gpgHome }} value: {{ .Values.signing.gpgHome }}
@ -176,7 +175,7 @@ spec:
{{- if not (hasKey $csc "runAsUser") -}} {{- if not (hasKey $csc "runAsUser") -}}
{{- $_ := set $csc "runAsUser" 1000 -}} {{- $_ := set $csc "runAsUser" 1000 -}}
{{- end -}} {{- end -}}
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" $csc "context" $) | nindent 12 }} {{- toYaml $csc | nindent 12 }}
env: env:
- name: GITEA_APP_INI - name: GITEA_APP_INI
value: /data/gitea/conf/app.ini value: /data/gitea/conf/app.ini
@ -327,9 +326,9 @@ spec:
securityContext: securityContext:
{{- /* Honor the deprecated securityContext variable when defined */ -}} {{- /* Honor the deprecated securityContext variable when defined */ -}}
{{- if .Values.containerSecurityContext -}} {{- if .Values.containerSecurityContext -}}
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.containerSecurityContext "context" $) | nindent 12 }} {{ toYaml .Values.containerSecurityContext | nindent 12 -}}
{{- else -}} {{- else -}}
{{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.securityContext "context" $) | nindent 12 }} {{ toYaml .Values.securityContext | nindent 12 -}}
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- name: temp - name: temp
@ -353,7 +352,7 @@ spec:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
{{- with .Values.topologySpreadConstraints }} {{- with .Values.topologySpreadConstraints }}
topologySpreadConstraints: topologySpreadConstraints:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
{{- with .Values.tolerations }} {{- with .Values.tolerations }}
@ -403,4 +402,4 @@ spec:
{{- else if not .Values.persistence.enabled }} {{- else if not .Values.persistence.enabled }}
- name: data - name: data
emptyDir: {} emptyDir: {}
{{- end }} {{- end }}

View file

@ -7,7 +7,6 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: {{ include "gitea.gpg-key-secret-name" . }} name: {{ include "gitea.gpg-key-secret-name" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
type: Opaque type: Opaque

View file

@ -2,7 +2,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "gitea.fullname" . }}-http name: {{ include "gitea.fullname" . }}-http
namespace: {{ include "common.names.namespace" . | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
{{- if .Values.service.http.labels }} {{- if .Values.service.http.labels }}
@ -49,6 +48,6 @@ spec:
{{- if .Values.service.http.nodePort }} {{- if .Values.service.http.nodePort }}
nodePort: {{ .Values.service.http.nodePort }} nodePort: {{ .Values.service.http.nodePort }}
{{- end }} {{- end }}
targetPort: http targetPort: {{ .Values.gitea.config.server.HTTP_PORT }}
selector: selector:
{{- include "gitea.selectorLabels" . | nindent 4 }} {{- include "gitea.selectorLabels" . | nindent 4 }}

View file

@ -1,10 +1,18 @@
{{- if .Values.ingress.enabled -}} {{- if .Values.ingress.enabled -}}
{{- $fullName := include "gitea.fullname" . -}} {{- $fullName := include "gitea.fullname" . -}}
apiVersion: networking.k8s.io/v1 {{- $httpPort := .Values.service.http.port -}}
{{- $apiVersion := "extensions/v1beta1" -}}
{{- if .Values.ingress.apiVersion -}}
{{- $apiVersion = .Values.ingress.apiVersion -}}
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" -}}
{{- $apiVersion = "networking.k8s.io/v1" }}
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" -}}
{{- $apiVersion = "networking.k8s.io/v1beta1" }}
{{- end }}
apiVersion: {{ $apiVersion }}
kind: Ingress kind: Ingress
metadata: metadata:
name: {{ $fullName }} name: {{ $fullName }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
annotations: annotations:
@ -32,14 +40,19 @@ spec:
paths: paths:
{{- range .paths }} {{- range .paths }}
- path: {{ .path }} - path: {{ .path }}
{{- if .pathType }} {{- if and .pathType (eq $apiVersion "networking.k8s.io/v1") }}
pathType: {{ .pathType }} pathType: {{ .pathType }}
{{- end }} {{- end }}
backend: backend:
{{- if eq $apiVersion "networking.k8s.io/v1" }}
service: service:
name: {{ $fullName }}-http name: {{ $fullName }}-http
port: port:
name: http number: {{ $httpPort }}
{{- else }}
serviceName: {{ $fullName }}-http
servicePort: {{ $httpPort }}
{{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View file

@ -2,7 +2,6 @@ apiVersion: v1
kind: Secret kind: Secret
metadata: metadata:
name: {{ include "gitea.fullname" . }}-init name: {{ include "gitea.fullname" . }}-init
namespace: {{ include "common.names.namespace" . | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
type: Opaque type: Opaque

View file

@ -1,9 +1,12 @@
{{- if .Values.podDisruptionBudget -}} {{- if .Values.podDisruptionBudget -}}
{{- if .Capabilities.APIVersions.Has "policy/v1" }}
apiVersion: policy/v1 apiVersion: policy/v1
{{- else }}
apiVersion: policy/v1beta1
{{- end }}
kind: PodDisruptionBudget kind: PodDisruptionBudget
metadata: metadata:
name: {{ include "gitea.fullname" . }} name: {{ include "gitea.fullname" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
spec: spec:
@ -11,4 +14,4 @@ spec:
matchLabels: matchLabels:
{{- include "gitea.selectorLabels" . | nindent 6 }} {{- include "gitea.selectorLabels" . | nindent 6 }}
{{- toYaml .Values.podDisruptionBudget | nindent 2 }} {{- toYaml .Values.podDisruptionBudget | nindent 2 }}
{{- end -}} {{- end -}}

View file

@ -3,7 +3,7 @@ kind: PersistentVolumeClaim
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: {{ .Values.persistence.claimName }} name: {{ .Values.persistence.claimName }}
namespace: {{ include "common.names.namespace" . | quote }} namespace: {{ $.Release.Namespace }}
annotations: annotations:
{{ .Values.persistence.annotations | toYaml | indent 4}} {{ .Values.persistence.annotations | toYaml | indent 4}}
{{- if .Values.persistence.labels }} {{- if .Values.persistence.labels }}

View file

@ -1,43 +0,0 @@
{{- if .Values.route.enabled -}}
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: {{ include "gitea.fullname" . }}-http
namespace: {{ include "common.names.namespace" . | quote }}
labels:
{{- include "gitea.labels" . | nindent 4 }}
annotations:
{{- toYaml .Values.route.annotations | nindent 4 }}
spec:
{{- if .Values.route.host }}
host: {{ tpl .Values.route.host $ | quote }}
{{- end }}
{{- if .Values.route.wildcardPolicy }}
wildcardPolicy: {{ .Values.route.wildcardPolicy }}
{{- end }}
to:
kind: Service
name: {{ include "gitea.fullname" . }}-http
weight: 100
port:
targetPort: http
tls:
termination: edge
insecureEdgeTerminationPolicy: Redirect
{{- if .Values.route.tls.existingSecret }}
externalCertificate: {{ .Values.route.tls.existingSecret }}
{{- else if and .Values.route.tls.certificate
.Values.route.tls.privateKey
.Values.route.tls.caCertificate }}
certificate: |
{{ .Values.route.tls.certificate | indent 6 }}
key: |
{{ .Values.route.tls.privateKey | indent 6 }}
caCertificate: |
{{ .Values.route.tls.caCertificate | indent 6 }}
{{- else if or .Values.route.tls.certificate
.Values.route.tls.privateKey
.Values.route.tls.caCertificate }}
{{- fail "certificate, privateKey and caCertificate must be specified together" }}
{{- end }}
{{- end }}

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ include "gitea.serviceAccountName" . }} name: {{ include "gitea.serviceAccountName" . }}
namespace: {{ include "common.names.namespace" . | quote }} namespace: {{ .Release.Namespace | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.labels }} {{- with .Values.serviceAccount.labels }}

View file

@ -3,7 +3,6 @@ apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor kind: ServiceMonitor
metadata: metadata:
name: {{ include "gitea.fullname" . }} name: {{ include "gitea.fullname" . }}
namespace: {{ default (include "common.names.namespace" .) .Values.gitea.metrics.serviceMonitor.namespace | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
{{- if .Values.gitea.metrics.serviceMonitor.additionalLabels }} {{- if .Values.gitea.metrics.serviceMonitor.additionalLabels }}
@ -15,4 +14,4 @@ spec:
{{- include "gitea.selectorLabels" . | nindent 6 }} {{- include "gitea.selectorLabels" . | nindent 6 }}
endpoints: endpoints:
- port: http - port: http
{{- end -}} {{- end -}}

View file

@ -2,7 +2,6 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "gitea.fullname" . }}-ssh name: {{ include "gitea.fullname" . }}-ssh
namespace: {{ include "common.names.namespace" . | quote }}
labels: labels:
{{- include "gitea.labels" . | nindent 4 }} {{- include "gitea.labels" . | nindent 4 }}
{{- if .Values.service.ssh.labels }} {{- if .Values.service.ssh.labels }}
@ -47,7 +46,7 @@ spec:
- name: ssh - name: ssh
port: {{ .Values.service.ssh.port }} port: {{ .Values.service.ssh.port }}
{{- if .Values.gitea.config.server.SSH_LISTEN_PORT }} {{- if .Values.gitea.config.server.SSH_LISTEN_PORT }}
targetPort: ssh targetPort: {{ .Values.gitea.config.server.SSH_LISTEN_PORT }}
{{- end }} {{- end }}
protocol: TCP protocol: TCP
{{- if .Values.service.ssh.nodePort }} {{- if .Values.service.ssh.nodePort }}

View file

@ -6,7 +6,7 @@ metadata:
labels: labels:
{{ include "gitea.labels" . | nindent 4 }} {{ include "gitea.labels" . | nindent 4 }}
annotations: annotations:
"helm.sh/hook": test "helm.sh/hook": test-success
spec: spec:
containers: containers:
- name: wget - name: wget

View file

@ -1,12 +1,8 @@
import { getChangelog } from './changelog/util.js'; import { getChangelog } from './changelog/util.js';
import fs from 'node:fs';
const stream = getChangelog(!!process.argv[2]).setEncoding('utf8'); const file = process.argv[3]
? fs.createWriteStream(process.argv[3])
: process.stdout;
const changes = (await stream.toArray()).join(''); getChangelog().pipe(file);
if (!changes.length) {
console.error('No changelog found');
process.exit(1);
}
process.stdout.write(changes);

View file

@ -56,16 +56,17 @@ export const config = conventionalChangelogPreset({
/** /**
* *
* @param {string|undefined} version
* @param {boolean|undefined} onTag * @param {boolean|undefined} onTag
* @returns * @returns
*/ */
export function getChangelog(onTag = false) { export function getChangelog(version = undefined, onTag = false) {
return conventionalChangelogCore( return conventionalChangelogCore(
{ {
config, config,
releaseCount: onTag ? 2 : 1, releaseCount: onTag ? 2 : 1,
}, },
undefined, { version, linkCompare: false },
undefined, undefined,
undefined, undefined,
{ headerPartial: '' }, { headerPartial: '' },

View file

@ -68,7 +68,7 @@ class GiteaReleaseCommand extends Command {
return 1; return 1;
} }
const stream = getChangelog(true).setEncoding('utf8'); const stream = getChangelog(undefined, false).setEncoding('utf8');
const changes = (await stream.toArray()).join(''); const changes = (await stream.toArray()).join('');
this.context.stdout.write(`Creating release ${tag}.\n`); this.context.stdout.write(`Creating release ${tag}.\n`);

View file

@ -15,7 +15,7 @@ tests:
matchRegex: matchRegex:
path: spec.template.spec.containers[0].image path: spec.template.spec.containers[0].image
# IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST # IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST
pattern: ^docker.io/bitnami/postgresql-repmgr:17.+$ pattern: ^docker.io/bitnami/postgresql-repmgr:16.+$
- it: '[postgresql] ensures we detect major image version upgrades' - it: '[postgresql] ensures we detect major image version upgrades'
template: charts/postgresql/templates/primary/statefulset.yaml template: charts/postgresql/templates/primary/statefulset.yaml
set: set:
@ -28,7 +28,7 @@ tests:
matchRegex: matchRegex:
path: spec.template.spec.containers[0].image path: spec.template.spec.containers[0].image
# IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST # IN CASE OF AN INTENTIONAL MAJOR BUMP, ADJUST THIS TEST
pattern: ^docker.io/bitnami/postgresql:17.+$ pattern: ^docker.io/bitnami/postgresql:16.+$
- it: '[redis-cluster] ensures we detect major image version upgrades' - it: '[redis-cluster] ensures we detect major image version upgrades'
template: charts/redis-cluster/templates/redis-statefulset.yaml template: charts/redis-cluster/templates/redis-statefulset.yaml
set: set:

View file

@ -1,155 +0,0 @@
# $schema: https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: route template
release:
name: gitea-unittests
namespace: testing
templates:
- templates/gitea/route.yaml
tests:
- it: hostname using TPL
set:
global.giteaHostName: 'gitea.example.com'
route.enabled: true
route.host: '{{ .Values.global.giteaHostName }}'
asserts:
- isKind:
of: Route
- equal:
path: spec.host
value: 'gitea.example.com'
- notExists:
path: spec.wildcardPolicy
- it: wildcard policy
set:
global.giteaHostName: 'gitea.example.com'
route.enabled: true
route.wildcardPolicy: 'Subdomain'
asserts:
- isKind:
of: Route
- equal:
path: spec.wildcardPolicy
value: 'Subdomain'
- it: existing certificate
set:
route.enabled: true
route.tls.existingSecret: certificate-secret
route.tls.certificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
route.tls.privateKey: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
route.tls.caCertificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
asserts:
- isKind:
of: Route
- equal:
path: spec.tls.externalCertificate
value: certificate-secret
- notExists:
path: spec.tls.certificate
- notExists:
path: spec.tls.key
- notExists:
path: spec.tls.caCertificate
- it: valid certificate values
set:
route.enabled: true
route.tls.certificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
route.tls.privateKey: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
route.tls.caCertificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
asserts:
- isKind:
of: Route
- notExists:
path: spec.tls.externalCertificate
- equal:
path: spec.tls.certificate
value: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
- equal:
path: spec.tls.key
value: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
- equal:
path: spec.tls.caCertificate
value: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
- it: missing certificate values
set:
route.enabled: true
route.tls.privateKey: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
route.tls.caCertificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
asserts:
- failedTemplate:
errorMessage: certificate, privateKey and caCertificate must be specified together
- it: missing privateKey values
set:
route.enabled: true
route.tls.certificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
route.tls.caCertificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
asserts:
- failedTemplate:
errorMessage: certificate, privateKey and caCertificate must be specified together
- it: missing caCertificate values
set:
route.enabled: true
route.tls.certificate: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
route.tls.privateKey: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
asserts:
- failedTemplate:
errorMessage: certificate, privateKey and caCertificate must be specified together

View file

@ -1,25 +0,0 @@
# $schema: https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: deployment template (security context)
release:
name: gitea-unittests
namespace: testing
templates:
- templates/gitea/deployment.yaml
- templates/gitea/config.yaml
tests:
- it: FS group set to 1000
template: templates/gitea/deployment.yaml
set:
image.rootless: false
asserts:
- equal:
path: spec.template.spec.securityContext.fsGroup
value: 1000
- it: run configure-gitea with UID 1000
template: templates/gitea/deployment.yaml
set:
image.rootless: false
asserts:
- equal:
path: spec.template.spec.initContainers[?(@.name == 'configure-gitea')].securityContext.runAsUser
value: 1000

View file

@ -1,25 +0,0 @@
# $schema: https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: deployment template (security context)
release:
name: gitea-unittests
namespace: testing
templates:
- templates/gitea/deployment.yaml
- templates/gitea/config.yaml
tests:
- it: FS group not set
template: templates/gitea/deployment.yaml
set:
image.rootless: false
global.compatibility.openshift.adaptSecurityContext: force
asserts:
- notExists:
path: spec.template.spec.securityContext.fsGroup
- it: configure-gitea without runaAsUser
template: templates/gitea/deployment.yaml
set:
image.rootless: false
global.compatibility.openshift.adaptSecurityContext: force
asserts:
- notExists:
path: spec.template.spec.initContainers[?(@.name == 'configure-gitea')].securityContext.runAsUser

View file

@ -58,7 +58,7 @@ tests:
value: 22 value: 22
- equal: - equal:
path: spec.ports[0].targetPort path: spec.ports[0].targetPort
value: ssh value: 2222
- it: render service.ssh.loadBalancerClass if set and type is LoadBalancer - it: render service.ssh.loadBalancerClass if set and type is LoadBalancer
template: templates/gitea/ssh-svc.yaml template: templates/gitea/ssh-svc.yaml

View file

@ -20,10 +20,6 @@ global:
# hostnames: # hostnames:
# - example.com # - example.com
## @param namespaceOverride String to fully override common.names.namespace
##
namespaceOverride: ''
## @param replicaCount number of replicas for the deployment ## @param replicaCount number of replicas for the deployment
replicaCount: 1 replicaCount: 1
@ -101,7 +97,7 @@ podDisruptionBudget: {}
service: service:
## @param service.http.type Kubernetes service type for web traffic ## @param service.http.type Kubernetes service type for web traffic
## @param service.http.port Port number for web traffic ## @param service.http.port Port number for web traffic
## @param service.http.clusterIP ClusterIP setting for http autosetup for deployment ## @param service.http.clusterIP ClusterIP setting for http autosetup for deployment is None
## @param service.http.loadBalancerIP LoadBalancer IP setting ## @param service.http.loadBalancerIP LoadBalancer IP setting
## @param service.http.nodePort NodePort for http service ## @param service.http.nodePort NodePort for http service
## @param service.http.externalTrafficPolicy If `service.http.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation ## @param service.http.externalTrafficPolicy If `service.http.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation
@ -115,7 +111,7 @@ service:
http: http:
type: ClusterIP type: ClusterIP
port: 3000 port: 3000
clusterIP: clusterIP: None
loadBalancerIP: loadBalancerIP:
nodePort: nodePort:
externalTrafficPolicy: externalTrafficPolicy:
@ -128,7 +124,7 @@ service:
loadBalancerClass: loadBalancerClass:
## @param service.ssh.type Kubernetes service type for ssh traffic ## @param service.ssh.type Kubernetes service type for ssh traffic
## @param service.ssh.port Port number for ssh traffic ## @param service.ssh.port Port number for ssh traffic
## @param service.ssh.clusterIP ClusterIP setting for ssh autosetup for deployment ## @param service.ssh.clusterIP ClusterIP setting for ssh autosetup for deployment is None
## @param service.ssh.loadBalancerIP LoadBalancer IP setting ## @param service.ssh.loadBalancerIP LoadBalancer IP setting
## @param service.ssh.nodePort NodePort for ssh service ## @param service.ssh.nodePort NodePort for ssh service
## @param service.ssh.externalTrafficPolicy If `service.ssh.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation ## @param service.ssh.externalTrafficPolicy If `service.ssh.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation
@ -143,7 +139,7 @@ service:
ssh: ssh:
type: ClusterIP type: ClusterIP
port: 22 port: 22
clusterIP: clusterIP: None
loadBalancerIP: loadBalancerIP:
nodePort: nodePort:
externalTrafficPolicy: externalTrafficPolicy:
@ -164,6 +160,7 @@ service:
## @param ingress.hosts[0].paths[0].path Default Ingress path ## @param ingress.hosts[0].paths[0].path Default Ingress path
## @param ingress.hosts[0].paths[0].pathType Ingress path type ## @param ingress.hosts[0].paths[0].pathType Ingress path type
## @param ingress.tls Ingress tls settings ## @param ingress.tls Ingress tls settings
## @extra ingress.apiVersion Specify APIVersion of ingress object. Mostly would only be used for argocd.
ingress: ingress:
enabled: false enabled: false
# className: nginx # className: nginx
@ -181,48 +178,9 @@ ingress:
# - secretName: chart-example-tls # - secretName: chart-example-tls
# hosts: # hosts:
# - git.example.com # - git.example.com
# Mostly for argocd or any other CI that uses `helm template | kubectl apply` or similar
## @section Route # If helm doesn't correctly detect your ingress API version you can set it here.
## @param route.enabled Enable route # apiVersion: networking.k8s.io/v1
## @param route.annotations Route annotations
## @param route.host Host to use for the route (will be assigned automatically by OKD / OpenShift is not defined)
## @param route.wildcardPolicy Wildcard policy if any for the route, currently only 'Subdomain' or 'None' is allowed.
## @param route.tls.termination termination type (see [OKD documentation](https://docs.okd.io/latest/rest_api/network_apis/route-route-openshift-io-v1.html#spec-tls))
## @param route.tls.insecureEdgeTerminationPolicy the desired behavior for insecure connections to a route (e.g. with http)
## @param route.tls.existingSecret the name of a predefined secret of type kubernetes.io/tls with both key (tls.crt and tls.key) set accordingly (if defined attributes 'certificate', 'caCertificate' and 'privateKey' are ignored)
## @param route.tls.certificate PEM encoded single certificate
## @param route.tls.privateKey PEM encoded private key
## @param route.tls.caCertificate PEM encoded CA certificate or chain that issued the certificate
## @param route.tls.destinationCACertificate PEM encoded CA certificate used to verify the authenticity of final end point when 'termination' is set to 'passthrough' (ignored otherwise)
route:
enabled: false
annotations: {}
host:
wildcardPolicy:
tls:
termination: edge
insecureEdgeTerminationPolicy: Redirect
existingSecret:
certificate:
# certificate: |-
# -----BEGIN CERTIFICATE-----
# ...
# -----END CERTIFICATE-----
privateKey:
# privateKey: |-
# -----BEGIN PRIVATE KEY-----
# ...
# -----END PRIVATE KEY-----
caCertificate:
# caCertificate: |-
# -----BEGIN CERTIFICATE-----
# ...
# -----END CERTIFICATE-----
destinationCACertificate:
# destinationCACertificate: |-
# -----BEGIN CERTIFICATE-----
# ...
# -----END CERTIFICATE-----
## @section deployment ## @section deployment
# #
@ -369,7 +327,7 @@ initContainers:
# #
## @param signing.enabled Enable commit/action signing ## @param signing.enabled Enable commit/action signing
## @param signing.gpgHome GPG home directory ## @param signing.gpgHome GPG home directory
## @param signing.privateKey Inline private GPG key for signed internal Git activity ## @param signing.privateKey Inline private gpg key for signed internal Git activity
## @param signing.existingSecret Use an existing secret to store the value of `signing.privateKey` ## @param signing.existingSecret Use an existing secret to store the value of `signing.privateKey`
signing: signing:
enabled: false enabled: false
@ -399,12 +357,10 @@ gitea:
## @param gitea.metrics.enabled Enable Forgejo metrics ## @param gitea.metrics.enabled Enable Forgejo metrics
## @param gitea.metrics.serviceMonitor.enabled Enable Forgejo metrics service monitor ## @param gitea.metrics.serviceMonitor.enabled Enable Forgejo metrics service monitor
## @param gitea.metrics.serviceMonitor.namespace Namespace in which Prometheus is running
metrics: metrics:
enabled: false enabled: false
serviceMonitor: serviceMonitor:
enabled: false enabled: false
namespace: ''
# additionalLabels: # additionalLabels:
# prometheus-release: prom1 # prometheus-release: prom1
@ -460,10 +416,12 @@ gitea:
## @section `app.ini` overrides ## @section `app.ini` overrides
## @descriptionStart ## @descriptionStart
##
## Every value described in the [Cheat ## Every value described in the [Cheat
## Sheet](https://forgejo.org/docs/latest/admin/config-cheat-sheet/) can be ## Sheet](https://forgejo.org/docs/latest/admin/config-cheat-sheet/) can be
## set as a Helm value. Configuration sections map to (lowercased) YAML ## set as a Helm value. Configuration sections map to (lowercased) YAML
## blocks, while the keys themselves remain in all caps. ## blocks, while the keys themselves remain in all caps.
##
## @descriptionEnd ## @descriptionEnd
config: config:
# values in the DEFAULT section # values in the DEFAULT section
@ -633,8 +591,7 @@ gitea:
## @section ReadinessProbe ## @section ReadinessProbe
# #
## @param gitea.readinessProbe.enabled Enable readiness probe ## @param gitea.readinessProbe.enabled Enable readiness probe
## @param gitea.readinessProbe.httpGet.path Path to probe for readiness ## @param gitea.readinessProbe.tcpSocket.port Port to probe for readiness
## @param gitea.readinessProbe.httpGet.port Port to probe for readiness
## @param gitea.readinessProbe.initialDelaySeconds Initial delay before readiness probe is initiated ## @param gitea.readinessProbe.initialDelaySeconds Initial delay before readiness probe is initiated
## @param gitea.readinessProbe.timeoutSeconds Timeout for readiness probe ## @param gitea.readinessProbe.timeoutSeconds Timeout for readiness probe
## @param gitea.readinessProbe.periodSeconds Period for readiness probe ## @param gitea.readinessProbe.periodSeconds Period for readiness probe
@ -643,8 +600,7 @@ gitea:
# Modify the readiness probe for your needs or completely disable it by commenting out. # Modify the readiness probe for your needs or completely disable it by commenting out.
readinessProbe: readinessProbe:
enabled: true enabled: true
httpGet: tcpSocket:
path: /api/healthz
port: http port: http
initialDelaySeconds: 5 initialDelaySeconds: 5
timeoutSeconds: 1 timeoutSeconds: 1
@ -675,7 +631,7 @@ gitea:
## @section Redis&reg; Cluster ## @section Redis&reg; Cluster
## @descriptionStart ## @descriptionStart
## Redis&reg; Cluster is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis-cluster) if enabled in the values. ## Redis&reg; Cluster is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis-cluster) if enabled in the values.
## Full configuration options are available on their website. ## Complete Configuration can be taken from their website.
## Redis cluster and [Redis](#redis) cannot be enabled at the same time. ## Redis cluster and [Redis](#redis) cannot be enabled at the same time.
## @descriptionEnd ## @descriptionEnd
# #
@ -693,7 +649,7 @@ redis-cluster:
## @section Redis&reg; ## @section Redis&reg;
## @descriptionStart ## @descriptionStart
## Redis&reg; is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis) if enabled in the values. ## Redis&reg; is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/redis) if enabled in the values.
## Full configuration options are available on their website. ## Complete Configuration can be taken from their website.
## Redis and [Redis cluster](#redis-cluster) cannot be enabled at the same time. ## Redis and [Redis cluster](#redis-cluster) cannot be enabled at the same time.
## @descriptionEnd ## @descriptionEnd
# #
@ -713,7 +669,7 @@ redis:
## @section PostgreSQL HA ## @section PostgreSQL HA
## @descriptionStart ## @descriptionStart
## PostgreSQL HA is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql-ha) if enabled in the values. ## PostgreSQL HA is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql-ha) if enabled in the values.
## Full configuration options are available on their website. ## Complete Configuration can be taken from their website.
## @descriptionEnd ## @descriptionEnd
# #
## @param postgresql-ha.enabled Enable PostgreSQL HA chart ## @param postgresql-ha.enabled Enable PostgreSQL HA chart
@ -749,7 +705,7 @@ postgresql-ha:
## @section PostgreSQL ## @section PostgreSQL
## @descriptionStart ## @descriptionStart
## PostgreSQL is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) if enabled in the values. ## PostgreSQL is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) if enabled in the values.
## Full configuration options are available on their website. ## Complete Configuration can be taken from their website.
## @descriptionEnd ## @descriptionEnd
# #
## @param postgresql.enabled Enable PostgreSQL ## @param postgresql.enabled Enable PostgreSQL
@ -776,8 +732,8 @@ postgresql:
# By default, removed or moved settings that still remain in a user defined values.yaml will cause Helm to fail running the install/update. # By default, removed or moved settings that still remain in a user defined values.yaml will cause Helm to fail running the install/update.
# Set it to false to skip this basic validation check. # Set it to false to skip this basic validation check.
## @section Advanced ## @section Advanced
## @param checkDeprecation Whether to run this basic validation check. ## @param checkDeprecation Set it to false to skip this basic validation check.
## @param test.enabled Whether to use test-connection Pod. ## @param test.enabled Set it to false to disable test-connection Pod.
## @param test.image.name Image name for the wget container used in the test-connection Pod. ## @param test.image.name Image name for the wget container used in the test-connection Pod.
## @param test.image.tag Image tag for the wget container used in the test-connection Pod. ## @param test.image.tag Image tag for the wget container used in the test-connection Pod.
checkDeprecation: true checkDeprecation: true
@ -787,6 +743,6 @@ test:
name: busybox name: busybox
tag: latest tag: latest
## @param extraDeploy Array of extra objects to deploy with the release. ## @param extraDeploy Array of extra objects to deploy with the release
## ##
extraDeploy: [] extraDeploy: []