You've already forked helm-gitea
Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
7b892431d6 | |||
f7c66c0336 | |||
5c7e78b467 | |||
478af4e381 | |||
7c4d6c3797 | |||
aa9808bc27 | |||
a08e39f8ff | |||
c039673e5a | |||
e636984db1 | |||
77aa11a3bb | |||
3fdb39df68 | |||
9dc3f7c086 | |||
036b469ff9 | |||
339ee94260 | |||
1c71764d3c | |||
e19723a3fb |
@ -11,7 +11,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=github-releases depName=helm-unittest/helm-unittest
|
# renovate: datasource=github-releases depName=helm-unittest/helm-unittest
|
||||||
HELM_UNITTEST_VERSION: "v0.5.1"
|
HELM_UNITTEST_VERSION: "v0.5.2"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-and-test:
|
check-and-test:
|
||||||
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"yaml.schemas": {
|
"yaml.schemas": {
|
||||||
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.5.1/schema/helm-testsuite.json": [
|
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.5.2/schema/helm-testsuite.json": [
|
||||||
"/unittests/**/*.yaml"
|
"/unittests/**/*.yaml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
12
Chart.lock
12
Chart.lock
@ -1,15 +1,15 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
repository: oci://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 15.5.17
|
version: 15.5.20
|
||||||
- name: postgresql-ha
|
- name: postgresql-ha
|
||||||
repository: oci://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 14.2.12
|
version: 14.2.16
|
||||||
- name: redis-cluster
|
- name: redis-cluster
|
||||||
repository: oci://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 10.2.7
|
version: 10.3.0
|
||||||
- name: redis
|
- name: redis
|
||||||
repository: oci://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 19.6.2
|
version: 19.6.4
|
||||||
digest: sha256:842e8878e2da9cd62c2233f5ebfcdaa05598633a8bc2fa84803006929cf0c3cc
|
digest: sha256:a28c809273f313c482e3f803a0a002c3bb3a0d2090bf6b732d68ecc4710b4732
|
||||||
generated: "2024-07-20T00:44:58.227558466Z"
|
generated: "2024-08-03T00:21:16.080925346Z"
|
||||||
|
11
Chart.yaml
11
Chart.yaml
@ -3,7 +3,8 @@ 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.22.1
|
# renovate datasource=github-releases depName=go-gitea/gitea extractVersion=^v(?<version>.*)$
|
||||||
|
appVersion: 1.22.3
|
||||||
icon: https://gitea.com/assets/img/logo.svg
|
icon: https://gitea.com/assets/img/logo.svg
|
||||||
|
|
||||||
keywords:
|
keywords:
|
||||||
@ -35,20 +36,20 @@ dependencies:
|
|||||||
# https://github.com/bitnami/charts/blob/main/bitnami/postgresql
|
# https://github.com/bitnami/charts/blob/main/bitnami/postgresql
|
||||||
- name: postgresql
|
- name: postgresql
|
||||||
repository: oci://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 15.5.17
|
version: 15.5.20
|
||||||
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://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 14.2.12
|
version: 14.2.16
|
||||||
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://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 10.2.7
|
version: 10.3.0
|
||||||
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://registry-1.docker.io/bitnamicharts
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
version: 19.6.2
|
version: 19.6.4
|
||||||
condition: redis.enabled
|
condition: redis.enabled
|
||||||
|
57
README.md
57
README.md
@ -45,6 +45,7 @@
|
|||||||
- [Persistence](#persistence-1)
|
- [Persistence](#persistence-1)
|
||||||
- [Init](#init)
|
- [Init](#init)
|
||||||
- [Signing](#signing)
|
- [Signing](#signing)
|
||||||
|
- [Gitea Actions](#gitea-actions)
|
||||||
- [Gitea](#gitea)
|
- [Gitea](#gitea)
|
||||||
- [LivenessProbe](#livenessprobe)
|
- [LivenessProbe](#livenessprobe)
|
||||||
- [ReadinessProbe](#readinessprobe)
|
- [ReadinessProbe](#readinessprobe)
|
||||||
@ -420,6 +421,9 @@ gitea:
|
|||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
postgresql-ha:
|
||||||
|
enabled: false
|
||||||
```
|
```
|
||||||
|
|
||||||
### Ports and external url
|
### Ports and external url
|
||||||
@ -498,6 +502,9 @@ redis-cluster:
|
|||||||
enabled: true
|
enabled: true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
⚠️ The redis charts [do not work well with special characters in the password](https://gitea.com/gitea/helm-chart/issues/690).
|
||||||
|
Consider omitting such or open an issue in the Bitnami repo and let us know once this got fixed.
|
||||||
|
|
||||||
### Persistence
|
### Persistence
|
||||||
|
|
||||||
Gitea will be deployed as a deployment.
|
Gitea will be deployed as a deployment.
|
||||||
@ -850,11 +857,12 @@ To comply with the Gitea helm chart definition of the digest parameter, a "custo
|
|||||||
### Global
|
### Global
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| ------------------------- | ------------------------------------------------------------------------- | ----- |
|
| ------------------------- | ---------------------------------------------------------------------------------------------- | ----- |
|
||||||
| `global.imageRegistry` | global image registry override | `""` |
|
| `global.imageRegistry` | global image registry override | `""` |
|
||||||
| `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 | `[]` |
|
||||||
|
| `namespace` | An explicit namespace to deploy Gitea into. Defaults to the release namespace if not specified | `""` |
|
||||||
| `replicaCount` | number of replicas for the deployment | `1` |
|
| `replicaCount` | number of replicas for the deployment | `1` |
|
||||||
|
|
||||||
### strategy
|
### strategy
|
||||||
@ -976,6 +984,7 @@ To comply with the Gitea helm chart definition of the digest parameter, a "custo
|
|||||||
| `persistence.storageClass` | Name of the storage class to use | `nil` |
|
| `persistence.storageClass` | Name of the storage class to use | `nil` |
|
||||||
| `persistence.subPath` | Subdirectory of the volume to mount at | `nil` |
|
| `persistence.subPath` | Subdirectory of the volume to mount at | `nil` |
|
||||||
| `persistence.volumeName` | Name of persistent volume in PVC | `""` |
|
| `persistence.volumeName` | Name of persistent volume in PVC | `""` |
|
||||||
|
| `extraContainers` | Additional sidecar containers to run in the pod | `[]` |
|
||||||
| `extraVolumes` | Additional volumes to mount to the Gitea deployment | `[]` |
|
| `extraVolumes` | Additional volumes to mount to the Gitea deployment | `[]` |
|
||||||
| `extraContainerVolumeMounts` | Mounts that are only mapped into the Gitea runtime/main container, to e.g. override custom templates. | `[]` |
|
| `extraContainerVolumeMounts` | Mounts that are only mapped into the Gitea runtime/main container, to e.g. override custom templates. | `[]` |
|
||||||
| `extraInitVolumeMounts` | Mounts that are only mapped into the init-containers. Can be used for additional preconfiguration. | `[]` |
|
| `extraInitVolumeMounts` | Mounts that are only mapped into the init-containers. Can be used for additional preconfiguration. | `[]` |
|
||||||
@ -999,17 +1008,57 @@ To comply with the Gitea helm chart definition of the digest parameter, a "custo
|
|||||||
| `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 Actions
|
||||||
|
|
||||||
|
| Name | Description | Value |
|
||||||
|
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
|
||||||
|
| `actions.enabled` | Create an act runner StatefulSet. | `false` |
|
||||||
|
| `actions.init.image.repository` | The image used for the init containers | `busybox` |
|
||||||
|
| `actions.init.image.tag` | The image tag used for the init containers | `1.36.1` |
|
||||||
|
| `actions.statefulset.annotations` | Act runner annotations | `{}` |
|
||||||
|
| `actions.statefulset.labels` | Act runner labels | `{}` |
|
||||||
|
| `actions.statefulset.resources` | Act runner resources | `{}` |
|
||||||
|
| `actions.statefulset.nodeSelector` | NodeSelector for the statefulset | `{}` |
|
||||||
|
| `actions.statefulset.tolerations` | Tolerations for the statefulset | `[]` |
|
||||||
|
| `actions.statefulset.affinity` | Affinity for the statefulset | `{}` |
|
||||||
|
| `actions.statefulset.actRunner.repository` | The Gitea act runner image | `gitea/act_runner` |
|
||||||
|
| `actions.statefulset.actRunner.tag` | The Gitea act runner tag | `0.2.11` |
|
||||||
|
| `actions.statefulset.actRunner.pullPolicy` | The Gitea act runner pullPolicy | `IfNotPresent` |
|
||||||
|
| `actions.statefulset.actRunner.config` | Act runner custom configuration. See [Act Runner documentation](https://docs.gitea.com/usage/actions/act-runner#configuration) for details. | `Too complex. See values.yaml` |
|
||||||
|
| `actions.statefulset.dind.repository` | The Docker-in-Docker image | `docker` |
|
||||||
|
| `actions.statefulset.dind.tag` | The Docker-in-Docker image tag | `25.0.2-dind` |
|
||||||
|
| `actions.statefulset.dind.pullPolicy` | The Docker-in-Docker pullPolicy | `IfNotPresent` |
|
||||||
|
| `actions.statefulset.dind.extraEnvs` | Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY` | `[]` |
|
||||||
|
| `actions.provisioning.enabled` | Create a job that will create and save the token in a Kubernetes Secret | `false` |
|
||||||
|
| `actions.provisioning.annotations` | Job's annotations | `{}` |
|
||||||
|
| `actions.provisioning.labels` | Job's labels | `{}` |
|
||||||
|
| `actions.provisioning.resources` | Job's resources | `{}` |
|
||||||
|
| `actions.provisioning.nodeSelector` | NodeSelector for the job | `{}` |
|
||||||
|
| `actions.provisioning.tolerations` | Tolerations for the job | `[]` |
|
||||||
|
| `actions.provisioning.affinity` | Affinity for the job | `{}` |
|
||||||
|
| `actions.provisioning.ttlSecondsAfterFinished` | ttl for the job after finished in order to allow helm to properly recognize that the job completed | `300` |
|
||||||
|
| `actions.provisioning.publish.repository` | The image that can create the secret via kubectl | `bitnami/kubectl` |
|
||||||
|
| `actions.provisioning.publish.tag` | The publish image tag that can create the secret | `1.29.0` |
|
||||||
|
| `actions.provisioning.publish.pullPolicy` | The publish image pullPolicy that can create the secret | `IfNotPresent` |
|
||||||
|
| `actions.existingSecret` | Secret that contains the token | `""` |
|
||||||
|
| `actions.existingSecretKey` | Secret key | `""` |
|
||||||
|
|
||||||
### Gitea
|
### Gitea
|
||||||
|
|
||||||
| Name | Description | Value |
|
| Name | Description | Value |
|
||||||
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------- |
|
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -------------------- |
|
||||||
| `gitea.admin.username` | Username for the Gitea admin user | `gitea_admin` |
|
| `gitea.admin.username` | Username for the Gitea 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 Gitea admin user | `r8sA8CPHD9!bt6d` |
|
| `gitea.admin.password` | Password for the Gitea admin user | `r8sA8CPHD9!bt6d` |
|
||||||
| `gitea.admin.email` | Email for the Gitea admin user | `gitea@local.domain` |
|
| `gitea.admin.email` | Email for the Gitea 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 Gitea metrics | `false` |
|
| `gitea.metrics.enabled` | Enable Gitea metrics | `false` |
|
||||||
| `gitea.metrics.serviceMonitor.enabled` | Enable Gitea metrics service monitor | `false` |
|
| `gitea.metrics.serviceMonitor.enabled` | Enable Gitea metrics service monitor. Requires, that `gitea.metrics.enabled` is also set to true, to enable metrics generally. | `false` |
|
||||||
|
| `gitea.metrics.serviceMonitor.interval` | Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used. | `""` |
|
||||||
|
| `gitea.metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping. | `[]` |
|
||||||
|
| `gitea.metrics.serviceMonitor.scheme` | HTTP scheme to use for scraping. For example `http` or `https`. Default is http. | `""` |
|
||||||
|
| `gitea.metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used. | `""` |
|
||||||
|
| `gitea.metrics.serviceMonitor.tlsConfig` | TLS configuration to use when scraping the metric endpoint by Prometheus. | `{}` |
|
||||||
| `gitea.ldap` | LDAP configuration | `[]` |
|
| `gitea.ldap` | LDAP configuration | `[]` |
|
||||||
| `gitea.oauth` | OAuth configuration | `[]` |
|
| `gitea.oauth` | OAuth configuration | `[]` |
|
||||||
| `gitea.config.server.SSH_PORT` | SSH port for rootlful Gitea image | `22` |
|
| `gitea.config.server.SSH_PORT` | SSH port for rootlful Gitea image | `22` |
|
||||||
@ -1090,7 +1139,7 @@ Redis and [Redis cluster](#redis-cluster) cannot be enabled at the same time.
|
|||||||
| `postgresql-ha.postgresql.postgresPassword` | postgres Password | `changeme1` |
|
| `postgresql-ha.postgresql.postgresPassword` | postgres Password | `changeme1` |
|
||||||
| `postgresql-ha.pgpool.adminPassword` | pgpool adminPassword | `changeme3` |
|
| `postgresql-ha.pgpool.adminPassword` | pgpool adminPassword | `changeme3` |
|
||||||
| `postgresql-ha.service.ports.postgresql` | PostgreSQL service port (overrides `service.ports.postgresql`) | `5432` |
|
| `postgresql-ha.service.ports.postgresql` | PostgreSQL service port (overrides `service.ports.postgresql`) | `5432` |
|
||||||
| `postgresql-ha.primary.persistence.size` | PVC Storage Request for PostgreSQL HA volume | `10Gi` |
|
| `postgresql-ha.persistence.size` | PVC Storage Request for PostgreSQL HA volume | `10Gi` |
|
||||||
|
|
||||||
### PostgreSQL
|
### PostgreSQL
|
||||||
|
|
||||||
|
34
readme-actions-dev.md
Normal file
34
readme-actions-dev.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Gitea Actions
|
||||||
|
|
||||||
|
In order to use the Gitea Actions act-runner you must either:
|
||||||
|
|
||||||
|
- enable persistence (used for automatic deployment to be able to store the token in a place accessible for the Job)
|
||||||
|
- create a secret containing the act runner token and reference it as a `existingSecret`
|
||||||
|
|
||||||
|
In order to use Gitea Actions, you must log on the server that's running Gitea and run the command:
|
||||||
|
`gitea actions generate-runner-token`
|
||||||
|
|
||||||
|
This command will out a token that is needed by the act-runner to register with the Gitea backend.
|
||||||
|
|
||||||
|
Because this is a manual operation, we automated this using a Kubernetes Job using the following containers:
|
||||||
|
|
||||||
|
1) `actions-token-create`: it uses the current `gitea-rootless` image, mounts the persistent directory to `/data/` then it saves the output from `gitea actions generate-runner-token` to `/data/actions/token`
|
||||||
|
2) `actions-token-upload`: it uses a `bitnami/kubectl` image, mounts the scripts directory (`/scripts`) and
|
||||||
|
the persistent directory (`/data/`), and using the script from `/scripts/token.sh` stores the token in a Kubernetes secret
|
||||||
|
|
||||||
|
After the token is stored in a Kubernetes secret we can create the statefulset that contains the following containers:
|
||||||
|
|
||||||
|
1) `act-runner`: authenticates with Gitea using the token that was stored in the secret
|
||||||
|
2) `dind`: DockerInDocker image that is used to run the actions
|
||||||
|
|
||||||
|
If you are not using persistent volumes, you cannot use the Job to automatically generate the token.
|
||||||
|
In this case, you can use either the Web UI to generate the token or run a shell into a Gitea pod and invoke
|
||||||
|
the command `gitea actions generate-runner-token`. After generating the token, you must create a secret and use it via:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
actions:
|
||||||
|
provisioning:
|
||||||
|
enabled: false
|
||||||
|
existingSecret: "secret-name"
|
||||||
|
existingSecretKey: "secret-key"
|
||||||
|
```
|
@ -30,6 +30,14 @@
|
|||||||
],
|
],
|
||||||
datasourceTemplate: 'github-releases',
|
datasourceTemplate: 'github-releases',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'description': 'Automatically detect new Gitea releases',
|
||||||
|
'customType': 'regex',
|
||||||
|
'fileMatch': ['(^|/)Chart\\.yaml$'],
|
||||||
|
'matchStrings': [
|
||||||
|
'# renovate datasource=(?<datasource>\\S+) depName=(?<depName>\\S+) extractVersion=(?<extractVersion>\\S+)\\nappVersion:\\s?(?<currentValue>\\S+)\\n',
|
||||||
|
],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
packageRules: [
|
packageRules: [
|
||||||
{
|
{
|
||||||
@ -56,5 +64,12 @@
|
|||||||
'digest',
|
'digest',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
description: 'Override changelog url for Helm image, to have release notes in our PRs',
|
||||||
|
matchDepNames: [
|
||||||
|
'alpine/helm',
|
||||||
|
],
|
||||||
|
changelogUrl: 'https://github.com/helm/helm',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
43
scripts/token.sh
Normal file
43
scripts/token.sh
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
timeout_delay=15
|
||||||
|
|
||||||
|
check_token() {
|
||||||
|
set +e
|
||||||
|
|
||||||
|
echo "Checking for existing token..."
|
||||||
|
token="$(kubectl get secret "$SECRET_NAME" -o jsonpath="{.data['token']}" 2> /dev/null)"
|
||||||
|
[ $? -ne 0 ] && return 1
|
||||||
|
[ -z "$token" ] && return 2
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
create_token() {
|
||||||
|
echo "Waiting for new token to be generated..."
|
||||||
|
begin=$(date +%s)
|
||||||
|
end=$((begin + timeout_delay))
|
||||||
|
while true; do
|
||||||
|
[ -f /data/actions/token ] && return 0
|
||||||
|
[ "$(date +%s)" -gt $end ] && return 1
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
store_token() {
|
||||||
|
echo "Storing the token in Kubernetes secret..."
|
||||||
|
kubectl patch secret "$SECRET_NAME" -p "{\"data\":{\"token\":\"$(base64 /data/actions/token | tr -d '\n')\"}}"
|
||||||
|
}
|
||||||
|
|
||||||
|
if check_token; then
|
||||||
|
echo "Key already in place, exiting."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! create_token; then
|
||||||
|
echo "Checking for an existing act runner token in secret $SECRET_NAME timed out after $timeout_delay"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
store_token
|
@ -25,6 +25,13 @@ If release name contains chart name it will be used as a full name.
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a default worker name.
|
||||||
|
*/}}
|
||||||
|
{{- define "gitea.workername" -}}
|
||||||
|
{{- printf "%s-%s" .global.Release.Name .worker | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Create chart name and version as used by the chart label.
|
Create chart name and version as used by the chart label.
|
||||||
*/}}
|
*/}}
|
||||||
@ -92,6 +99,15 @@ version: {{ .Values.image.tag | default .Chart.AppVersion | quote }}
|
|||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "gitea.labels.actRunner" -}}
|
||||||
|
helm.sh/chart: {{ include "gitea.chart" . }}
|
||||||
|
app: {{ include "gitea.name" . }}-act-runner
|
||||||
|
{{ include "gitea.selectorLabels.actRunner" . }}
|
||||||
|
app.kubernetes.io/version: {{ .Values.image.tag | default .Chart.AppVersion | quote }}
|
||||||
|
version: {{ .Values.image.tag | default .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Selector labels
|
Selector labels
|
||||||
*/}}
|
*/}}
|
||||||
@ -100,6 +116,11 @@ app.kubernetes.io/name: {{ include "gitea.name" . }}
|
|||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "gitea.selectorLabels.actRunner" -}}
|
||||||
|
app.kubernetes.io/name: {{ include "gitea.name" . }}-act-runner
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "postgresql-ha.dns" -}}
|
{{- define "postgresql-ha.dns" -}}
|
||||||
{{- if (index .Values "postgresql-ha").enabled -}}
|
{{- if (index .Values "postgresql-ha").enabled -}}
|
||||||
{{- printf "%s-postgresql-ha-pgpool.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain (index .Values "postgresql-ha" "service" "ports" "postgresql") -}}
|
{{- printf "%s-postgresql-ha-pgpool.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain (index .Values "postgresql-ha" "service" "ports" "postgresql") -}}
|
||||||
@ -199,6 +220,15 @@ https
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "gitea.act_runner.local_root_url" -}}
|
||||||
|
{{- if not .Values.gitea.config.server.LOCAL_ROOT_URL -}}
|
||||||
|
{{- printf "http://%s-http:%.0f" (include "gitea.fullname" .) .Values.service.http.port -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{/* fallback for allowing to overwrite this value via inline config */}}
|
||||||
|
{{- .Values.gitea.config.server.LOCAL_ROOT_URL -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "gitea.inline_configuration" -}}
|
{{- define "gitea.inline_configuration" -}}
|
||||||
{{- include "gitea.inline_configuration.init" . -}}
|
{{- include "gitea.inline_configuration.init" . -}}
|
||||||
{{- include "gitea.inline_configuration.defaults" . -}}
|
{{- include "gitea.inline_configuration.defaults" . -}}
|
||||||
@ -263,6 +293,9 @@ https
|
|||||||
{{- if not (hasKey .Values.gitea.config "indexer") -}}
|
{{- if not (hasKey .Values.gitea.config "indexer") -}}
|
||||||
{{- $_ := set .Values.gitea.config "indexer" dict -}}
|
{{- $_ := set .Values.gitea.config "indexer" dict -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- if not (hasKey .Values.gitea.config "actions") -}}
|
||||||
|
{{- $_ := set .Values.gitea.config "actions" dict -}}
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "gitea.inline_configuration.defaults" -}}
|
{{- define "gitea.inline_configuration.defaults" -}}
|
||||||
@ -309,6 +342,9 @@ https
|
|||||||
{{- if not .Values.gitea.config.indexer.ISSUE_INDEXER_TYPE -}}
|
{{- if not .Values.gitea.config.indexer.ISSUE_INDEXER_TYPE -}}
|
||||||
{{- $_ := set .Values.gitea.config.indexer "ISSUE_INDEXER_TYPE" "db" -}}
|
{{- $_ := set .Values.gitea.config.indexer "ISSUE_INDEXER_TYPE" "db" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- if not .Values.gitea.config.actions.ENABLED -}}
|
||||||
|
{{- $_ := set .Values.gitea.config.actions "ENABLED" (ternary "true" "false" .Values.actions.enabled) -}}
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "gitea.inline_configuration.defaults.server" -}}
|
{{- define "gitea.inline_configuration.defaults.server" -}}
|
||||||
@ -328,6 +364,9 @@ https
|
|||||||
{{- if not .Values.gitea.config.server.ROOT_URL -}}
|
{{- if not .Values.gitea.config.server.ROOT_URL -}}
|
||||||
{{- $_ := set .Values.gitea.config.server "ROOT_URL" (printf "%s://%s" (include "gitea.public_protocol" .) .Values.gitea.config.server.DOMAIN) -}}
|
{{- $_ := set .Values.gitea.config.server "ROOT_URL" (printf "%s://%s" (include "gitea.public_protocol" .) .Values.gitea.config.server.DOMAIN) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- if .Values.actions.enabled -}}
|
||||||
|
{{- $_ := set .Values.gitea.config.server "LOCAL_ROOT_URL" (include "gitea.act_runner.local_root_url" .) -}}
|
||||||
|
{{- end -}}
|
||||||
{{- if not .Values.gitea.config.server.SSH_DOMAIN -}}
|
{{- if not .Values.gitea.config.server.SSH_DOMAIN -}}
|
||||||
{{- $_ := set .Values.gitea.config.server "SSH_DOMAIN" .Values.gitea.config.server.DOMAIN -}}
|
{{- $_ := set .Values.gitea.config.server "SSH_DOMAIN" .Values.gitea.config.server.DOMAIN -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@ -408,3 +447,21 @@ https
|
|||||||
{{ printf "gitea.admin.passwordMode must be set to one of 'keepUpdated', 'initialOnlyNoReset', or 'initialOnlyRequireReset'. Received: '%s'" .Values.gitea.admin.passwordMode | fail }}
|
{{ printf "gitea.admin.passwordMode must be set to one of 'keepUpdated', 'initialOnlyNoReset', or 'initialOnlyRequireReset'. Received: '%s'" .Values.gitea.admin.passwordMode | fail }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/* Create a functioning probe object for rendering. Given argument must be either a livenessProbe, readinessProbe, or startupProbe */}}
|
||||||
|
{{- define "gitea.deployment.probe" -}}
|
||||||
|
{{- $probe := unset . "enabled" -}}
|
||||||
|
{{- $probeKeys := keys $probe -}}
|
||||||
|
{{- $containsCustomMethod := false -}}
|
||||||
|
{{- $chartDefaultMethod := "tcpSocket" -}}
|
||||||
|
{{- $nonChartDefaultMethods := list "exec" "httpGet" "grpc" -}}
|
||||||
|
{{- range $probeKeys -}}
|
||||||
|
{{- if has . $nonChartDefaultMethods -}}
|
||||||
|
{{- $containsCustomMethod = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $containsCustomMethod -}}
|
||||||
|
{{- $probe = unset . $chartDefaultMethod -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- toYaml $probe -}}
|
||||||
|
{{- end -}}
|
||||||
|
15
templates/gitea/act_runner/01-consistency-checks.yaml
Normal file
15
templates/gitea/act_runner/01-consistency-checks.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{{- if .Values.actions.enabled -}}
|
||||||
|
{{- if .Values.actions.provisioning.enabled -}}
|
||||||
|
{{- if not (and .Values.persistence.enabled .Values.persistence.mount) -}}
|
||||||
|
{{- fail "persistence.enabled and persistence.mount are required when provisioning is enabled" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if and .Values.persistence.enabled .Values.persistence.mount -}}
|
||||||
|
{{- if .Values.actions.existingSecret -}}
|
||||||
|
{{- fail "Can't specify both actions.provisioning.enabled and actions.existingSecret" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if and (not .Values.actions.provisioning.enabled) (or (empty .Values.actions.existingSecret) (empty .Values.actions.existingSecretKey)) -}}
|
||||||
|
{{- fail "actions.existingSecret and actions.existingSecretKey are required when provisioning is disabled" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
14
templates/gitea/act_runner/config-act-runner.yaml
Normal file
14
templates/gitea/act_runner/config-act-runner.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "gitea.fullname" . }}-act-runner-config
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
config.yaml: |
|
||||||
|
{{- with .Values.actions.statefulset.actRunner.config -}}
|
||||||
|
{{ . | nindent 4}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}
|
13
templates/gitea/act_runner/config-scripts.yaml
Normal file
13
templates/gitea/act_runner/config-scripts.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
{{- if and (and .Values.actions.provisioning.enabled .Values.persistence.enabled) .Values.persistence.mount }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "gitea.fullname" . }}-scripts
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
{{ (.Files.Glob "scripts/*.sh").AsConfig | indent 2 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
114
templates/gitea/act_runner/job.yaml
Normal file
114
templates/gitea/act_runner/job.yaml
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
{{- if and (and .Values.actions.provisioning.enabled .Values.persistence.enabled) .Values.persistence.mount }}
|
||||||
|
{{- $name := include "gitea.workername" (dict "global" . "worker" "actions-token-job") }}
|
||||||
|
{{- $secretName := include "gitea.workername" (dict "global" . "worker" "actions-token") }}
|
||||||
|
---
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
|
{{- with .Values.actions.provisioning.labels }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/component: token-job
|
||||||
|
annotations:
|
||||||
|
{{- with .Values.actions.provisioning.annotations }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
ttlSecondsAfterFinished: {{ .Values.actions.provisioning.ttlSecondsAfterFinished }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 8 }}
|
||||||
|
{{- with .Values.actions.provisioning.labels }}
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/component: token-job
|
||||||
|
spec:
|
||||||
|
initContainers:
|
||||||
|
- name: init-gitea
|
||||||
|
image: "{{ .Values.actions.init.image.repository }}:{{ .Values.actions.init.image.tag }}"
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
while ! nc -z {{ include "gitea.fullname" . }}-http {{ .Values.service.http.port }}; do
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
containers:
|
||||||
|
- name: actions-token-create
|
||||||
|
image: "{{ include "gitea.image" . }}"
|
||||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
|
env:
|
||||||
|
- name: GITEA_APP_INI
|
||||||
|
value: /data/gitea/conf/app.ini
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
echo "Generating act_runner token via 'gitea actions generate-runner-token'..."
|
||||||
|
mkdir -p /data/actions/
|
||||||
|
gitea actions generate-runner-token | grep -E '^.{40}$' | tr -d '\n' > /data/actions/token
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.actions.provisioning.resources | nindent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: data
|
||||||
|
mountPath: /data
|
||||||
|
{{- if .Values.persistence.subPath }}
|
||||||
|
subPath: {{ .Values.persistence.subPath }}
|
||||||
|
{{- end }}
|
||||||
|
- name: actions-token-upload
|
||||||
|
image: "{{ .Values.actions.provisioning.publish.repository }}:{{ .Values.actions.provisioning.publish.tag }}"
|
||||||
|
imagePullPolicy: {{ .Values.actions.provisioning.publish.pullPolicy }}
|
||||||
|
env:
|
||||||
|
- name: SECRET_NAME
|
||||||
|
value: {{ $secretName }}
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
printf "Checking rights to update kubernetes act_runner secret..."
|
||||||
|
kubectl auth can-i update secret/${SECRET_NAME}
|
||||||
|
/scripts/token.sh
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.actions.provisioning.resources | nindent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /scripts
|
||||||
|
name: scripts
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /data
|
||||||
|
name: data
|
||||||
|
readOnly: true
|
||||||
|
{{- if .Values.persistence.subPath }}
|
||||||
|
subPath: {{ .Values.persistence.subPath }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.actions.provisioning.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.actions.provisioning.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.actions.provisioning.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
restartPolicy: Never
|
||||||
|
serviceAccount: {{ $name }}
|
||||||
|
volumes:
|
||||||
|
- name: scripts
|
||||||
|
configMap:
|
||||||
|
name: {{ include "gitea.fullname" . }}-scripts
|
||||||
|
defaultMode: 0755
|
||||||
|
- name: data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: {{ .Values.persistence.claimName }}
|
||||||
|
parallelism: 1
|
||||||
|
completions: 1
|
||||||
|
backoffLimit: 1
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
25
templates/gitea/act_runner/role-job.yaml
Normal file
25
templates/gitea/act_runner/role-job.yaml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
{{- if and (and .Values.actions.provisioning.enabled .Values.persistence.enabled) .Values.persistence.mount }}
|
||||||
|
{{- $name := include "gitea.workername" (dict "global" . "worker" "actions-token-job") }}
|
||||||
|
{{- $secretName := include "gitea.workername" (dict "global" . "worker" "actions-token") }}
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: token-job
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- secrets
|
||||||
|
resourceNames:
|
||||||
|
- {{ $secretName }}
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
22
templates/gitea/act_runner/rolebinding-job.yaml
Normal file
22
templates/gitea/act_runner/rolebinding-job.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
{{- if and (and .Values.actions.provisioning.enabled .Values.persistence.enabled) .Values.persistence.mount }}
|
||||||
|
{{- $name := include "gitea.workername" (dict "global" . "worker" "actions-token-job") }}
|
||||||
|
{{- $secretName := include "gitea.workername" (dict "global" . "worker" "actions-token") }}
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: token-job
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: {{ $name }}
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: {{ $name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
19
templates/gitea/act_runner/secret-token.yaml
Normal file
19
templates/gitea/act_runner/secret-token.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
{{- if and (and .Values.actions.provisioning.enabled .Values.persistence.enabled) .Values.persistence.mount }}
|
||||||
|
{{- $name := include "gitea.workername" (dict "global" . "worker" "actions-token-job") }}
|
||||||
|
{{- $secretName := include "gitea.workername" (dict "global" . "worker" "actions-token") }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ $secretName }}
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: token-job
|
||||||
|
{{ $secret := (lookup "v1" "Secret" .Release.Namespace $secretName) -}}
|
||||||
|
{{ if $secret -}}
|
||||||
|
data:
|
||||||
|
token: {{ (b64dec (index $secret.data "token")) | b64enc }}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
13
templates/gitea/act_runner/serviceaccount-job.yaml
Normal file
13
templates/gitea/act_runner/serviceaccount-job.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
{{- if and (and .Values.actions.provisioning.enabled .Values.persistence.enabled) .Values.persistence.mount }}
|
||||||
|
{{- $name := include "gitea.workername" (dict "global" . "worker" "actions-token-job") }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ $name }}
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
|
app.kubernetes.io/component: token-job
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
117
templates/gitea/act_runner/statefulset.yaml
Normal file
117
templates/gitea/act_runner/statefulset.yaml
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
{{- if .Values.actions.enabled }}
|
||||||
|
{{- $secretName := include "gitea.workername" (dict "global" . "worker" "actions-token") }}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels.actRunner" . | nindent 4 }}
|
||||||
|
{{- with .Values.actions.statefulset.labels }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
annotations:
|
||||||
|
{{- with .Values.actions.statefulset.annotations }}
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
name: {{ include "gitea.fullname" . }}-act-runner
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "gitea.selectorLabels.actRunner" . | nindent 6 }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "gitea.labels.actRunner" . | nindent 8 }}
|
||||||
|
{{- with .Values.actions.statefulset.labels }}
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
initContainers:
|
||||||
|
- name: init-gitea
|
||||||
|
image: "{{ .Values.actions.init.image.repository }}:{{ .Values.actions.init.image.tag }}"
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
while ! nc -z {{ include "gitea.fullname" . }}-http {{ .Values.service.http.port }}; do
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
containers:
|
||||||
|
- name: act-runner
|
||||||
|
image: "{{ .Values.actions.statefulset.actRunner.repository }}:{{ .Values.actions.statefulset.actRunner.tag }}"
|
||||||
|
imagePullPolicy: {{ .Values.actions.statefulset.actRunner.pullPolicy }}
|
||||||
|
workingDir: /data
|
||||||
|
env:
|
||||||
|
- name: DOCKER_HOST
|
||||||
|
value: tcp://127.0.0.1:2376
|
||||||
|
- name: DOCKER_TLS_VERIFY
|
||||||
|
value: "1"
|
||||||
|
- name: DOCKER_CERT_PATH
|
||||||
|
value: /certs/server
|
||||||
|
- name: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Values.actions.existingSecret | default $secretName }}"
|
||||||
|
key: "{{ .Values.actions.existingSecretKey | default "token" }}"
|
||||||
|
- name: GITEA_INSTANCE_URL
|
||||||
|
value: {{ include "gitea.act_runner.local_root_url" . }}
|
||||||
|
- name: CONFIG_FILE
|
||||||
|
value: /actrunner/config.yaml
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.actions.statefulset.resources | nindent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /actrunner/config.yaml
|
||||||
|
name: act-runner-config
|
||||||
|
subPath: config.yaml
|
||||||
|
- mountPath: /certs/server
|
||||||
|
name: docker-certs
|
||||||
|
- mountPath: /data
|
||||||
|
name: data-act-runner
|
||||||
|
- name: dind
|
||||||
|
image: "{{ .Values.actions.statefulset.dind.repository }}:{{ .Values.actions.statefulset.dind.tag }}"
|
||||||
|
imagePullPolicy: {{ .Values.actions.statefulset.dind.pullPolicy }}
|
||||||
|
env:
|
||||||
|
- name: DOCKER_HOST
|
||||||
|
value: tcp://127.0.0.1:2376
|
||||||
|
- name: DOCKER_TLS_VERIFY
|
||||||
|
value: "1"
|
||||||
|
- name: DOCKER_CERT_PATH
|
||||||
|
value: /certs/server
|
||||||
|
{{- if .Values.actions.statefulset.dind.extraEnvs }}
|
||||||
|
{{- toYaml .Values.actions.statefulset.dind.extraEnvs | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.actions.statefulset.resources | nindent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /certs/server
|
||||||
|
name: docker-certs
|
||||||
|
{{- with .Values.actions.statefulset.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.actions.statefulset.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.actions.statefulset.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
- name: act-runner-config
|
||||||
|
configMap:
|
||||||
|
name: {{ include "gitea.fullname" . }}-act-runner-config
|
||||||
|
- name: docker-certs
|
||||||
|
emptyDir: {}
|
||||||
|
volumeClaimTemplates:
|
||||||
|
- metadata:
|
||||||
|
name: data-act-runner
|
||||||
|
spec:
|
||||||
|
accessModes: [ "ReadWriteOnce" ]
|
||||||
|
{{- include "gitea.persistence.storageClass" . | nindent 8 }}
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Mi
|
||||||
|
{{- end }}
|
@ -2,6 +2,7 @@ apiVersion: v1
|
|||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}-inline-config
|
name: {{ include "gitea.fullname" . }}-inline-config
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
type: Opaque
|
type: Opaque
|
||||||
@ -12,6 +13,7 @@ apiVersion: v1
|
|||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}
|
name: {{ include "gitea.fullname" . }}
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
type: Opaque
|
type: Opaque
|
||||||
|
@ -2,6 +2,7 @@ apiVersion: apps/v1
|
|||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}
|
name: {{ include "gitea.fullname" . }}
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
annotations:
|
annotations:
|
||||||
{{- if .Values.deployment.annotations }}
|
{{- if .Values.deployment.annotations }}
|
||||||
{{- toYaml .Values.deployment.annotations | nindent 4 }}
|
{{- toYaml .Values.deployment.annotations | nindent 4 }}
|
||||||
@ -311,15 +312,15 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.gitea.livenessProbe.enabled }}
|
{{- if .Values.gitea.livenessProbe.enabled }}
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
{{- toYaml (omit .Values.gitea.livenessProbe "enabled") | nindent 12 }}
|
{{- include "gitea.deployment.probe" .Values.gitea.livenessProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.gitea.readinessProbe.enabled }}
|
{{- if .Values.gitea.readinessProbe.enabled }}
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
{{- toYaml (omit .Values.gitea.readinessProbe "enabled") | nindent 12 }}
|
{{- include "gitea.deployment.probe" .Values.gitea.readinessProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.gitea.startupProbe.enabled }}
|
{{- if .Values.gitea.startupProbe.enabled }}
|
||||||
startupProbe:
|
startupProbe:
|
||||||
{{- toYaml (omit .Values.gitea.startupProbe "enabled") | nindent 12 }}
|
{{- include "gitea.deployment.probe" .Values.gitea.startupProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.resources | nindent 12 }}
|
{{- toYaml .Values.resources | nindent 12 }}
|
||||||
@ -339,6 +340,9 @@ spec:
|
|||||||
subPath: {{ .Values.persistence.subPath }}
|
subPath: {{ .Values.persistence.subPath }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- include "gitea.container-additional-mounts" . | nindent 12 }}
|
{{- include "gitea.container-additional-mounts" . | nindent 12 }}
|
||||||
|
{{- if .Values.extraContainers }}
|
||||||
|
{{- toYaml .Values.extraContainers | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.global.hostAliases }}
|
{{- with .Values.global.hostAliases }}
|
||||||
hostAliases:
|
hostAliases:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
|
@ -7,6 +7,7 @@ apiVersion: v1
|
|||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.gpg-key-secret-name" . }}
|
name: {{ include "gitea.gpg-key-secret-name" . }}
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
type: Opaque
|
type: Opaque
|
||||||
|
@ -2,6 +2,7 @@ apiVersion: v1
|
|||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}-http
|
name: {{ include "gitea.fullname" . }}-http
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
{{- if .Values.service.http.labels }}
|
{{- if .Values.service.http.labels }}
|
||||||
|
@ -13,6 +13,7 @@ apiVersion: {{ $apiVersion }}
|
|||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ $fullName }}
|
name: {{ $fullName }}
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
annotations:
|
annotations:
|
||||||
|
@ -2,6 +2,7 @@ apiVersion: v1
|
|||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}-init
|
name: {{ include "gitea.fullname" . }}-init
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
type: Opaque
|
type: Opaque
|
||||||
@ -24,27 +25,25 @@ stringData:
|
|||||||
# END: initPreScript
|
# END: initPreScript
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
{{- if not .Values.image.rootless }}
|
{{- if not .Values.image.rootless }}
|
||||||
chown 1000:1000 /data
|
chown -v 1000:1000 /data
|
||||||
{{- end }}
|
{{- end }}
|
||||||
mkdir -p /data/git/.ssh
|
mkdir -pv /data/git/.ssh
|
||||||
chmod -R 700 /data/git/.ssh
|
chmod -Rv 700 /data/git/.ssh
|
||||||
[ ! -d /data/gitea/conf ] && mkdir -p /data/gitea/conf
|
[ ! -d /data/gitea/conf ] && mkdir -pv /data/gitea/conf
|
||||||
|
|
||||||
# prepare temp directory structure
|
# prepare temp directory structure
|
||||||
mkdir -p "${GITEA_TEMP}"
|
mkdir -pv "${GITEA_TEMP}"
|
||||||
{{- if not .Values.image.rootless }}
|
{{- if not .Values.image.rootless }}
|
||||||
chown 1000:1000 "${GITEA_TEMP}"
|
chown -v 1000:1000 "${GITEA_TEMP}"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
chmod ug+rwx "${GITEA_TEMP}"
|
chmod -v ug+rwx "${GITEA_TEMP}"
|
||||||
|
|
||||||
{{ if .Values.signing.enabled -}}
|
{{ if .Values.signing.enabled -}}
|
||||||
if [ ! -d "${GNUPGHOME}" ]; then
|
if [ ! -d "${GNUPGHOME}" ]; then
|
||||||
mkdir -p "${GNUPGHOME}"
|
mkdir -pv "${GNUPGHOME}"
|
||||||
chmod 700 "${GNUPGHOME}"
|
chmod -v 700 "${GNUPGHOME}"
|
||||||
chown 1000:1000 "${GNUPGHOME}"
|
chown -v 1000:1000 "${GNUPGHOME}"
|
||||||
fi
|
fi
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ apiVersion: policy/v1beta1
|
|||||||
kind: PodDisruptionBudget
|
kind: PodDisruptionBudget
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}
|
name: {{ include "gitea.fullname" . }}
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
|
@ -3,7 +3,7 @@ kind: PersistentVolumeClaim
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ .Values.persistence.claimName }}
|
name: {{ .Values.persistence.claimName }}
|
||||||
namespace: {{ $.Release.Namespace }}
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ .Values.persistence.annotations | toYaml | indent 4}}
|
{{ .Values.persistence.annotations | toYaml | indent 4}}
|
||||||
labels:
|
labels:
|
||||||
|
@ -3,7 +3,7 @@ apiVersion: v1
|
|||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.serviceAccountName" . }}
|
name: {{ include "gitea.serviceAccountName" . }}
|
||||||
namespace: {{ .Release.Namespace | quote }}
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
{{- with .Values.serviceAccount.labels }}
|
{{- with .Values.serviceAccount.labels }}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
{{- if .Values.gitea.metrics.serviceMonitor.enabled -}}
|
{{- if and .Values.gitea.metrics.enabled .Values.gitea.metrics.serviceMonitor.enabled -}}
|
||||||
apiVersion: monitoring.coreos.com/v1
|
apiVersion: monitoring.coreos.com/v1
|
||||||
kind: ServiceMonitor
|
kind: ServiceMonitor
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}
|
name: {{ include "gitea.fullname" . }}
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
{{- if .Values.gitea.metrics.serviceMonitor.additionalLabels }}
|
{{- if .Values.gitea.metrics.serviceMonitor.additionalLabels }}
|
||||||
@ -14,4 +15,21 @@ spec:
|
|||||||
{{- include "gitea.selectorLabels" . | nindent 6 }}
|
{{- include "gitea.selectorLabels" . | nindent 6 }}
|
||||||
endpoints:
|
endpoints:
|
||||||
- port: http
|
- port: http
|
||||||
|
{{- if .Values.gitea.metrics.serviceMonitor.interval }}
|
||||||
|
interval: {{ .Values.gitea.metrics.serviceMonitor.interval }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.gitea.metrics.serviceMonitor.relabelings }}
|
||||||
|
relabelings:
|
||||||
|
{{- . | toYaml | nindent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.gitea.metrics.serviceMonitor.scheme }}
|
||||||
|
scheme: {{ .Values.gitea.metrics.serviceMonitor.scheme }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.gitea.metrics.serviceMonitor.scrapeTimeout }}
|
||||||
|
scrapeTimeout: {{ .Values.gitea.metrics.serviceMonitor.scrapeTimeout }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.gitea.metrics.serviceMonitor.tlsConfig }}
|
||||||
|
tlsConfig:
|
||||||
|
{{- . | toYaml | nindent 6 }}
|
||||||
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
@ -2,6 +2,7 @@ apiVersion: v1
|
|||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "gitea.fullname" . }}-ssh
|
name: {{ include "gitea.fullname" . }}-ssh
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "gitea.labels" . | nindent 4 }}
|
{{- include "gitea.labels" . | nindent 4 }}
|
||||||
{{- if .Values.service.ssh.labels }}
|
{{- if .Values.service.ssh.labels }}
|
||||||
|
@ -3,6 +3,7 @@ apiVersion: v1
|
|||||||
kind: Pod
|
kind: Pod
|
||||||
metadata:
|
metadata:
|
||||||
name: "{{ include "gitea.fullname" . }}-test-connection"
|
name: "{{ include "gitea.fullname" . }}-test-connection"
|
||||||
|
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{ include "gitea.labels" . | nindent 4 }}
|
{{ include "gitea.labels" . | nindent 4 }}
|
||||||
annotations:
|
annotations:
|
||||||
|
69
unittests/act_runner/01-consistency-checks.yaml
Normal file
69
unittests/act_runner/01-consistency-checks.yaml
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
suite: actions template | consistency checks
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/01-consistency-checks.yaml
|
||||||
|
tests:
|
||||||
|
- it: fails when provisioning is enabled BUT persistence is completely disabled
|
||||||
|
set:
|
||||||
|
persistence:
|
||||||
|
enabled: false
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "persistence.enabled and persistence.mount are required when provisioning is enabled"
|
||||||
|
- it: fails when provisioning is enabled BUT mount is disabled, although persistence is enabled
|
||||||
|
set:
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: false
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "persistence.enabled and persistence.mount are required when provisioning is enabled"
|
||||||
|
- it: fails when provisioning is enabled AND existingSecret is given
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
existingSecret: "secret-reference"
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "Can't specify both actions.provisioning.enabled and actions.existingSecret"
|
||||||
|
- it: fails when provisioning is disabled BUT existingSecret and existingSecretKey are missing
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: false
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "actions.existingSecret and actions.existingSecretKey are required when provisioning is disabled"
|
||||||
|
- it: fails when provisioning is disabled BUT existingSecretKey is missing
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: false
|
||||||
|
existingSecret: "my-secret"
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "actions.existingSecret and actions.existingSecretKey are required when provisioning is disabled"
|
||||||
|
- it: fails when provisioning is disabled BUT existingSecret is missing
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: false
|
||||||
|
existingSecretKey: "my-secret-key"
|
||||||
|
asserts:
|
||||||
|
- failedTemplate:
|
||||||
|
errorMessage: "actions.existingSecret and actions.existingSecretKey are required when provisioning is disabled"
|
45
unittests/act_runner/config-act-runner.yaml
Normal file
45
unittests/act_runner/config-act-runner.yaml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||||
|
suite: actions template | config-act-runner
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/config-act-runner.yaml
|
||||||
|
tests:
|
||||||
|
- it: doesn't renders a ConfigMap by default
|
||||||
|
template: templates/gitea/act_runner/config-act-runner.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders a ConfigMap
|
||||||
|
template: templates/gitea/act_runner/config-act-runner.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
statefulset:
|
||||||
|
actRunner:
|
||||||
|
config: |
|
||||||
|
log:
|
||||||
|
level: info
|
||||||
|
cache:
|
||||||
|
enabled: false
|
||||||
|
runner:
|
||||||
|
labels:
|
||||||
|
- "ubuntu-latest"
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: ConfigMap
|
||||||
|
apiVersion: v1
|
||||||
|
name: gitea-unittests-act-runner-config
|
||||||
|
- equal:
|
||||||
|
path: data["config.yaml"]
|
||||||
|
value: |
|
||||||
|
log:
|
||||||
|
level: info
|
||||||
|
cache:
|
||||||
|
enabled: false
|
||||||
|
runner:
|
||||||
|
labels:
|
||||||
|
- "ubuntu-latest"
|
49
unittests/act_runner/config-scripts.yaml
Normal file
49
unittests/act_runner/config-scripts.yaml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
suite: actions template | config-scripts
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/config-scripts.yaml
|
||||||
|
tests:
|
||||||
|
- it: renders a ConfigMap when all criteria are met
|
||||||
|
template: templates/gitea/act_runner/config-scripts.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: ConfigMap
|
||||||
|
apiVersion: v1
|
||||||
|
name: gitea-unittests-scripts
|
||||||
|
- isNotNullOrEmpty:
|
||||||
|
path: data["token.sh"]
|
||||||
|
- it: doesn't renders a ConfigMap by default
|
||||||
|
template: templates/gitea/act_runner/config-scripts.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: doesn't renders a ConfigMap with disabled actions but enabled provisioning
|
||||||
|
template: templates/gitea/act_runner/config-scripts.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: doesn't renders a ConfigMap with disabled actions but otherwise met criteria
|
||||||
|
template: templates/gitea/act_runner/config-scripts.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: false
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
65
unittests/act_runner/job.yaml
Normal file
65
unittests/act_runner/job.yaml
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
suite: actions template | job
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
chart:
|
||||||
|
# Override appVersion to have a pinned version for comparison
|
||||||
|
appVersion: 1.19.3
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/job.yaml
|
||||||
|
tests:
|
||||||
|
- it: renders a Job
|
||||||
|
template: templates/gitea/act_runner/job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: Job
|
||||||
|
apiVersion: batch/v1
|
||||||
|
name: gitea-unittests-actions-token-job
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].image
|
||||||
|
value: "gitea/gitea:1.19.3-rootless"
|
||||||
|
- it: tag override
|
||||||
|
template: templates/gitea/act_runner/job.yaml
|
||||||
|
set:
|
||||||
|
image.tag: "1.19.4"
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
publish:
|
||||||
|
tag: "1.29.0"
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].image
|
||||||
|
value: "gitea/gitea:1.19.4-rootless"
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[1].image
|
||||||
|
value: "bitnami/kubectl:1.29.0"
|
||||||
|
- it: doesn't renders a Job by default
|
||||||
|
template: templates/gitea/act_runner/job.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: doesn't renders a Job when provisioning is enabled BUT actions are not enabled
|
||||||
|
template: templates/gitea/act_runner/job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: false
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
42
unittests/act_runner/role-job.yaml
Normal file
42
unittests/act_runner/role-job.yaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
suite: actions template | role-job
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/role-job.yaml
|
||||||
|
tests:
|
||||||
|
- it: doesn't renders a Role by default
|
||||||
|
template: templates/gitea/act_runner/role-job.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders a Role
|
||||||
|
template: templates/gitea/act_runner/role-job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: Role
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
name: gitea-unittests-actions-token-job
|
||||||
|
- it: doesn't renders a Role when criteria met BUT actions are not enabled
|
||||||
|
template: templates/gitea/act_runner/role-job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: false
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
42
unittests/act_runner/rolebinding-job.yaml
Normal file
42
unittests/act_runner/rolebinding-job.yaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
suite: actions template | rolebinding-job
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/rolebinding-job.yaml
|
||||||
|
tests:
|
||||||
|
- it: doesn't renders a RoleBinding by default
|
||||||
|
template: templates/gitea/act_runner/rolebinding-job.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders a RoleBinding
|
||||||
|
template: templates/gitea/act_runner/rolebinding-job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: RoleBinding
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
name: gitea-unittests-actions-token-job
|
||||||
|
- it: doesn't renders a RoleBinding when criteria met BUT actions are not enabled
|
||||||
|
template: templates/gitea/act_runner/rolebinding-job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: false
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
42
unittests/act_runner/secret-token.yaml
Normal file
42
unittests/act_runner/secret-token.yaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
suite: actions template | secret-token
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/secret-token.yaml
|
||||||
|
tests:
|
||||||
|
- it: doesn't renders a Secret by default
|
||||||
|
template: templates/gitea/act_runner/secret-token.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders a Secret
|
||||||
|
template: templates/gitea/act_runner/secret-token.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: Secret
|
||||||
|
apiVersion: v1
|
||||||
|
name: gitea-unittests-actions-token
|
||||||
|
- it: doesn't renders a Secret when criteria met BUT actions are not enabled
|
||||||
|
template: templates/gitea/act_runner/secret-token.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: false
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
42
unittests/act_runner/serviceaccount-job.yaml
Normal file
42
unittests/act_runner/serviceaccount-job.yaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
suite: actions template | serviceaccount-job
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/serviceaccount-job.yaml
|
||||||
|
tests:
|
||||||
|
- it: doesn't renders a ServiceAccount by default
|
||||||
|
template: templates/gitea/act_runner/serviceaccount-job.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders a ServiceAccount
|
||||||
|
template: templates/gitea/act_runner/serviceaccount-job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: ServiceAccount
|
||||||
|
apiVersion: v1
|
||||||
|
name: gitea-unittests-actions-token-job
|
||||||
|
- it: doesn't renders a ServiceAccount when criteria met BUT actions are not enabled
|
||||||
|
template: templates/gitea/act_runner/serviceaccount-job.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: false
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mount: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
111
unittests/act_runner/statefulset.yaml
Normal file
111
unittests/act_runner/statefulset.yaml
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
suite: actions template | statefulset
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/act_runner/statefulset.yaml
|
||||||
|
tests:
|
||||||
|
- it: doesn't renders a StatefulSet by default
|
||||||
|
template: templates/gitea/act_runner/statefulset.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders a StatefulSet (with given existingSecret/existingSecretKey)
|
||||||
|
template: templates/gitea/act_runner/statefulset.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
existingSecret: "my-secret"
|
||||||
|
existingSecretKey: "my-secret-key"
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[3]
|
||||||
|
value:
|
||||||
|
name: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "my-secret"
|
||||||
|
key: "my-secret-key"
|
||||||
|
- it: renders a StatefulSet (with secret reference defaults for enabled provisioning)
|
||||||
|
template: templates/gitea/act_runner/statefulset.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[3]
|
||||||
|
value:
|
||||||
|
name: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "gitea-unittests-actions-token"
|
||||||
|
key: "token"
|
||||||
|
- it: renders a StatefulSet (with correct GITEA_INSTANCE_URL env with default act-runner specific LOCAL_ROOT_URL)
|
||||||
|
template: templates/gitea/act_runner/statefulset.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
existingSecret: "my-secret"
|
||||||
|
existingSecretKey: "my-secret-key"
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[4]
|
||||||
|
value:
|
||||||
|
name: GITEA_INSTANCE_URL
|
||||||
|
value: "http://gitea-unittests-http:3000"
|
||||||
|
- it: renders a StatefulSet (with correct GITEA_INSTANCE_URL env from customized LOCAL_ROOT_URL)
|
||||||
|
template: templates/gitea/act_runner/statefulset.yaml
|
||||||
|
set:
|
||||||
|
gitea.config.server.LOCAL_ROOT_URL: "http://git.example.com"
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
existingSecret: "my-secret"
|
||||||
|
existingSecretKey: "my-secret-key"
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[4]
|
||||||
|
value:
|
||||||
|
name: GITEA_INSTANCE_URL
|
||||||
|
value: "http://git.example.com"
|
||||||
|
- it: allows adding custom environment variables to the docker-in-docker container
|
||||||
|
template: templates/gitea/act_runner/statefulset.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
statefulset:
|
||||||
|
dind:
|
||||||
|
extraEnvs:
|
||||||
|
- name: "CUSTOM_ENV_NAME"
|
||||||
|
value: "custom env value"
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[1].env[3]
|
||||||
|
value:
|
||||||
|
name: "CUSTOM_ENV_NAME"
|
||||||
|
value: "custom env value"
|
61
unittests/config/actions-config.yaml
Normal file
61
unittests/config/actions-config.yaml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
suite: config template | actions config
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/config.yaml
|
||||||
|
tests:
|
||||||
|
- it: "actions are not enabled by default"
|
||||||
|
template: templates/gitea/config.yaml
|
||||||
|
asserts:
|
||||||
|
- documentIndex: 0
|
||||||
|
equal:
|
||||||
|
path: stringData.actions
|
||||||
|
value: |-
|
||||||
|
ENABLED=false
|
||||||
|
|
||||||
|
- it: "actions can be enabled via inline config"
|
||||||
|
template: templates/gitea/config.yaml
|
||||||
|
set:
|
||||||
|
gitea.config.actions.ENABLED: true
|
||||||
|
asserts:
|
||||||
|
- documentIndex: 0
|
||||||
|
equal:
|
||||||
|
path: stringData.actions
|
||||||
|
value: |-
|
||||||
|
ENABLED=true
|
||||||
|
|
||||||
|
- it: "actions can be enabled via dedicated values object"
|
||||||
|
template: templates/gitea/config.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- documentIndex: 0
|
||||||
|
equal:
|
||||||
|
path: stringData.actions
|
||||||
|
value: |-
|
||||||
|
ENABLED=true
|
||||||
|
|
||||||
|
- it: "defines LOCAL_ROOT_URL when actions are enabled"
|
||||||
|
template: templates/gitea/config.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- documentIndex: 0
|
||||||
|
matchRegex:
|
||||||
|
path: stringData.server
|
||||||
|
pattern: \nLOCAL_ROOT_URL=http://gitea-unittests-http:3000
|
||||||
|
|
||||||
|
- it: "respects custom LOCAL_ROOT_URL, even when actions are enabled"
|
||||||
|
template: templates/gitea/config.yaml
|
||||||
|
set:
|
||||||
|
actions:
|
||||||
|
enabled: true
|
||||||
|
gitea.config.server.LOCAL_ROOT_URL: "http://git.example.com"
|
||||||
|
asserts:
|
||||||
|
- documentIndex: 0
|
||||||
|
matchRegex:
|
||||||
|
path: stringData.server
|
||||||
|
pattern: \nLOCAL_ROOT_URL=http://git.example.com
|
188
unittests/deployment/probes.yaml
Normal file
188
unittests/deployment/probes.yaml
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
suite: deployment template (probes)
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/deployment.yaml
|
||||||
|
- templates/gitea/config.yaml
|
||||||
|
tests:
|
||||||
|
- it: renders default liveness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe.enabled
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 10
|
||||||
|
initialDelaySeconds: 200
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 1
|
||||||
|
- it: renders default readiness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe.enabled
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 3
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 1
|
||||||
|
- it: does not render a default startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
- it: allows enabling a startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea.startupProbe.enabled: true
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe.enabled
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 10
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 1
|
||||||
|
|
||||||
|
- it: allows overwriting the default port of the liveness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
asserts:
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe
|
||||||
|
content:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
|
||||||
|
- it: allows overwriting the default port of the readiness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
asserts:
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe
|
||||||
|
content:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
|
||||||
|
- it: allows overwriting the default port of the startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
startupProbe:
|
||||||
|
enabled: true
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
asserts:
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
content:
|
||||||
|
tcpSocket:
|
||||||
|
port: my-port
|
||||||
|
|
||||||
|
- it: allows using a non-default method as liveness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
failureThreshold: 13375
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe.tcpSocket
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].livenessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 13375
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
|
||||||
|
- it: allows using a non-default method as readiness probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
failureThreshold: 13375
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe.tcpSocket
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].readinessProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 13375
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
|
||||||
|
- it: allows using a non-default method as startup probe
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
gitea:
|
||||||
|
startupProbe:
|
||||||
|
enabled: true
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
timeoutSeconds: 13372
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
failureThreshold: 13375
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe.tcpSocket
|
||||||
|
- isSubset:
|
||||||
|
path: spec.template.spec.containers[0].startupProbe
|
||||||
|
content:
|
||||||
|
failureThreshold: 13375
|
||||||
|
initialDelaySeconds: 13371
|
||||||
|
periodSeconds: 13373
|
||||||
|
successThreshold: 13374
|
||||||
|
httpGet:
|
||||||
|
path: /api/healthz
|
||||||
|
port: http
|
||||||
|
timeoutSeconds: 13372
|
21
unittests/deployment/sidecar-container.yaml
Normal file
21
unittests/deployment/sidecar-container.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
suite: sidecar container
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/deployment.yaml
|
||||||
|
- templates/gitea/config.yaml
|
||||||
|
tests:
|
||||||
|
- it: supports adding a sidecar container
|
||||||
|
template: templates/gitea/deployment.yaml
|
||||||
|
set:
|
||||||
|
extraContainers:
|
||||||
|
- name: sidecar-bob
|
||||||
|
image: busybox
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[1].name
|
||||||
|
value: "sidecar-bob"
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[1].image
|
||||||
|
value: "busybox"
|
@ -28,15 +28,13 @@ tests:
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
mkdir -pv /data/git/.ssh
|
||||||
set -x
|
chmod -Rv 700 /data/git/.ssh
|
||||||
mkdir -p /data/git/.ssh
|
[ ! -d /data/gitea/conf ] && mkdir -pv /data/gitea/conf
|
||||||
chmod -R 700 /data/git/.ssh
|
|
||||||
[ ! -d /data/gitea/conf ] && mkdir -p /data/gitea/conf
|
|
||||||
|
|
||||||
# prepare temp directory structure
|
# prepare temp directory structure
|
||||||
mkdir -p "${GITEA_TEMP}"
|
mkdir -pv "${GITEA_TEMP}"
|
||||||
chmod ug+rwx "${GITEA_TEMP}"
|
chmod -v ug+rwx "${GITEA_TEMP}"
|
||||||
- it: adds gpg script block for enabled signing
|
- it: adds gpg script block for enabled signing
|
||||||
set:
|
set:
|
||||||
signing.enabled: true
|
signing.enabled: true
|
||||||
@ -51,20 +49,18 @@ tests:
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
mkdir -pv /data/git/.ssh
|
||||||
set -x
|
chmod -Rv 700 /data/git/.ssh
|
||||||
mkdir -p /data/git/.ssh
|
[ ! -d /data/gitea/conf ] && mkdir -pv /data/gitea/conf
|
||||||
chmod -R 700 /data/git/.ssh
|
|
||||||
[ ! -d /data/gitea/conf ] && mkdir -p /data/gitea/conf
|
|
||||||
|
|
||||||
# prepare temp directory structure
|
# prepare temp directory structure
|
||||||
mkdir -p "${GITEA_TEMP}"
|
mkdir -pv "${GITEA_TEMP}"
|
||||||
chmod ug+rwx "${GITEA_TEMP}"
|
chmod -v ug+rwx "${GITEA_TEMP}"
|
||||||
|
|
||||||
if [ ! -d "${GNUPGHOME}" ]; then
|
if [ ! -d "${GNUPGHOME}" ]; then
|
||||||
mkdir -p "${GNUPGHOME}"
|
mkdir -pv "${GNUPGHOME}"
|
||||||
chmod 700 "${GNUPGHOME}"
|
chmod -v 700 "${GNUPGHOME}"
|
||||||
chown 1000:1000 "${GNUPGHOME}"
|
chown -v 1000:1000 "${GNUPGHOME}"
|
||||||
fi
|
fi
|
||||||
- it: it does not chown /data even when image.fullOverride is set
|
- it: it does not chown /data even when image.fullOverride is set
|
||||||
template: templates/gitea/init.yaml
|
template: templates/gitea/init.yaml
|
||||||
@ -77,12 +73,10 @@ tests:
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
mkdir -pv /data/git/.ssh
|
||||||
set -x
|
chmod -Rv 700 /data/git/.ssh
|
||||||
mkdir -p /data/git/.ssh
|
[ ! -d /data/gitea/conf ] && mkdir -pv /data/gitea/conf
|
||||||
chmod -R 700 /data/git/.ssh
|
|
||||||
[ ! -d /data/gitea/conf ] && mkdir -p /data/gitea/conf
|
|
||||||
|
|
||||||
# prepare temp directory structure
|
# prepare temp directory structure
|
||||||
mkdir -p "${GITEA_TEMP}"
|
mkdir -pv "${GITEA_TEMP}"
|
||||||
chmod ug+rwx "${GITEA_TEMP}"
|
chmod -v ug+rwx "${GITEA_TEMP}"
|
||||||
|
@ -31,17 +31,15 @@ tests:
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
chown -v 1000:1000 /data
|
||||||
set -x
|
mkdir -pv /data/git/.ssh
|
||||||
chown 1000:1000 /data
|
chmod -Rv 700 /data/git/.ssh
|
||||||
mkdir -p /data/git/.ssh
|
[ ! -d /data/gitea/conf ] && mkdir -pv /data/gitea/conf
|
||||||
chmod -R 700 /data/git/.ssh
|
|
||||||
[ ! -d /data/gitea/conf ] && mkdir -p /data/gitea/conf
|
|
||||||
|
|
||||||
# prepare temp directory structure
|
# prepare temp directory structure
|
||||||
mkdir -p "${GITEA_TEMP}"
|
mkdir -pv "${GITEA_TEMP}"
|
||||||
chown 1000:1000 "${GITEA_TEMP}"
|
chown -v 1000:1000 "${GITEA_TEMP}"
|
||||||
chmod ug+rwx "${GITEA_TEMP}"
|
chmod -v ug+rwx "${GITEA_TEMP}"
|
||||||
- it: adds gpg script block for enabled signing
|
- it: adds gpg script block for enabled signing
|
||||||
set:
|
set:
|
||||||
image.rootless: false
|
image.rootless: false
|
||||||
@ -57,20 +55,18 @@ tests:
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
chown -v 1000:1000 /data
|
||||||
set -x
|
mkdir -pv /data/git/.ssh
|
||||||
chown 1000:1000 /data
|
chmod -Rv 700 /data/git/.ssh
|
||||||
mkdir -p /data/git/.ssh
|
[ ! -d /data/gitea/conf ] && mkdir -pv /data/gitea/conf
|
||||||
chmod -R 700 /data/git/.ssh
|
|
||||||
[ ! -d /data/gitea/conf ] && mkdir -p /data/gitea/conf
|
|
||||||
|
|
||||||
# prepare temp directory structure
|
# prepare temp directory structure
|
||||||
mkdir -p "${GITEA_TEMP}"
|
mkdir -pv "${GITEA_TEMP}"
|
||||||
chown 1000:1000 "${GITEA_TEMP}"
|
chown -v 1000:1000 "${GITEA_TEMP}"
|
||||||
chmod ug+rwx "${GITEA_TEMP}"
|
chmod -v ug+rwx "${GITEA_TEMP}"
|
||||||
|
|
||||||
if [ ! -d "${GNUPGHOME}" ]; then
|
if [ ! -d "${GNUPGHOME}" ]; then
|
||||||
mkdir -p "${GNUPGHOME}"
|
mkdir -pv "${GNUPGHOME}"
|
||||||
chmod 700 "${GNUPGHOME}"
|
chmod -v 700 "${GNUPGHOME}"
|
||||||
chown 1000:1000 "${GNUPGHOME}"
|
chown -v 1000:1000 "${GNUPGHOME}"
|
||||||
fi
|
fi
|
||||||
|
89
unittests/servicemonitor/basic.yaml
Normal file
89
unittests/servicemonitor/basic.yaml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
suite: ServiceMonitor template (basic)
|
||||||
|
release:
|
||||||
|
name: gitea-unittests
|
||||||
|
namespace: testing
|
||||||
|
templates:
|
||||||
|
- templates/gitea/servicemonitor.yaml
|
||||||
|
tests:
|
||||||
|
- it: skips rendering by default
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders default ServiceMonitor object with gitea.metrics.enabled=true
|
||||||
|
set:
|
||||||
|
gitea.metrics.enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders default ServiceMonitor object with gitea.metrics.serviceMonitor.enabled=true
|
||||||
|
set:
|
||||||
|
gitea.metrics.serviceMonitor.enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
- it: renders defaults
|
||||||
|
set:
|
||||||
|
gitea.metrics.enabled: true
|
||||||
|
gitea.metrics.serviceMonitor.enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: ServiceMonitor
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
name: gitea-unittests
|
||||||
|
- notExists:
|
||||||
|
path: metadata.annotations
|
||||||
|
- notExists:
|
||||||
|
path: spec.endpoints[0].interval
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].port
|
||||||
|
value: http
|
||||||
|
- notExists:
|
||||||
|
path: spec.endpoints[0].scheme
|
||||||
|
- notExists:
|
||||||
|
path: spec.endpoints[0].scrapeTimeout
|
||||||
|
- notExists:
|
||||||
|
path: spec.endpoints[0].tlsConfig
|
||||||
|
- it: renders custom scrape interval
|
||||||
|
set:
|
||||||
|
gitea.metrics.enabled: true
|
||||||
|
gitea.metrics.serviceMonitor.enabled: true
|
||||||
|
gitea.metrics.serviceMonitor.interval: 30s
|
||||||
|
gitea.metrics.serviceMonitor.scrapeTimeout: 5s
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].interval
|
||||||
|
value: 30s
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].scrapeTimeout
|
||||||
|
value: 5s
|
||||||
|
- it: renders custom tls config
|
||||||
|
set:
|
||||||
|
gitea.metrics.enabled: true
|
||||||
|
gitea.metrics.serviceMonitor.enabled: true
|
||||||
|
gitea.metrics.serviceMonitor.scheme: https
|
||||||
|
gitea.metrics.serviceMonitor.tlsConfig.caFile: /etc/prometheus/tls/ca.crt
|
||||||
|
gitea.metrics.serviceMonitor.tlsConfig.certFile: /etc/prometheus/tls/tls.crt
|
||||||
|
gitea.metrics.serviceMonitor.tlsConfig.keyFile: /etc/prometheus/tls/tls.key
|
||||||
|
gitea.metrics.serviceMonitor.tlsConfig.insecureSkipVerify: false
|
||||||
|
gitea.metrics.serviceMonitor.tlsConfig.serverName: gitea-unittest
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].scheme
|
||||||
|
value: https
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].tlsConfig.caFile
|
||||||
|
value: /etc/prometheus/tls/ca.crt
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].tlsConfig.certFile
|
||||||
|
value: /etc/prometheus/tls/tls.crt
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].tlsConfig.keyFile
|
||||||
|
value: /etc/prometheus/tls/tls.key
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].tlsConfig.insecureSkipVerify
|
||||||
|
value: false
|
||||||
|
- equal:
|
||||||
|
path: spec.endpoints[0].tlsConfig.serverName
|
||||||
|
value: gitea-unittest
|
124
values.yaml
124
values.yaml
@ -20,6 +20,9 @@ global:
|
|||||||
# hostnames:
|
# hostnames:
|
||||||
# - example.com
|
# - example.com
|
||||||
|
|
||||||
|
## @param namespace An explicit namespace to deploy gitea into. Defaults to the release namespace if not specified
|
||||||
|
namespace: ""
|
||||||
|
|
||||||
## @param replicaCount number of replicas for the deployment
|
## @param replicaCount number of replicas for the deployment
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|
||||||
@ -280,6 +283,12 @@ persistence:
|
|||||||
annotations:
|
annotations:
|
||||||
helm.sh/resource-policy: keep
|
helm.sh/resource-policy: keep
|
||||||
|
|
||||||
|
## @param extraContainers Additional sidecar containers to run in the pod
|
||||||
|
extraContainers: []
|
||||||
|
# - name: sidecar-bob
|
||||||
|
# image: busybox
|
||||||
|
# command: [/bin/sh, -c, 'echo "Hello world"; sleep 86400']
|
||||||
|
|
||||||
## @param extraVolumes Additional volumes to mount to the Gitea deployment
|
## @param extraVolumes Additional volumes to mount to the Gitea deployment
|
||||||
extraVolumes: []
|
extraVolumes: []
|
||||||
# - name: postgres-ssl-vol
|
# - name: postgres-ssl-vol
|
||||||
@ -339,6 +348,102 @@ signing:
|
|||||||
# -----END PGP PRIVATE KEY BLOCK-----
|
# -----END PGP PRIVATE KEY BLOCK-----
|
||||||
existingSecret: ""
|
existingSecret: ""
|
||||||
|
|
||||||
|
# Configure Gitea Actions
|
||||||
|
# - must enable persistence if the job is enabled
|
||||||
|
## @section Gitea Actions
|
||||||
|
#
|
||||||
|
## @param actions.enabled Create an act runner StatefulSet.
|
||||||
|
## @param actions.init.image.repository The image used for the init containers
|
||||||
|
## @param actions.init.image.tag The image tag used for the init containers
|
||||||
|
## @param actions.statefulset.annotations Act runner annotations
|
||||||
|
## @param actions.statefulset.labels Act runner labels
|
||||||
|
## @param actions.statefulset.resources Act runner resources
|
||||||
|
## @param actions.statefulset.nodeSelector NodeSelector for the statefulset
|
||||||
|
## @param actions.statefulset.tolerations Tolerations for the statefulset
|
||||||
|
## @param actions.statefulset.affinity Affinity for the statefulset
|
||||||
|
## @param actions.statefulset.actRunner.repository The Gitea act runner image
|
||||||
|
## @param actions.statefulset.actRunner.tag The Gitea act runner tag
|
||||||
|
## @param actions.statefulset.actRunner.pullPolicy The Gitea act runner pullPolicy
|
||||||
|
## @param actions.statefulset.actRunner.config [default: Too complex. See values.yaml] Act runner custom configuration. See [Act Runner documentation](https://docs.gitea.com/usage/actions/act-runner#configuration) for details.
|
||||||
|
## @param actions.statefulset.dind.repository The Docker-in-Docker image
|
||||||
|
## @param actions.statefulset.dind.tag The Docker-in-Docker image tag
|
||||||
|
## @param actions.statefulset.dind.pullPolicy The Docker-in-Docker pullPolicy
|
||||||
|
## @param actions.statefulset.dind.extraEnvs Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY`
|
||||||
|
## @param actions.provisioning.enabled Create a job that will create and save the token in a Kubernetes Secret
|
||||||
|
## @param actions.provisioning.annotations Job's annotations
|
||||||
|
## @param actions.provisioning.labels Job's labels
|
||||||
|
## @param actions.provisioning.resources Job's resources
|
||||||
|
## @param actions.provisioning.nodeSelector NodeSelector for the job
|
||||||
|
## @param actions.provisioning.tolerations Tolerations for the job
|
||||||
|
## @param actions.provisioning.affinity Affinity for the job
|
||||||
|
## @param actions.provisioning.ttlSecondsAfterFinished ttl for the job after finished in order to allow helm to properly recognize that the job completed
|
||||||
|
## @param actions.provisioning.publish.repository The image that can create the secret via kubectl
|
||||||
|
## @param actions.provisioning.publish.tag The publish image tag that can create the secret
|
||||||
|
## @param actions.provisioning.publish.pullPolicy The publish image pullPolicy that can create the secret
|
||||||
|
## @param actions.existingSecret Secret that contains the token
|
||||||
|
## @param actions.existingSecretKey Secret key
|
||||||
|
actions:
|
||||||
|
enabled: false
|
||||||
|
statefulset:
|
||||||
|
annotations: {}
|
||||||
|
labels: {}
|
||||||
|
resources: {}
|
||||||
|
nodeSelector: {}
|
||||||
|
tolerations: []
|
||||||
|
affinity: {}
|
||||||
|
|
||||||
|
actRunner:
|
||||||
|
repository: gitea/act_runner
|
||||||
|
tag: 0.2.11
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
config: |
|
||||||
|
log:
|
||||||
|
level: debug
|
||||||
|
cache:
|
||||||
|
enabled: false
|
||||||
|
runner:
|
||||||
|
labels:
|
||||||
|
- "ubuntu-latest"
|
||||||
|
|
||||||
|
dind:
|
||||||
|
repository: docker
|
||||||
|
tag: 25.0.2-dind
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
# If the container keeps crashing in your environment, you might have to add the `DOCKER_IPTABLES_LEGACY` environment variable.
|
||||||
|
# See https://github.com/docker-library/docker/issues/463#issuecomment-1881909456
|
||||||
|
extraEnvs: []
|
||||||
|
# - name: "DOCKER_IPTABLES_LEGACY"
|
||||||
|
# value: "1"
|
||||||
|
|
||||||
|
init:
|
||||||
|
image:
|
||||||
|
repository: busybox
|
||||||
|
# Overrides the image tag whose default is the chart appVersion.
|
||||||
|
tag: "1.36.1"
|
||||||
|
|
||||||
|
provisioning:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
annotations: {}
|
||||||
|
labels: {}
|
||||||
|
resources: {}
|
||||||
|
nodeSelector: {}
|
||||||
|
tolerations: []
|
||||||
|
affinity: {}
|
||||||
|
|
||||||
|
publish:
|
||||||
|
repository: bitnami/kubectl
|
||||||
|
tag: 1.29.0
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
ttlSecondsAfterFinished: 300
|
||||||
|
|
||||||
|
## Specify an existing token secret
|
||||||
|
##
|
||||||
|
existingSecret: ""
|
||||||
|
existingSecretKey: ""
|
||||||
|
|
||||||
## @section Gitea
|
## @section Gitea
|
||||||
#
|
#
|
||||||
gitea:
|
gitea:
|
||||||
@ -356,13 +461,23 @@ gitea:
|
|||||||
passwordMode: keepUpdated
|
passwordMode: keepUpdated
|
||||||
|
|
||||||
## @param gitea.metrics.enabled Enable Gitea metrics
|
## @param gitea.metrics.enabled Enable Gitea metrics
|
||||||
## @param gitea.metrics.serviceMonitor.enabled Enable Gitea metrics service monitor
|
## @param gitea.metrics.serviceMonitor.enabled Enable Gitea metrics service monitor. Requires, that `gitea.metrics.enabled` is also set to true, to enable metrics generally.
|
||||||
|
## @param gitea.metrics.serviceMonitor.interval Interval at which metrics should be scraped. If not specified Prometheus' global scrape interval is used.
|
||||||
|
## @param gitea.metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping.
|
||||||
|
## @param gitea.metrics.serviceMonitor.scheme HTTP scheme to use for scraping. For example `http` or `https`. Default is http.
|
||||||
|
## @param gitea.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended. If not specified, global Prometheus scrape timeout is used.
|
||||||
|
## @param gitea.metrics.serviceMonitor.tlsConfig TLS configuration to use when scraping the metric endpoint by Prometheus.
|
||||||
metrics:
|
metrics:
|
||||||
enabled: false
|
enabled: false
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: false
|
enabled: false
|
||||||
# additionalLabels:
|
# additionalLabels:
|
||||||
# prometheus-release: prom1
|
# prometheus-release: prom1
|
||||||
|
interval: ""
|
||||||
|
relabelings: []
|
||||||
|
scheme: ""
|
||||||
|
scrapeTimeout: ""
|
||||||
|
tlsConfig: {}
|
||||||
|
|
||||||
## @param gitea.ldap LDAP configuration
|
## @param gitea.ldap LDAP configuration
|
||||||
ldap:
|
ldap:
|
||||||
@ -488,6 +603,8 @@ gitea:
|
|||||||
|
|
||||||
## @section redis-cluster
|
## @section redis-cluster
|
||||||
## @param redis-cluster.enabled Enable redis cluster
|
## @param redis-cluster.enabled Enable redis cluster
|
||||||
|
# ⚠️ The redis charts do not work well with special characters in the password (<https://gitea.com/gitea/helm-chart/issues/690>).
|
||||||
|
# Consider omitting such or open an issue in the Bitnami repo and let us know once this got fixed.
|
||||||
## @param redis-cluster.usePassword Whether to use password authentication
|
## @param redis-cluster.usePassword Whether to use password authentication
|
||||||
## @param redis-cluster.cluster.nodes Number of redis cluster master nodes
|
## @param redis-cluster.cluster.nodes Number of redis cluster master nodes
|
||||||
## @param redis-cluster.cluster.replicas Number of redis cluster master node replicas
|
## @param redis-cluster.cluster.replicas Number of redis cluster master node replicas
|
||||||
@ -504,6 +621,8 @@ redis-cluster:
|
|||||||
## @section redis
|
## @section redis
|
||||||
## @param redis.enabled Enable redis standalone or replicated
|
## @param redis.enabled Enable redis standalone or replicated
|
||||||
## @param redis.architecture Whether to use standalone or replication
|
## @param redis.architecture Whether to use standalone or replication
|
||||||
|
# ⚠️ The redis charts do not work well with special characters in the password (<https://gitea.com/gitea/helm-chart/issues/690>).
|
||||||
|
# Consider omitting such or open an issue in the Bitnami repo and let us know once this got fixed.
|
||||||
## @param redis.global.redis.password Required password
|
## @param redis.global.redis.password Required password
|
||||||
## @param redis.master.count Number of Redis master instances to deploy
|
## @param redis.master.count Number of Redis master instances to deploy
|
||||||
## @descriptionStart
|
## @descriptionStart
|
||||||
@ -529,7 +648,7 @@ redis:
|
|||||||
## @param postgresql-ha.postgresql.postgresPassword postgres Password
|
## @param postgresql-ha.postgresql.postgresPassword postgres Password
|
||||||
## @param postgresql-ha.pgpool.adminPassword pgpool adminPassword
|
## @param postgresql-ha.pgpool.adminPassword pgpool adminPassword
|
||||||
## @param postgresql-ha.service.ports.postgresql PostgreSQL service port (overrides `service.ports.postgresql`)
|
## @param postgresql-ha.service.ports.postgresql PostgreSQL service port (overrides `service.ports.postgresql`)
|
||||||
## @param postgresql-ha.primary.persistence.size PVC Storage Request for PostgreSQL HA volume
|
## @param postgresql-ha.persistence.size PVC Storage Request for PostgreSQL HA volume
|
||||||
postgresql-ha:
|
postgresql-ha:
|
||||||
global:
|
global:
|
||||||
postgresql:
|
postgresql:
|
||||||
@ -546,7 +665,6 @@ postgresql-ha:
|
|||||||
service:
|
service:
|
||||||
ports:
|
ports:
|
||||||
postgresql: 5432
|
postgresql: 5432
|
||||||
primary:
|
|
||||||
persistence:
|
persistence:
|
||||||
size: 10Gi
|
size: 10Gi
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user