diff --git a/.markdownlint.yaml b/.markdownlint.yaml
index 305545f..7b0c356 100644
--- a/.markdownlint.yaml
+++ b/.markdownlint.yaml
@@ -47,7 +47,7 @@ MD013:
# Number of characters
line_length: 200
# Number of characters for headings
- heading_line_length: 80
+ heading_line_length: 100
# Number of characters for code blocks
code_block_line_length: 80
# Include code blocks
@@ -106,7 +106,7 @@ MD030:
# MD033/no-inline-html - Inline HTML
MD033:
# Allowed elements
- allowed_elements: []
+ allowed_elements: [details, summary]
# MD035/hr-style - Horizontal rule style
MD035:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 255d0ee..ea00fdc 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -18,12 +18,12 @@ When using Visual Studio Code as IDE, following plugins might be useful:
## Documentation Requirements
-The `README.md` must include all configuration options. The parameters section
-is generated by extracting the parameter annotations from the `values.yaml` file,
-by using [this tool](https://github.com/bitnami-labs/readme-generator-for-helm).
+The `README.md` must include all configuration options.
+The parameters section is generated by extracting the parameter annotations from the `values.yaml` file, by using [this tool](https://github.com/bitnami-labs/readme-generator-for-helm).
-If changes were made on configuration options, run `make readme` to update the
-README file.
+If changes were made on configuration options, run `make readme` to update the README file.
+
+The ToC is created via the VSCode [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one) extension which can/must also be used used to update it.
## Pull Request Requirements
@@ -41,16 +41,15 @@ For local development and testing of pull requests, the following workflow can
be used:
1. Install `minikube` and `helm`.
-2. Start a `minikube` cluster via `minikube start`.
-3. From the `gitea/helm-chart` directory execute the following command. This
- will install the dependencies listed in `Chart.yml` and deploy the current
- state of the helm chart found locally. If you want to test a branch, make
- sure to switch to the respective branch first.
- `helm install --dependency-update gitea . -f values.yaml`.
-4. Gitea is now deployed in `minikube`. To access it, it's port needs to be
- forwarded first from `minikube` to localhost first via `kubectl --namespace
- default port-forward svc/gitea-http 3000:3000`. Now Gitea is accessible at
- [http://localhost:3000](http://localhost:3000).
+1. Start a `minikube` cluster via `minikube start`.
+1. From the `gitea/helm-chart` directory execute the following command.
+ This will install the dependencies listed in `Chart.yml` and deploy the current state of the helm chart found locally.
+ If you want to test a branch, make sure to switch to the respective branch first.
+ `helm install --dependency-update gitea . -f values.yaml`.
+1. Gitea is now deployed in `minikube`.
+ To access it, it's port needs to be forwarded first from `minikube` to localhost first via `kubectl --namespace
+default port-forward svc/gitea-http 3000:3000`.
+ Now Gitea is accessible at [http://localhost:3000](http://localhost:3000).
### Unit tests
diff --git a/README.md b/README.md
index d4259c9..766f04f 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,46 @@
-# Gitea Helm Chart
+# Gitea Helm Chart
+
+- [Introduction](#introduction)
+- [Update and versioning policy](#update-and-versioning-policy)
+- [Dependencies](#dependencies)
+- [Installing](#installing)
+- [Prerequisites](#prerequisites)
+- [Configuration](#configuration)
+ - [Default Configuration](#default-configuration)
+ - [Additional _app.ini_ settings](#additional-appini-settings)
+ - [External Database](#external-database)
+ - [Ports and external url](#ports-and-external-url)
+ - [ClusterIP](#clusterip)
+ - [SSH and Ingress](#ssh-and-ingress)
+ - [SSH on crio based kubernetes cluster](#ssh-on-crio-based-kubernetes-cluster)
+ - [Cache](#cache)
+ - [Persistence](#persistence)
+ - [Admin User](#admin-user)
+ - [LDAP Settings](#ldap-settings)
+ - [OAuth2 Settings](#oauth2-settings)
+- [Configure commit signing](#configure-commit-signing)
+- [Metrics and profiling](#metrics-and-profiling)
+- [Pod annotations](#pod-annotations)
+- [Parameters](#parameters)
+ - [Global](#global)
+ - [Image](#image)
+ - [Security](#security)
+ - [Service](#service)
+ - [Ingress](#ingress)
+ - [StatefulSet](#statefulset)
+ - [ServiceAccount](#serviceaccount)
+ - [Persistence](#persistence-1)
+ - [Init](#init)
+ - [Signing](#signing)
+ - [Gitea](#gitea)
+ - [LivenessProbe](#livenessprobe)
+ - [ReadinessProbe](#readinessprobe)
+ - [StartupProbe](#startupprobe)
+ - [Memcached](#memcached)
+ - [PostgreSQL](#postgresql)
+ - [Advanced](#advanced)
+- [Contributing](#contributing)
+- [Upgrading](#upgrading)
[Gitea](https://gitea.io/en-us/) is a community managed lightweight code hosting solution written in Go.
It is published under the MIT license.
@@ -51,9 +93,7 @@ When upgrading, please refer to the [Upgrading](#upgrading) section at the botto
- Helm 3.0+
- PV provisioner for persistent data support
-## Examples
-
-### Gitea Configuration
+## Configuration
Gitea offers lots of configuration options.
This is fully described in the [Gitea Cheat Sheet](https://docs.gitea.io/en-us/config-cheat-sheet/).
@@ -538,7 +578,7 @@ signing:
To use the gpg key, Gitea needs to be configured accordingly.
A detailed description can be found in the [official Gitea documentation](https://docs.gitea.io/en-us/signing/#general-configuration).
-### Metrics and profiling
+## Metrics and profiling
A Prometheus `/metrics` endpoint on the `HTTP_PORT` and `pprof` profiling endpoints on port 6060 can be enabled under `gitea`.
Beware that the metrics endpoint is exposed via the ingress, manage access using ingress annotations for example.
@@ -557,7 +597,7 @@ gitea:
ENABLE_PPROF: true
```
-### Pod Annotations
+## Pod annotations
Annotations can be added to the Gitea pod.
@@ -794,14 +834,16 @@ See [CONTRIBUTORS GUIDE](CONTRIBUTING.md) for details.
This section lists major and breaking changes of each Helm Chart version.
Please read them carefully to upgrade successfully.
-### To 8.0.0
+
-#### Removal of MariaDB and MySQL DB chart dependencies
+To 8.0.0
+
+### Removal of MariaDB and MySQL DB chart dependencies
In this version support for DB chart dependencies of MySQL and MariaDB have been removed to simplify the maintenance of the helm chart.
External MySQL and MariaDB databases are still supported and will be in the future.
-#### Postgres Update from v11 to v15
+### Postgres Update from v11 to v15
This Chart version updates the Postgres chart dependency and subsequently Postgres from v11 to v15.
Please read the [Postgres Release Notes](https://www.postgresql.org/docs/release/) for version-specific changes.
@@ -813,16 +855,24 @@ Please adjust your `values.yaml` accordingly.
See [this comment](https://gitea.com/gitea/helm-chart/issues/452#issuecomment-740885) for an extensive walkthrough.
We again highly encourage users to use an external (managed) database for production instances.
-### To 7.0.0
+
-#### Private GPG key configuration for Gitea signing actions
+
+
+To 7.0.0
+
+### Private GPG key configuration for Gitea signing actions
Having `signing.enabled=true` now requires to use either `signing.privateKey` or `signing.existingSecret` so that the Chart can automatically prepare the GPG key for Gitea internal signing actions.
See [Configure commit signing](#configure-commit-signing) for details.
-### To 6.0.0
+
-#### Different volume mounts for init-containers and runtime container
+
+
+To 6.0.0
+
+### Different volume mounts for init-containers and runtime container
**The `extraVolumeMounts` is deprecated** in favor of `extraInitVolumeMounts` and `extraContainerVolumeMounts`.
You can now have different mounts for the initialization phase and Gitea runtime.
@@ -831,7 +881,7 @@ If you want to switch to the new settings and want to mount specific volumes int
**Combining values from the deprecated setting with values from the new settings is not possible.**
-#### New `enabled` flag for `startupProbe`
+### New `enabled` flag for `startupProbe`
Prior to this version the `startupProbe` was just a commented sample within the `values.yaml`.
With the migration to an auto-generated [Parameters](#parameters) section, a new parameter `gitea.startupProbe.enabled` has been introduced set to
@@ -840,11 +890,15 @@ With the migration to an auto-generated [Parameters](#parameters) section, a new
If you are using the `startupProbe` you need to add that new parameter and set it to `true`.
Otherwise, your defined probe won't be considered after the upgrade.
-### To 5.0.0
+
+
+
+
+To 5.0.0
> 💥 The Helm Chart now requires Gitea versions of at least 1.11.0.
-#### Enable Dependencies
+### Enable Dependencies
The values to enable the dependencies, such as PostgreSQL, Memcached, MySQL and MariaDB have been moved from `gitea.database.builtIn.` to the dependency values.
@@ -864,12 +918,12 @@ mariadb:
enabled: false
```
-#### App.ini generation
+### App.ini generation
The app.ini generation has changed and now utilizes the environment-to-ini script provided by newer Gitea versions.
This change ensures, that the app.ini is now persistent.
-##### Secret Key generation
+### Secret Key generation
Gitea secret keys (SECRET_KEY, INTERNAL_TOKEN, JWT_SECRET) are now generated automatically in certain situations:
@@ -882,7 +936,7 @@ Gitea secret keys (SECRET_KEY, INTERNAL_TOKEN, JWT_SECRET) are now generated aut
> However, this it is not advisable to do so for existing installations.
> Certain settings like _LDAP_ would not be readable anymore.
-#### Probes
+### Probes
`gitea.customLivenessProbe`, `gitea.customReadinessProbe` and `gitea.customStartupProbe` have been removed.
@@ -899,16 +953,20 @@ gitea:
podAnnotations: {}
```
-#### Multiple OAuth and LDAP authentication sources
+### Multiple OAuth and LDAP authentication sources
With `5.0.0` of this Chart it is now possible to configure Gitea with multiple OAuth and LDAP sources.
As a result, you need to update an existing OAuth/LDAP configuration in your customized `values.yaml` by replacing the object with settings to a list
of settings objects.
See [OAuth2 Settings](#oauth2-settings) and [LDAP Settings](#ldap-settings) section for details.
-### To 4.0.0
+
-#### Ingress changes
+
+
+To 4.0.0
+
+### Ingress changes
To provide a more flexible Ingress configuration we now support not only host settings but also provide configuration for the path and pathType.
So this change changes the hosts from a simple string list, to a list containing a more complex object for more configuration.
@@ -940,12 +998,12 @@ paths:
pathType: Prefix
```
-#### Dropped kebab-case support
+### Dropped kebab-case support
In 3.x.x it was possible to provide an ldap configuration via kebab-case, this support has now been dropped and only camel case is supported.
See [LDAP section](#ldap-settings) for more information.
-#### Dependency update
+### Dependency update
The chart comes with multiple databases and Memcached as dependency, the latest release updated the dependencies.
@@ -955,7 +1013,7 @@ The chart comes with multiple databases and Memcached as dependency, the latest
If you're using the builtin databases you will most likely redeploy the chart in order to update the database correctly.
-#### Execution of initPreScript
+### Execution of initPreScript
Generally spoken, this might not be a breaking change, but it is worth to be mentioned.
@@ -965,11 +1023,11 @@ This also includes the execution of _initPreScript_.
If you have such script, please be aware of this.
Dynamically prepare the Gitea setup during execution by e.g. adding environment variables to the execution context won't work anymore.
-### Misc
-
-#### Gitea Version 1.14.X repository ROOT
+### Gitea Version 1.14.X repository ROOT
Previously the ROOT folder for the Gitea repositories was located at `/data/git/gitea-repositories`.
In version `1.14` has the path been changed to `/data/gitea-repositories`.
This chart will set the `gitea.config.repository.ROOT` value default to `/data/git/gitea-repositories`.
+
+