You've already forked helm-gitea
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
0f4e1e488a | |||
fb5c615f61 | |||
ae9a71ea11 | |||
5cb0802b7b | |||
fdac9e9048 | |||
1be9fae08b | |||
4869aed6ad | |||
9a6cb4d357 | |||
452aeadddf | |||
c46bf7c60f | |||
18100cca11 | |||
b6d275c4f5 |
@ -28,7 +28,7 @@ steps:
|
|||||||
image: alpine:3.17
|
image: alpine:3.17
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing make helm git bash
|
- apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing make helm git bash
|
||||||
- helm plugin install https://github.com/heyhabito/helm-unittest
|
- helm plugin install https://github.com/helm-unittest/helm-unittest
|
||||||
- helm dependency update
|
- helm dependency update
|
||||||
- make unittests
|
- make unittests
|
||||||
|
|
||||||
|
12
.editorconfig
Normal file
12
.editorconfig
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# EditorConfig is awesome: https://EditorConfig.org
|
||||||
|
|
||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
insert_final_newline = false
|
@ -131,8 +131,6 @@ MD044:
|
|||||||
names:
|
names:
|
||||||
- Gitea
|
- Gitea
|
||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
- MariaDB
|
|
||||||
- MySQL
|
|
||||||
- Memcached
|
- Memcached
|
||||||
- Prometheus
|
- Prometheus
|
||||||
- Git
|
- Git
|
||||||
|
@ -14,6 +14,7 @@ When using Visual Studio Code as IDE, following plugins might be useful:
|
|||||||
- [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)
|
- [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)
|
||||||
- [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint)
|
- [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint)
|
||||||
- [Helm Intellisense](https://marketplace.visualstudio.com/items?itemName=Tim-Koehler.helm-intellisense)
|
- [Helm Intellisense](https://marketplace.visualstudio.com/items?itemName=Tim-Koehler.helm-intellisense)
|
||||||
|
- [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
|
||||||
|
|
||||||
## Documentation Requirements
|
## Documentation Requirements
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ be used:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# install the unittest plugin
|
# install the unittest plugin
|
||||||
$ helm plugin install https://github.com/heyhabito/helm-unittest
|
$ helm plugin install https://github.com/helm-unittest/helm-unittest
|
||||||
|
|
||||||
# run the unittests
|
# run the unittests
|
||||||
make unittests
|
make unittests
|
||||||
|
18
Chart.lock
18
Chart.lock
@ -1,15 +1,9 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: memcached
|
- name: memcached
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 5.9.0
|
version: 6.3.7
|
||||||
- name: mysql
|
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
|
||||||
version: 6.14.10
|
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 10.3.17
|
version: 12.2.6
|
||||||
- name: mariadb
|
digest: sha256:c2026881f71eca24c72e9da3e798a1ad2a5af8e86a39a5341015584eaacf8b64
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
generated: "2023-03-27T19:20:21.125036+02:00"
|
||||||
version: 9.3.6
|
|
||||||
digest: sha256:08f967276fa0c083e9756a974a9791a487a71be0a226dc14351b3e5a2641e8fd
|
|
||||||
generated: "2022-06-11T12:18:36.672047+02:00"
|
|
||||||
|
20
Chart.yaml
20
Chart.yaml
@ -3,7 +3,7 @@ name: gitea
|
|||||||
description: Gitea Helm chart for Kubernetes
|
description: Gitea Helm chart for Kubernetes
|
||||||
type: application
|
type: application
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
appVersion: 1.18.5
|
appVersion: 1.19.0
|
||||||
icon: https://docs.gitea.io/images/gitea.png
|
icon: https://docs.gitea.io/images/gitea.png
|
||||||
|
|
||||||
keywords:
|
keywords:
|
||||||
@ -31,19 +31,13 @@ maintainers:
|
|||||||
|
|
||||||
# Bitnami charts are served from GitHub CDN - See https://github.com/bitnami/charts/issues/10539 for details
|
# Bitnami charts are served from GitHub CDN - See https://github.com/bitnami/charts/issues/10539 for details
|
||||||
dependencies:
|
dependencies:
|
||||||
|
# OCI registry: https://blog.bitnami.com/2023/01/bitnami-helm-charts-available-as-oci.html (2023-01)
|
||||||
|
# Chart release date: 2023-02
|
||||||
- name: memcached
|
- name: memcached
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 5.9.0
|
version: 6.3.7
|
||||||
condition: memcached.enabled
|
condition: memcached.enabled
|
||||||
- name: mysql
|
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
|
||||||
version: 6.14.10
|
|
||||||
condition: mysql.enabled
|
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 10.3.17
|
version: 12.2.6
|
||||||
condition: postgresql.enabled
|
condition: postgresql.enabled
|
||||||
- name: mariadb
|
|
||||||
repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami
|
|
||||||
version: 9.3.6
|
|
||||||
condition: mariadb.enabled
|
|
||||||
|
2
Makefile
2
Makefile
@ -9,4 +9,4 @@ readme: prepare-environment
|
|||||||
|
|
||||||
.PHONY: unittests
|
.PHONY: unittests
|
||||||
unittests:
|
unittests:
|
||||||
helm unittest --helm3 --strict -f 'unittests/**/*.yaml' ./
|
helm unittest --strict -f 'unittests/**/*.yaml' ./
|
||||||
|
186
README.md
186
README.md
@ -11,6 +11,22 @@ different approach in providing a database and cache with dependencies.
|
|||||||
Additionally, this chart provides LDAP and admin user configuration with values,
|
Additionally, this chart provides LDAP and admin user configuration with values,
|
||||||
as well as being deployed as a statefulset to retain stored repositories.
|
as well as being deployed as a statefulset to retain stored repositories.
|
||||||
|
|
||||||
|
## Update and versioning policy
|
||||||
|
|
||||||
|
The Gitea helm chart versioning does not follow Gitea's versioning.
|
||||||
|
The latest chart version can be looked up in [https://dl.gitea.com/charts](https://dl.gitea.com/charts) or in the [repository releases](https://gitea.com/gitea/helm-chart/releases).
|
||||||
|
|
||||||
|
The chart aims to follow Gitea's releases closely.
|
||||||
|
There might be times when the chart is behind the latest Gitea release.
|
||||||
|
This might be caused by different reasons, most often due to time constraints of the maintainers (remember, all work here is done voluntarily in the spare time of people).
|
||||||
|
If you're eager to use the latest Gitea version earlier than this chart catches up, then change the tag in `values.yaml` to the latest Gitea version.
|
||||||
|
Note that besides the exact Gitea version one can also use the `:1` tag to automatically follow the latest Gitea version.
|
||||||
|
This should be combined with `image.pullPolicy: "Always"`.
|
||||||
|
Important: Using the `:1` will also automatically jump to new minor release (e.g. from 1.13 to 1.14) which may eventually cause incompatibilities if major/breaking changes happened between these versions.
|
||||||
|
This is due to Gitea not strictly following [semantic versioning](https://semver.org/#summary) as breaking changes do not increase the major version.
|
||||||
|
I.e., "minor" version bumps are considered "major".
|
||||||
|
Yet most often no issues will be encountered and the chart maintainers aim to communicate early/upfront if this would be the case.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
Gitea can be run with an external database and cache. This chart provides those
|
Gitea can be run with an external database and cache. This chart provides those
|
||||||
@ -21,8 +37,6 @@ Dependencies:
|
|||||||
|
|
||||||
- PostgreSQL ([configuration](#postgresql))
|
- PostgreSQL ([configuration](#postgresql))
|
||||||
- Memcached ([configuration](#memcached))
|
- Memcached ([configuration](#memcached))
|
||||||
- MySQL ([configuration](#mysql))
|
|
||||||
- MariaDB ([configuration](#mariadb))
|
|
||||||
|
|
||||||
## Installing
|
## Installing
|
||||||
|
|
||||||
@ -125,7 +139,7 @@ ENABLED = false
|
|||||||
### Additional _app.ini_ settings
|
### Additional _app.ini_ settings
|
||||||
|
|
||||||
> **The [generic](https://docs.gitea.io/en-us/config-cheat-sheet/#overall-default)
|
> **The [generic](https://docs.gitea.io/en-us/config-cheat-sheet/#overall-default)
|
||||||
section cannot be defined that way.**
|
> section cannot be defined that way.**
|
||||||
|
|
||||||
Some settings inside _app.ini_ (like passwords or whole authentication configurations)
|
Some settings inside _app.ini_ (like passwords or whole authentication configurations)
|
||||||
must be considered sensitive and therefore should not be passed via plain text
|
must be considered sensitive and therefore should not be passed via plain text
|
||||||
@ -219,14 +233,17 @@ Priority (highest to lowest) for defining app.ini variables:
|
|||||||
|
|
||||||
### External Database
|
### External Database
|
||||||
|
|
||||||
An external Database can be used instead of builtIn PostgreSQL or MySQL.
|
Any external Database listed in [https://docs.gitea.io/en-us/database-prep/](https://docs.gitea.io/en-us/database-prep/) can be used instead of the built-in PostgreSQL.
|
||||||
|
In fact, it is **highly recommended** to use an external database to ensure a stable Gitea installation longterm.
|
||||||
|
|
||||||
|
If an external database is used, no matter which type, make sure to set `postgresql.enabled` to `false` to disable the use of the built-in PostgreSQL.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
gitea:
|
gitea:
|
||||||
config:
|
config:
|
||||||
database:
|
database:
|
||||||
DB_TYPE: mysql
|
DB_TYPE: mysql
|
||||||
HOST: 127.0.0.1:3306
|
HOST: <mysql HOST>
|
||||||
NAME: gitea
|
NAME: gitea
|
||||||
USER: root
|
USER: root
|
||||||
PASSWD: gitea
|
PASSWD: gitea
|
||||||
@ -347,31 +364,21 @@ by default.
|
|||||||
If you want to manage your own PVC you can simply pass the PVC name to the chart.
|
If you want to manage your own PVC you can simply pass the PVC name to the chart.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
existingClaim: MyAwesomeGiteaClaim
|
existingClaim: MyAwesomeGiteaClaim
|
||||||
```
|
```
|
||||||
|
|
||||||
In case that peristence has been disabled it will simply use an empty dir volume.
|
In case that persistence has been disabled it will simply use an empty dir volume.
|
||||||
|
|
||||||
PostgreSQL handles the persistence in the exact same way.
|
PostgreSQL handles the persistence in the exact same way.
|
||||||
You can interact with the postgres settings as displayed in the following example:
|
You can interact with the postgres settings as displayed in the following example:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
postgresql:
|
postgresql:
|
||||||
persistence:
|
persistence:
|
||||||
enabled: true
|
enabled: true
|
||||||
existingClaim: MyAwesomeGiteaPostgresClaim
|
existingClaim: MyAwesomeGiteaPostgresClaim
|
||||||
```
|
|
||||||
|
|
||||||
MySQL also handles persistence the same, even though it is not deployed as a statefulset.
|
|
||||||
You can interact with the postgres settings as displayed in the following example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
mysql:
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: MyAwesomeGiteaMysqlClaim
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Admin User
|
### Admin User
|
||||||
@ -382,11 +389,11 @@ 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.
|
done in the ui. You cannot use `admin` as username.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
gitea:
|
gitea:
|
||||||
admin:
|
admin:
|
||||||
username: "MyAwesomeGiteaAdmin"
|
username: "MyAwesomeGiteaAdmin"
|
||||||
password: "AReallyAwesomeGiteaPassword"
|
password: "AReallyAwesomeGiteaPassword"
|
||||||
email: "gi@tea.com"
|
email: "gi@tea.com"
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also use an existing Secret to configure the admin user:
|
You can also use an existing Secret to configure the admin user:
|
||||||
@ -404,8 +411,8 @@ stringData:
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
gitea:
|
gitea:
|
||||||
admin:
|
admin:
|
||||||
existingSecret: gitea-admin-secret
|
existingSecret: gitea-admin-secret
|
||||||
```
|
```
|
||||||
|
|
||||||
### LDAP Settings
|
### LDAP Settings
|
||||||
@ -416,20 +423,20 @@ All LDAP values from <https://docs.gitea.io/en-us/command-line/#admin> are avail
|
|||||||
Multiple LDAP sources can be configured with additional LDAP list items.
|
Multiple LDAP sources can be configured with additional LDAP list items.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
gitea:
|
gitea:
|
||||||
ldap:
|
ldap:
|
||||||
- name: MyAwesomeGiteaLdap
|
- name: MyAwesomeGiteaLdap
|
||||||
securityProtocol: unencrypted
|
securityProtocol: unencrypted
|
||||||
host: "127.0.0.1"
|
host: "127.0.0.1"
|
||||||
port: "389"
|
port: "389"
|
||||||
userSearchBase: ou=Users,dc=example,dc=com
|
userSearchBase: ou=Users,dc=example,dc=com
|
||||||
userFilter: sAMAccountName=%s
|
userFilter: sAMAccountName=%s
|
||||||
adminFilter: CN=Admin,CN=Group,DC=example,DC=com
|
adminFilter: CN=Admin,CN=Group,DC=example,DC=com
|
||||||
emailAttribute: mail
|
emailAttribute: mail
|
||||||
bindDn: CN=ldap read,OU=Spezial,DC=example,DC=com
|
bindDn: CN=ldap read,OU=Spezial,DC=example,DC=com
|
||||||
bindPassword: JustAnotherBindPw
|
bindPassword: JustAnotherBindPw
|
||||||
usernameAttribute: CN
|
usernameAttribute: CN
|
||||||
publicSSHKeyAttribute: publicSSHKey
|
publicSSHKeyAttribute: publicSSHKey
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also use an existing secret to set the bindDn and bindPassword:
|
You can also use an existing secret to set the bindDn and bindPassword:
|
||||||
@ -474,11 +481,11 @@ Multiple OAuth2 sources can be configured with additional OAuth list items.
|
|||||||
```yaml
|
```yaml
|
||||||
gitea:
|
gitea:
|
||||||
oauth:
|
oauth:
|
||||||
- name: 'MyAwesomeGiteaOAuth'
|
- name: "MyAwesomeGiteaOAuth"
|
||||||
provider: 'openidConnect'
|
provider: "openidConnect"
|
||||||
key: 'hello'
|
key: "hello"
|
||||||
secret: 'world'
|
secret: "world"
|
||||||
autoDiscoverUrl: 'https://gitea.example.com/.well-known/openid-configuration'
|
autoDiscoverUrl: "https://gitea.example.com/.well-known/openid-configuration"
|
||||||
#useCustomUrls:
|
#useCustomUrls:
|
||||||
#customAuthUrl:
|
#customAuthUrl:
|
||||||
#customTokenUrl:
|
#customTokenUrl:
|
||||||
@ -502,7 +509,7 @@ stringData:
|
|||||||
```yaml
|
```yaml
|
||||||
gitea:
|
gitea:
|
||||||
oauth:
|
oauth:
|
||||||
- name: 'MyAwesomeGiteaOAuth'
|
- name: "MyAwesomeGiteaOAuth"
|
||||||
existingSecret: gitea-oauth-secret
|
existingSecret: gitea-oauth-secret
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
@ -527,7 +534,7 @@ signing:
|
|||||||
|
|
||||||
Regardless of the used container image the `signing` object allows to specify a
|
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,
|
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.existingKey`.
|
or refer to an existing secret containing the key data by using `signing.existingSecret`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@ -718,6 +725,7 @@ gitea:
|
|||||||
| `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 Gitea pod | `{}` |
|
| `gitea.podAnnotations` | Annotations for the Gitea pod | `{}` |
|
||||||
|
| `gitea.ssh.logLevel` | Configure OpenSSH's log level. Only available for root-based Gitea image. | `INFO` |
|
||||||
|
|
||||||
### LivenessProbe
|
### LivenessProbe
|
||||||
|
|
||||||
@ -764,44 +772,23 @@ gitea:
|
|||||||
|
|
||||||
### PostgreSQL
|
### PostgreSQL
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------------------------------- | -------------------------------------------------------- | ------- |
|
| ------------------------------------------------------- | ---------------------------------------------------------------- | ------- |
|
||||||
| `postgresql.enabled` | Enable PostgreSQL | `true` |
|
| `postgresql.enabled` | Enable PostgreSQL | `true` |
|
||||||
| `postgresql.global.postgresql.postgresqlDatabase` | PostgreSQL database (overrides postgresqlDatabase) | `gitea` |
|
| `postgresql.global.postgresql.auth.password` | Password for the "Gitea" user (overrides `auth.password`) | `gitea` |
|
||||||
| `postgresql.global.postgresql.postgresqlUsername` | PostgreSQL username (overrides postgresqlUsername) | `gitea` |
|
| `postgresql.global.postgresql.auth.database` | Name for a custom database to create (overrides `auth.database`) | `gitea` |
|
||||||
| `postgresql.global.postgresql.postgresqlPassword` | PostgreSQL admin password (overrides postgresqlPassword) | `gitea` |
|
| `postgresql.global.postgresql.auth.username` | Name for a custom user to create (overrides `auth.username`) | `gitea` |
|
||||||
| `postgresql.global.postgresql.servicePort` | PostgreSQL port (overrides service.port) | `5432` |
|
| `postgresql.global.postgresql.service.ports.postgresql` | PostgreSQL service port (overrides `service.ports.postgresql`) | `5432` |
|
||||||
| `postgresql.persistence.size` | PVC Storage Request for PostgreSQL volume | `10Gi` |
|
| `postgresql.primary.persistence.size` | PVC Storage Request for PostgreSQL volume | `10Gi` |
|
||||||
|
|
||||||
### MySQL
|
|
||||||
|
|
||||||
| Name | Description | Value |
|
|
||||||
| ------------------------ | ------------------------------------------------------------------ | ------- |
|
|
||||||
| `mysql.enabled` | Enable MySQL | `false` |
|
|
||||||
| `mysql.root.password` | Password for the root user. Ignored if existing secret is provided | `gitea` |
|
|
||||||
| `mysql.db.user` | Username of new user to create. | `gitea` |
|
|
||||||
| `mysql.db.password` | Password for the new user.Ignored if existing secret is provided | `gitea` |
|
|
||||||
| `mysql.db.name` | Name for new database to create. | `gitea` |
|
|
||||||
| `mysql.service.port` | Port to connect to MySQL service | `3306` |
|
|
||||||
| `mysql.persistence.size` | PVC Storage Request for MySQL volume | `10Gi` |
|
|
||||||
|
|
||||||
### MariaDB
|
|
||||||
|
|
||||||
| Name | Description | Value |
|
|
||||||
| ---------------------------------- | ----------------------------------------------------------------- | ------- |
|
|
||||||
| `mariadb.enabled` | Enable MariaDB | `false` |
|
|
||||||
| `mariadb.auth.database` | Name of the database to create. | `gitea` |
|
|
||||||
| `mariadb.auth.username` | Username of the new user to create. | `gitea` |
|
|
||||||
| `mariadb.auth.password` | Password for the new user. Ignored if existing secret is provided | `gitea` |
|
|
||||||
| `mariadb.auth.rootPassword` | Password for the root user. | `gitea` |
|
|
||||||
| `mariadb.primary.service.port` | Port to connect to MariaDB service | `3306` |
|
|
||||||
| `mariadb.primary.persistence.size` | Persistence size for MariaDB | `10Gi` |
|
|
||||||
|
|
||||||
### Advanced
|
### Advanced
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------ | ---------------------------------------------------- | ------ |
|
| ------------------ | ------------------------------------------------------------------ | --------- |
|
||||||
| `checkDeprecation` | Set it to false to skip this basic validation check. | `true` |
|
| `checkDeprecation` | Set it to false to skip this basic validation check. | `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.tag` | Image tag for the wget container used in the test-connection Pod. | `latest` |
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
@ -814,12 +801,23 @@ See [CONTRIBUTORS GUIDE](CONTRIBUTING.md) for details.
|
|||||||
This section lists major and breaking changes of each Helm Chart version.
|
This section lists major and breaking changes of each Helm Chart version.
|
||||||
Please read them carefully to upgrade successfully.
|
Please read them carefully to upgrade successfully.
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
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.
|
||||||
|
With respect to `values.yaml`, parameters `username`, `database` and `password` have been regrouped under `auth` and slightly renamed.
|
||||||
|
`persistence` has also been regrouped under the `primary` key.
|
||||||
|
Please adjust your `values.yaml` accordingly.
|
||||||
|
|
||||||
### To 7.0.0
|
### To 7.0.0
|
||||||
|
|
||||||
#### Gitea 1.18.1
|
|
||||||
|
|
||||||
This Chart version updates Gitea to 1.18.1. Don't miss any application related [breaking changes of 1.18.0](https://blog.gitea.io/2022/12/gitea-1.18.0-is-released/#breaking-changes).
|
|
||||||
|
|
||||||
#### Private GPG key configuration for Gitea signing actions
|
#### 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.
|
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.
|
||||||
@ -857,7 +855,7 @@ after the upgrade.
|
|||||||
#### Enable Dependencies
|
#### Enable Dependencies
|
||||||
|
|
||||||
The values to enable the dependencies,
|
The values to enable the dependencies,
|
||||||
such as PostgreSQL, Memcached, MySQL and MariaDB
|
such as PostgreSQL, Memcached, MySQL and MariaDB.
|
||||||
have been moved from `gitea.database.builtIn.` to the dependency values.
|
have been moved from `gitea.database.builtIn.` to the dependency values.
|
||||||
|
|
||||||
You can now enable the dependencies as followed:
|
You can now enable the dependencies as followed:
|
||||||
@ -893,9 +891,9 @@ automatically in certain situations:
|
|||||||
configuration nor via auto generation. We explicitly prevent to set new secrets.
|
configuration nor via auto generation. We explicitly prevent to set new secrets.
|
||||||
|
|
||||||
> 💡 It would be possible to set new secret keys manually by entering
|
> 💡 It would be possible to set new secret keys manually by entering
|
||||||
the running container and rewriting the app.ini by hand. However, this it is
|
> the running container and rewriting the app.ini by hand. However, this it is
|
||||||
not advisable to do so for existing installations. Certain settings like
|
> not advisable to do so for existing installations. Certain settings like
|
||||||
_LDAP_ would not be readable anymore.
|
> _LDAP_ would not be readable anymore.
|
||||||
|
|
||||||
#### Probes
|
#### Probes
|
||||||
|
|
||||||
|
@ -92,15 +92,7 @@ app.kubernetes.io/instance: {{ .Release.Name }}
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "postgresql.dns" -}}
|
{{- define "postgresql.dns" -}}
|
||||||
{{- printf "%s-postgresql.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.postgresql.global.postgresql.servicePort -}}
|
{{- printf "%s-postgresql.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.postgresql.global.postgresql.service.ports.postgresql -}}
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "mysql.dns" -}}
|
|
||||||
{{- printf "%s-mysql.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.mysql.service.port | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "mariadb.dns" -}}
|
|
||||||
{{- printf "%s-mariadb.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.mariadb.primary.service.port | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "memcached.dns" -}}
|
{{- define "memcached.dns" -}}
|
||||||
@ -292,25 +284,9 @@ https
|
|||||||
{{- if not (.Values.gitea.config.database.HOST) -}}
|
{{- if not (.Values.gitea.config.database.HOST) -}}
|
||||||
{{- $_ := set .Values.gitea.config.database "HOST" (include "postgresql.dns" .) -}}
|
{{- $_ := set .Values.gitea.config.database "HOST" (include "postgresql.dns" .) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $_ := set .Values.gitea.config.database "NAME" .Values.postgresql.global.postgresql.postgresqlDatabase -}}
|
{{- $_ := set .Values.gitea.config.database "NAME" .Values.postgresql.global.postgresql.auth.database -}}
|
||||||
{{- $_ := set .Values.gitea.config.database "USER" .Values.postgresql.global.postgresql.postgresqlUsername -}}
|
{{- $_ := set .Values.gitea.config.database "USER" .Values.postgresql.global.postgresql.auth.username -}}
|
||||||
{{- $_ := set .Values.gitea.config.database "PASSWD" .Values.postgresql.global.postgresql.postgresqlPassword -}}
|
{{- $_ := set .Values.gitea.config.database "PASSWD" .Values.postgresql.global.postgresql.auth.password -}}
|
||||||
{{- else if .Values.mysql.enabled -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "DB_TYPE" "mysql" -}}
|
|
||||||
{{- if not (.Values.gitea.config.database.HOST) -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "HOST" (include "mysql.dns" .) -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "NAME" .Values.mysql.db.name -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "USER" .Values.mysql.db.user -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "PASSWD" .Values.mysql.db.password -}}
|
|
||||||
{{- else if .Values.mariadb.enabled -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "DB_TYPE" "mysql" -}}
|
|
||||||
{{- if not (.Values.gitea.config.database.HOST) -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "HOST" (include "mariadb.dns" .) -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "NAME" .Values.mariadb.auth.database -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "USER" .Values.mariadb.auth.username -}}
|
|
||||||
{{- $_ := set .Values.gitea.config.database "PASSWD" .Values.mariadb.auth.password -}}
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{{- if .Values.signing.enabled -}}
|
{{- if .Values.signing.enabled -}}
|
||||||
{{- if and (empty .Values.signing.privateKey) (empty .Values.signing.existingSecret) -}}
|
{{- if and (empty .Values.signing.privateKey) (empty .Values.signing.existingSecret) -}}
|
||||||
{{- fail "Either specify `signing.privateKey` or `signing.existingKey`" -}}
|
{{- fail "Either specify `signing.privateKey` or `signing.existingSecret`" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and (not (empty .Values.signing.privateKey)) (empty .Values.signing.existingSecret) -}}
|
{{- if and (not (empty .Values.signing.privateKey)) (empty .Values.signing.existingSecret) -}}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
|
@ -243,6 +243,10 @@ spec:
|
|||||||
value: {{ .Values.gitea.config.server.SSH_LISTEN_PORT | quote }}
|
value: {{ .Values.gitea.config.server.SSH_LISTEN_PORT | quote }}
|
||||||
- name: SSH_PORT
|
- name: SSH_PORT
|
||||||
value: {{ .Values.gitea.config.server.SSH_PORT | quote }}
|
value: {{ .Values.gitea.config.server.SSH_PORT | quote }}
|
||||||
|
{{- if not .Values.image.rootless }}
|
||||||
|
- name: SSH_LOG_LEVEL
|
||||||
|
value: {{ .Values.gitea.ssh.logLevel | quote }}
|
||||||
|
{{- end }}
|
||||||
- name: GITEA_APP_INI
|
- name: GITEA_APP_INI
|
||||||
value: /data/gitea/conf/app.ini
|
value: /data/gitea/conf/app.ini
|
||||||
- name: GITEA_CUSTOM
|
- name: GITEA_CUSTOM
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
{{- if .Values.test.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Pod
|
kind: Pod
|
||||||
metadata:
|
metadata:
|
||||||
@ -9,7 +10,8 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: wget
|
- name: wget
|
||||||
image: busybox
|
image: "{{ .Values.test.image.name }}:{{ .Values.test.image.tag }}"
|
||||||
command: ['wget']
|
command: ['wget']
|
||||||
args: ['{{ include "gitea.fullname" . }}-http:{{ .Values.service.http.port }}']
|
args: ['{{ include "gitea.fullname" . }}-http:{{ .Values.service.http.port }}']
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
|
{{- end }}
|
||||||
|
@ -11,7 +11,7 @@ tests:
|
|||||||
enabled: true
|
enabled: true
|
||||||
asserts:
|
asserts:
|
||||||
- failedTemplate:
|
- failedTemplate:
|
||||||
errorMessage: Either specify `signing.privateKey` or `signing.existingKey`
|
errorMessage: Either specify `signing.privateKey` or `signing.existingSecret`
|
||||||
- it: skips rendering using external secret reference
|
- it: skips rendering using external secret reference
|
||||||
set:
|
set:
|
||||||
signing:
|
signing:
|
||||||
|
@ -10,7 +10,7 @@ tests:
|
|||||||
signing.enabled: true
|
signing.enabled: true
|
||||||
asserts:
|
asserts:
|
||||||
- equal:
|
- equal:
|
||||||
path: stringData.[configure_gpg_environment.sh]
|
path: stringData["configure_gpg_environment.sh"]
|
||||||
value: |-
|
value: |-
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eu
|
set -eu
|
||||||
@ -19,7 +19,7 @@ tests:
|
|||||||
- it: skips gpg script block for disabled signing
|
- it: skips gpg script block for disabled signing
|
||||||
asserts:
|
asserts:
|
||||||
- equal:
|
- equal:
|
||||||
path: stringData.[init_directory_structure.sh]
|
path: stringData["init_directory_structure.sh"]
|
||||||
value: |-
|
value: |-
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ tests:
|
|||||||
signing.enabled: true
|
signing.enabled: true
|
||||||
asserts:
|
asserts:
|
||||||
- equal:
|
- equal:
|
||||||
path: stringData.[init_directory_structure.sh]
|
path: stringData["init_directory_structure.sh"]
|
||||||
value: |-
|
value: |-
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
40
unittests/statefulset/ssh-configuration.yaml
Normal file
40
unittests/statefulset/ssh-configuration.yaml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
suite: Statefulset template (SSH configuration)
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/statefulset.yaml
|
||||||
|
- templates/gitea/config.yaml
|
||||||
|
tests:
|
||||||
|
- it: supports defining SSH log level for root based image
|
||||||
|
template: templates/gitea/statefulset.yaml
|
||||||
|
set:
|
||||||
|
image.rootless: false
|
||||||
|
asserts:
|
||||||
|
- contains:
|
||||||
|
path: spec.template.spec.containers[0].env
|
||||||
|
content:
|
||||||
|
name: SSH_LOG_LEVEL
|
||||||
|
value: "INFO"
|
||||||
|
- it: supports overriding SSH log level
|
||||||
|
template: templates/gitea/statefulset.yaml
|
||||||
|
set:
|
||||||
|
image.rootless: false
|
||||||
|
gitea.ssh.logLevel: "DEBUG"
|
||||||
|
asserts:
|
||||||
|
- contains:
|
||||||
|
path: spec.template.spec.containers[0].env
|
||||||
|
content:
|
||||||
|
name: SSH_LOG_LEVEL
|
||||||
|
value: "DEBUG"
|
||||||
|
- it: skips SSH_LOG_LEVEL for rootless image
|
||||||
|
template: templates/gitea/statefulset.yaml
|
||||||
|
set:
|
||||||
|
image.rootless: true
|
||||||
|
gitea.ssh.logLevel: "DEBUG" # explicitly defining a non-standard level here
|
||||||
|
asserts:
|
||||||
|
- notContains:
|
||||||
|
path: spec.template.spec.containers[0].env
|
||||||
|
any: true
|
||||||
|
content:
|
||||||
|
name: SSH_LOG_LEVEL
|
77
values.yaml
77
values.yaml
@ -125,7 +125,6 @@ service:
|
|||||||
loadBalancerSourceRanges: []
|
loadBalancerSourceRanges: []
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
|
|
||||||
## @section Ingress
|
## @section Ingress
|
||||||
## @param ingress.enabled Enable ingress
|
## @param ingress.enabled Enable ingress
|
||||||
## @param ingress.className Ingress class name
|
## @param ingress.className Ingress class name
|
||||||
@ -348,6 +347,10 @@ gitea:
|
|||||||
## @param gitea.podAnnotations Annotations for the Gitea pod
|
## @param gitea.podAnnotations Annotations for the Gitea pod
|
||||||
podAnnotations: {}
|
podAnnotations: {}
|
||||||
|
|
||||||
|
## @param gitea.ssh.logLevel Configure OpenSSH's log level. Only available for root-based Gitea image.
|
||||||
|
ssh:
|
||||||
|
logLevel: "INFO"
|
||||||
|
|
||||||
## @section LivenessProbe
|
## @section LivenessProbe
|
||||||
#
|
#
|
||||||
## @param gitea.livenessProbe.enabled Enable liveness probe
|
## @param gitea.livenessProbe.enabled Enable liveness probe
|
||||||
@ -420,63 +423,23 @@ memcached:
|
|||||||
## @section PostgreSQL
|
## @section PostgreSQL
|
||||||
#
|
#
|
||||||
## @param postgresql.enabled Enable PostgreSQL
|
## @param postgresql.enabled Enable PostgreSQL
|
||||||
## @param postgresql.global.postgresql.postgresqlDatabase PostgreSQL database (overrides postgresqlDatabase)
|
## @param postgresql.global.postgresql.auth.password Password for the "gitea" user (overrides `auth.password`)
|
||||||
## @param postgresql.global.postgresql.postgresqlUsername PostgreSQL username (overrides postgresqlUsername)
|
## @param postgresql.global.postgresql.auth.database Name for a custom database to create (overrides `auth.database`)
|
||||||
## @param postgresql.global.postgresql.postgresqlPassword PostgreSQL admin password (overrides postgresqlPassword)
|
## @param postgresql.global.postgresql.auth.username Name for a custom user to create (overrides `auth.username`)
|
||||||
## @param postgresql.global.postgresql.servicePort PostgreSQL port (overrides service.port)
|
## @param postgresql.global.postgresql.service.ports.postgresql PostgreSQL service port (overrides `service.ports.postgresql`)
|
||||||
## @param postgresql.persistence.size PVC Storage Request for PostgreSQL volume
|
## @param postgresql.primary.persistence.size PVC Storage Request for PostgreSQL volume
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: true
|
enabled: true
|
||||||
global:
|
global:
|
||||||
postgresql:
|
postgresql:
|
||||||
postgresqlDatabase: gitea
|
auth:
|
||||||
postgresqlUsername: gitea
|
password: gitea
|
||||||
postgresqlPassword: gitea
|
database: gitea
|
||||||
servicePort: 5432
|
username: gitea
|
||||||
persistence:
|
service:
|
||||||
size: 10Gi
|
ports:
|
||||||
|
postgresql: 5432
|
||||||
## @section MySQL
|
|
||||||
#
|
|
||||||
## @param mysql.enabled Enable MySQL
|
|
||||||
## @param mysql.root.password Password for the root user. Ignored if existing secret is provided
|
|
||||||
## @param mysql.db.user Username of new user to create.
|
|
||||||
## @param mysql.db.password Password for the new user.Ignored if existing secret is provided
|
|
||||||
## @param mysql.db.name Name for new database to create.
|
|
||||||
## @param mysql.service.port Port to connect to MySQL service
|
|
||||||
## @param mysql.persistence.size PVC Storage Request for MySQL volume
|
|
||||||
mysql:
|
|
||||||
enabled: false
|
|
||||||
root:
|
|
||||||
password: gitea
|
|
||||||
db:
|
|
||||||
user: gitea
|
|
||||||
password: gitea
|
|
||||||
name: gitea
|
|
||||||
service:
|
|
||||||
port: 3306
|
|
||||||
persistence:
|
|
||||||
size: 10Gi
|
|
||||||
|
|
||||||
## @section MariaDB
|
|
||||||
#
|
|
||||||
## @param mariadb.enabled Enable MariaDB
|
|
||||||
## @param mariadb.auth.database Name of the database to create.
|
|
||||||
## @param mariadb.auth.username Username of the new user to create.
|
|
||||||
## @param mariadb.auth.password Password for the new user. Ignored if existing secret is provided
|
|
||||||
## @param mariadb.auth.rootPassword Password for the root user.
|
|
||||||
## @param mariadb.primary.service.port Port to connect to MariaDB service
|
|
||||||
## @param mariadb.primary.persistence.size Persistence size for MariaDB
|
|
||||||
mariadb:
|
|
||||||
enabled: false
|
|
||||||
auth:
|
|
||||||
database: gitea
|
|
||||||
username: gitea
|
|
||||||
password: gitea
|
|
||||||
rootPassword: gitea
|
|
||||||
primary:
|
primary:
|
||||||
service:
|
|
||||||
port: 3306
|
|
||||||
persistence:
|
persistence:
|
||||||
size: 10Gi
|
size: 10Gi
|
||||||
|
|
||||||
@ -484,4 +447,12 @@ mariadb:
|
|||||||
# 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 Set it to false to skip this basic validation check.
|
## @param checkDeprecation Set it to false to skip this basic validation check.
|
||||||
|
## @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.tag Image tag for the wget container used in the test-connection Pod.
|
||||||
checkDeprecation: true
|
checkDeprecation: true
|
||||||
|
test:
|
||||||
|
enabled: true
|
||||||
|
image:
|
||||||
|
name: busybox
|
||||||
|
tag: latest
|
||||||
|
Reference in New Issue
Block a user