mirror of
https://gitea.com/gitea/helm-actions.git
synced 2026-07-16 19:24:46 +00:00
Compare commits
1 Commits
feat/custo
...
306fcb1bf2
| Author | SHA1 | Date | |
|---|---|---|---|
| 306fcb1bf2 |
@ -8,12 +8,12 @@ on:
|
||||
jobs:
|
||||
changelog:
|
||||
runs-on: ubuntu-latest
|
||||
container: docker.io/thegeeklab/git-sv:2.1.3
|
||||
container: docker.io/thegeeklab/git-sv:2.1.0
|
||||
steps:
|
||||
- name: install tools
|
||||
run: |
|
||||
apk add -q --update --no-cache nodejs curl jq sed
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Generate upcoming changelog
|
||||
|
||||
@ -11,9 +11,9 @@ on:
|
||||
jobs:
|
||||
check-and-test:
|
||||
runs-on: ubuntu-latest
|
||||
container: commitlint/commitlint:21.1.0
|
||||
container: commitlint/commitlint:20.5.3
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v6
|
||||
- name: check PR title
|
||||
run: |
|
||||
echo "${{ gitea.event.pull_request.title }}" | commitlint --config .commitlintrc.json
|
||||
|
||||
@ -7,13 +7,13 @@ on:
|
||||
|
||||
env:
|
||||
# renovate: datasource=docker depName=alpine/helm
|
||||
HELM_VERSION: "4.2.2"
|
||||
HELM_VERSION: "4.1.4"
|
||||
|
||||
jobs:
|
||||
generate-chart-publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: install Docker CLI
|
||||
uses: https://github.com/docker/setup-buildx-action@v4 # Gitea
|
||||
@ -52,11 +52,12 @@ jobs:
|
||||
run: |
|
||||
# Install Helm GPG plugin
|
||||
helm plugin install https://github.com/technosophos/helm-gpg.git --verify=false
|
||||
helm dependency build
|
||||
helm package --version "${GITHUB_REF#refs/tags/v}" ./
|
||||
|
||||
# Package the chart
|
||||
mkdir ./actions
|
||||
helm dependency build
|
||||
helm package --version "${GITHUB_REF#refs/tags/v}" --destination ./actions ./
|
||||
mkdir actions
|
||||
mv actions*.tgz actions/
|
||||
curl -s -L -o actions/index.yaml https://dl.gitea.com/charts/index.yaml
|
||||
helm repo index actions/ --url https://dl.gitea.com/charts --merge actions/index.yaml
|
||||
|
||||
|
||||
@ -9,6 +9,6 @@ jobs:
|
||||
shellcheck:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v6
|
||||
- run: apt update --yes && apt install --yes shellcheck
|
||||
- run: find . -type f -name "*.sh" -exec shellcheck -a {} \;
|
||||
|
||||
@ -11,12 +11,12 @@ name: check-and-test
|
||||
|
||||
env:
|
||||
# renovate: datasource=github-releases depName=helm-unittest/helm-unittest
|
||||
HELM_UNITTEST_VERSION: "v1.1.1"
|
||||
HELM_UNITTEST_VERSION: "v1.0.3"
|
||||
|
||||
jobs:
|
||||
check-and-test:
|
||||
runs-on: ubuntu-latest
|
||||
container: alpine/helm:4.2.2
|
||||
container: alpine/helm:4.1.4
|
||||
steps:
|
||||
- name: install tools
|
||||
run: |
|
||||
@ -25,8 +25,8 @@ jobs:
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v6
|
||||
with:
|
||||
version: 11
|
||||
- uses: actions/checkout@v7
|
||||
version: 10
|
||||
- uses: actions/checkout@v6
|
||||
- name: install chart dependencies
|
||||
run: helm dependency build
|
||||
- name: lint
|
||||
|
||||
10
Chart.yaml
10
Chart.yaml
@ -1,20 +1,18 @@
|
||||
apiVersion: v2
|
||||
name: actions
|
||||
description: Gitea Actions Helm chart for Kubernetes
|
||||
description: Gitea Actions chart for Kubernetes
|
||||
type: application
|
||||
version: 0.1.1
|
||||
# renovate datasource=gitea-releases depName=gitea/runner extractVersion=^v(?<version>.*)$
|
||||
version: 0.0.0
|
||||
# renovate datasource=github-releases depName=go-gitea/act extractVersion=^v(?<version>.*)$
|
||||
appVersion: 0.261.3
|
||||
|
||||
keywords:
|
||||
- cicd
|
||||
- runner
|
||||
- actions
|
||||
home: https://gitea.com/
|
||||
icon: https://gitea.com/assets/img/logo.svg
|
||||
sources:
|
||||
- https://gitea.com/gitea/helm-actions
|
||||
- https://gitea.com/gitea/runner
|
||||
- https://gitea.com/gitea/act
|
||||
|
||||
maintainers:
|
||||
# https://gitea.com/DaanSelen
|
||||
|
||||
64
README.md
64
README.md
@ -29,16 +29,6 @@ Deploy with your values, make sure the path is correct:
|
||||
helm upgrade --install gitea-actions gitea-charts/actions -f values.yaml
|
||||
```
|
||||
|
||||
Alternatively:
|
||||
|
||||
```sh
|
||||
helm upgrade --install gitea-actions gitea-charts/actions \
|
||||
--set enabled=true \
|
||||
--set giteaRootURL=https://gitea.com \
|
||||
--set existingSecret=foo \
|
||||
--set existingSecretKey=bar
|
||||
```
|
||||
|
||||
You should be good to go!
|
||||
|
||||
### Runner Token Secret Template
|
||||
@ -66,38 +56,38 @@ If `.Values.statefulset.dind.rootless: true` is set, then the following will be
|
||||
### Gitea Actions
|
||||
|
||||
| Name | Description | Value |
|
||||
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
|
||||
| `enabled` | Create a Gitea Runner StatefulSet. | `false` |
|
||||
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
|
||||
| `enabled` | Create an act runner StatefulSet. | `false` |
|
||||
| `statefulset.replicas` | the amount of (replica) runner pods deployed | `1` |
|
||||
| `statefulset.timezone` | is the timezone that will be set in the runner image | `Etc/UTC` |
|
||||
| `statefulset.annotations` | Gitea Runner annotations | `{}` |
|
||||
| `statefulset.labels` | Gitea Runner labels | `{}` |
|
||||
| `statefulset.resources` | Gitea Runner resources | `{}` |
|
||||
| `statefulset.timezone` | is the timezone that will be set in the act_runner image | `Etc/UTC` |
|
||||
| `statefulset.annotations` | Act runner annotations | `{}` |
|
||||
| `statefulset.labels` | Act runner labels | `{}` |
|
||||
| `statefulset.resources` | Act runner resources | `{}` |
|
||||
| `statefulset.nodeSelector` | NodeSelector for the statefulset | `{}` |
|
||||
| `statefulset.tolerations` | Tolerations for the statefulset | `[]` |
|
||||
| `statefulset.affinity` | Affinity for the statefulset | `{}` |
|
||||
| `statefulset.extraVolumes` | Extra volumes for the statefulset | `[]` |
|
||||
| `statefulset.persistence.size` | Size for persistence to store Gitea Runner data | `1Gi` |
|
||||
| `statefulset.persistence.size` | Size for persistence to store act runner data | `1Gi` |
|
||||
| `statefulset.securityContext` | Customize the SecurityContext | `{}` |
|
||||
| `statefulset.serviceAccountName` | Customize the service account name | `""` |
|
||||
| `statefulset.runtimeClassName` | Select a different RuntimeClass for pods | `""` |
|
||||
| `statefulset.hostAliases` | Inject entries into the /etc/hosts file | `[]` |
|
||||
| `statefulset.persistence.size` | Size for persistence to store Gitea Runner data | `1Gi` |
|
||||
| `statefulset.runner.registry` | image registry, e.g. gcr.io,docker.io | `docker.gitea.com` |
|
||||
| `statefulset.runner.repository` | The Gitea Runner image | `runner` |
|
||||
| `statefulset.runner.tag` | The Gitea Runner tag | `1.0.6` |
|
||||
| `statefulset.runner.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
||||
| `statefulset.runner.pullPolicy` | The Gitea Runner pullPolicy | `IfNotPresent` |
|
||||
| `statefulset.runner.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
||||
| `statefulset.runner.extraVolumeMounts` | Allows mounting extra volumes in the Gitea Runner container | `[]` |
|
||||
| `statefulset.runner.extraEnvs` | Allows adding custom environment variables | `[]` |
|
||||
| `statefulset.runner.flushCache` | whether to clear the .runner (cache) file by creating an extra init container, can slightly increase boot-up time | `false` |
|
||||
| `statefulset.runner.config` | Gitea Runner custom configuration. See [Gitea Runner documentation](https://docs.gitea.com/usage/actions/act-runner#configuration) for details. | `Too complex. See values.yaml` |
|
||||
| `statefulset.persistence.size` | Size for persistence to store act runner data | `1Gi` |
|
||||
| `statefulset.actRunner.registry` | image registry, e.g. gcr.io,docker.io | `docker.gitea.com` |
|
||||
| `statefulset.actRunner.repository` | The Gitea act runner image | `act_runner` |
|
||||
| `statefulset.actRunner.tag` | The Gitea act runner tag | `0.4.1` |
|
||||
| `statefulset.actRunner.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
||||
| `statefulset.actRunner.pullPolicy` | The Gitea act runner pullPolicy | `IfNotPresent` |
|
||||
| `statefulset.actRunner.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
||||
| `statefulset.actRunner.extraVolumeMounts` | Allows mounting extra volumes in the act runner container | `[]` |
|
||||
| `statefulset.actRunner.extraEnvs` | Allows adding custom environment variables | `[]` |
|
||||
| `statefulset.actRunner.flushCache` | whether to clear the .runner (cache) file by creating an extra init container, can slightly increase boot-up time | `false` |
|
||||
| `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` |
|
||||
| `statefulset.dind.rootless` | a simple flag to let helm know we are dealing with a rootless dind container | `false` |
|
||||
| `statefulset.dind.uid` | a field to set the running user id for the rootless dind container, so it knows where to look for the socket | `""` |
|
||||
| `statefulset.dind.registry` | image registry, e.g. gcr.io,docker.io | `docker.io` |
|
||||
| `statefulset.dind.repository` | The Docker-in-Docker image | `docker` |
|
||||
| `statefulset.dind.tag` | The Docker-in-Docker image tag | `29.5.2-dind` |
|
||||
| `statefulset.dind.tag` | The Docker-in-Docker image tag | `29.4.0-dind` |
|
||||
| `statefulset.dind.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
||||
| `statefulset.dind.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
||||
| `statefulset.dind.pullPolicy` | The Docker-in-Docker pullPolicy | `IfNotPresent` |
|
||||
@ -108,15 +98,13 @@ If `.Values.statefulset.dind.rootless: true` is set, then the following will be
|
||||
### Gitea Actions Init
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------- | -------------- |
|
||||
| `init.image.registry` | Image registry, e.g. gcr.io,docker.io | `""` |
|
||||
| `init.image.repository` | The init image (default: busyboxy but can be changed to alpine e.g.) | `busybox` |
|
||||
| `init.image.tag` | The init image tag | `1.38.0` |
|
||||
| ------------------------- | ---------------------------------------------------------------------------------------------------------- | -------------- |
|
||||
| `init.image.registry` | image registry, e.g. gcr.io,docker.io | `""` |
|
||||
| `init.image.repository` | The init image | `busybox` |
|
||||
| `init.image.tag` | the init image tag | `1.37.0` |
|
||||
| `init.image.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
||||
| `init.image.pullPolicy` | The init image pullPolicy | `IfNotPresent` |
|
||||
| `init.image.fullOverride` | Completely overrides the image registry, path/image, tag and digest | `""` |
|
||||
| `init.connectionCommandOverride` | Possiblity to change the command with which the container tests its connection to the Gitea server | `""` |
|
||||
| `init.preConnectionCommandOverride` | Possibility to add commands that happen before the connection test loop | `""` |
|
||||
| `init.image.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
||||
|
||||
### Runner Token Secret Configuration
|
||||
|
||||
@ -128,8 +116,8 @@ If `.Values.statefulset.dind.rootless: true` is set, then the following will be
|
||||
### Gitea URL Setting
|
||||
|
||||
| Name | Description | Value |
|
||||
| -------------- | ------------------------------------------------ | ----- |
|
||||
| `giteaRootURL` | URL the Gitea Runner registers and connects with | `""` |
|
||||
| -------------- | --------------------------------------------- | ----- |
|
||||
| `giteaRootURL` | URL the act_runner registers and connect with | `""` |
|
||||
|
||||
### Extra Init Containers
|
||||
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
# Gitea Actions Helm Chart Docs
|
||||
|
||||
- [connectionCommandOverride explanation](./connectionCommandOverride.md)
|
||||
- [Share dind with job container](share-dind-with-job-container.md)
|
||||
31
docs/actions-dev.md
Normal file
31
docs/actions-dev.md
Normal file
@ -0,0 +1,31 @@
|
||||
# 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
|
||||
existingSecret: "secret-name"
|
||||
existingSecretKey: "secret-key"
|
||||
```
|
||||
@ -1,48 +0,0 @@
|
||||
# Using a custom connectionCommand
|
||||
|
||||
By default, before the container starts it tries to reach the given giteaRootURL.
|
||||
Normally this is done by the busybox image using the wget binary.
|
||||
|
||||
However, due to [Issue #162](https://gitea.com/gitea/helm-actions/issues/162) there has been a change made where we can customize that command.
|
||||
|
||||
Using the `values.yaml` file by default it calls `wget --spider --no-check-certificate <your giteaRootURL>` with a timeout of 10 seconds.
|
||||
But with a custom init section like detailed below we can make our check compliant with whatever certificate you have.
|
||||
|
||||
Assuming:
|
||||
```yaml
|
||||
enabled: true
|
||||
giteaRootURL: https://gitea.com
|
||||
existingSecret: foo
|
||||
existingSecretKey: bar
|
||||
|
||||
init:
|
||||
image:
|
||||
registry: ""
|
||||
repository: alpine
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
tag: "3.24"
|
||||
digest: ""
|
||||
pullPolicy: IfNotPresent
|
||||
fullOverride: ""
|
||||
|
||||
connectionCommandOverride: "curl -I"
|
||||
preConnectionCommandOverride: "apk add curl"
|
||||
```
|
||||
|
||||
This now creates the following template section:
|
||||
|
||||
```yaml
|
||||
- name: init-gitea
|
||||
image: "alpine:latest"
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
apk add curl
|
||||
echo 'Trying to reach Gitea on https://gitea.com'
|
||||
until timeout 10 curl -I https://gitea.com; do
|
||||
sleep 3
|
||||
echo "Trying again in 3 seconds..."
|
||||
done
|
||||
echo "Gitea has been reached!"
|
||||
```
|
||||
30
docs/share-dind-with-job-container.md
Normal file
30
docs/share-dind-with-job-container.md
Normal file
@ -0,0 +1,30 @@
|
||||
# Share dind with job container
|
||||
|
||||
You can weaken isolation and allow jobs to call docker commands.
|
||||
|
||||
## Limitations
|
||||
|
||||
-
|
||||
|
||||
## Example Values
|
||||
|
||||
```yaml
|
||||
config: |
|
||||
log:
|
||||
level: debug
|
||||
cache:
|
||||
enabled: false
|
||||
container:
|
||||
require_docker: true
|
||||
docker_timeout: 300s
|
||||
|
||||
## Specify an existing token secret
|
||||
##
|
||||
existingSecret: "runner-token2"
|
||||
existingSecretKey: "token"
|
||||
|
||||
## Specify the root URL of the Gitea instance
|
||||
giteaRootURL: "http://192.168.1.2:3000"
|
||||
```
|
||||
|
||||
Now you can run docker commands inside your jobs.
|
||||
@ -14,6 +14,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@bitnami/readme-generator-for-helm": "^2.7.0",
|
||||
"markdownlint-cli": "^0.49.0"
|
||||
"markdownlint-cli": "^0.48.0"
|
||||
}
|
||||
}
|
||||
112
pnpm-lock.yaml
generated
112
pnpm-lock.yaml
generated
@ -12,8 +12,8 @@ importers:
|
||||
specifier: ^2.7.0
|
||||
version: 2.7.2
|
||||
markdownlint-cli:
|
||||
specifier: ^0.49.0
|
||||
version: 0.49.0
|
||||
specifier: ^0.48.0
|
||||
version: 0.48.0
|
||||
|
||||
packages:
|
||||
|
||||
@ -47,11 +47,11 @@ packages:
|
||||
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
|
||||
brace-expansion@1.1.15:
|
||||
resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==}
|
||||
brace-expansion@1.1.14:
|
||||
resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==}
|
||||
|
||||
brace-expansion@5.0.7:
|
||||
resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==}
|
||||
brace-expansion@5.0.5:
|
||||
resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
|
||||
character-entities-legacy@3.0.0:
|
||||
@ -67,9 +67,9 @@ packages:
|
||||
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
commander@15.0.0:
|
||||
resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==}
|
||||
engines: {node: '>=22.12.0'}
|
||||
commander@14.0.3:
|
||||
resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
commander@6.2.1:
|
||||
resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
|
||||
@ -125,8 +125,8 @@ packages:
|
||||
fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||
|
||||
get-east-asian-width@1.6.0:
|
||||
resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==}
|
||||
get-east-asian-width@1.5.0:
|
||||
resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
glob@7.2.3:
|
||||
@ -160,8 +160,8 @@ packages:
|
||||
is-hexadecimal@2.0.1:
|
||||
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
|
||||
|
||||
js-yaml@4.2.0:
|
||||
resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==}
|
||||
js-yaml@4.1.1:
|
||||
resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
|
||||
hasBin: true
|
||||
|
||||
jsonc-parser@3.3.1:
|
||||
@ -171,31 +171,31 @@ packages:
|
||||
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
katex@0.16.47:
|
||||
resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==}
|
||||
katex@0.16.45:
|
||||
resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==}
|
||||
hasBin: true
|
||||
|
||||
linkify-it@5.0.1:
|
||||
resolution: {integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==}
|
||||
linkify-it@5.0.0:
|
||||
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
|
||||
|
||||
lodash@4.18.1:
|
||||
resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
|
||||
|
||||
markdown-it@14.2.0:
|
||||
resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==}
|
||||
markdown-it@14.1.1:
|
||||
resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==}
|
||||
hasBin: true
|
||||
|
||||
markdown-table@2.0.0:
|
||||
resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==}
|
||||
|
||||
markdownlint-cli@0.49.0:
|
||||
resolution: {integrity: sha512-vS5tWq5W91Gg33LD4pyAaXPclnz/sRvo6/RGOyDQjQ3eds2DkK6H4szUuE0M9TiRB/u/VBx1gtd9Ktrtx5WlSA==}
|
||||
engines: {node: '>=22'}
|
||||
markdownlint-cli@0.48.0:
|
||||
resolution: {integrity: sha512-NkZQNu2E0Q5qLEEHwWj674eYISTLD4jMHkBzDobujXd1kv+yCxi8jOaD/rZoQNW1FBBMMGQpuW5So8B51N/e0A==}
|
||||
engines: {node: '>=20'}
|
||||
hasBin: true
|
||||
|
||||
markdownlint@0.41.0:
|
||||
resolution: {integrity: sha512-xMUI3ChBuRuxuLF4ENvCZyS8z/+Jly1coUcZwErKLIB3sDj7ojpaTBa1e9YVPhSN4jGEIjYGQCldbTJS/hqS+A==}
|
||||
engines: {node: '>=22'}
|
||||
markdownlint@0.40.0:
|
||||
resolution: {integrity: sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
mdurl@2.0.0:
|
||||
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
|
||||
@ -318,8 +318,8 @@ packages:
|
||||
resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
string-width@8.2.1:
|
||||
resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==}
|
||||
string-width@8.1.0:
|
||||
resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
strip-ansi@7.2.0:
|
||||
@ -330,8 +330,8 @@ packages:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
tinyglobby@0.2.17:
|
||||
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
|
||||
tinyglobby@0.2.16:
|
||||
resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
uc.micro@2.1.0:
|
||||
@ -340,8 +340,8 @@ packages:
|
||||
wrappy@1.0.2:
|
||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||
|
||||
yaml@2.9.0:
|
||||
resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==}
|
||||
yaml@2.8.3:
|
||||
resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==}
|
||||
engines: {node: '>= 14.6'}
|
||||
hasBin: true
|
||||
|
||||
@ -353,7 +353,7 @@ snapshots:
|
||||
dot-object: 2.1.5
|
||||
lodash: 4.18.1
|
||||
markdown-table: 2.0.0
|
||||
yaml: 2.9.0
|
||||
yaml: 2.8.3
|
||||
|
||||
'@types/debug@4.1.13':
|
||||
dependencies:
|
||||
@ -373,12 +373,12 @@ snapshots:
|
||||
|
||||
balanced-match@4.0.4: {}
|
||||
|
||||
brace-expansion@1.1.15:
|
||||
brace-expansion@1.1.14:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
|
||||
brace-expansion@5.0.7:
|
||||
brace-expansion@5.0.5:
|
||||
dependencies:
|
||||
balanced-match: 4.0.4
|
||||
|
||||
@ -390,7 +390,7 @@ snapshots:
|
||||
|
||||
commander@13.1.0: {}
|
||||
|
||||
commander@15.0.0: {}
|
||||
commander@14.0.3: {}
|
||||
|
||||
commander@6.2.1: {}
|
||||
|
||||
@ -427,7 +427,7 @@ snapshots:
|
||||
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
get-east-asian-width@1.6.0: {}
|
||||
get-east-asian-width@1.5.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@ -460,7 +460,7 @@ snapshots:
|
||||
|
||||
is-hexadecimal@2.0.1: {}
|
||||
|
||||
js-yaml@4.2.0:
|
||||
js-yaml@4.1.1:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
|
||||
@ -468,21 +468,21 @@ snapshots:
|
||||
|
||||
jsonpointer@5.0.1: {}
|
||||
|
||||
katex@0.16.47:
|
||||
katex@0.16.45:
|
||||
dependencies:
|
||||
commander: 8.3.0
|
||||
|
||||
linkify-it@5.0.1:
|
||||
linkify-it@5.0.0:
|
||||
dependencies:
|
||||
uc.micro: 2.1.0
|
||||
|
||||
lodash@4.18.1: {}
|
||||
|
||||
markdown-it@14.2.0:
|
||||
markdown-it@14.1.1:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
entities: 4.5.0
|
||||
linkify-it: 5.0.1
|
||||
linkify-it: 5.0.0
|
||||
mdurl: 2.0.0
|
||||
punycode.js: 2.3.1
|
||||
uc.micro: 2.1.0
|
||||
@ -491,24 +491,24 @@ snapshots:
|
||||
dependencies:
|
||||
repeat-string: 1.6.1
|
||||
|
||||
markdownlint-cli@0.49.0:
|
||||
markdownlint-cli@0.48.0:
|
||||
dependencies:
|
||||
commander: 15.0.0
|
||||
commander: 14.0.3
|
||||
deep-extend: 0.6.0
|
||||
ignore: 7.0.5
|
||||
js-yaml: 4.2.0
|
||||
js-yaml: 4.1.1
|
||||
jsonc-parser: 3.3.1
|
||||
jsonpointer: 5.0.1
|
||||
markdown-it: 14.2.0
|
||||
markdownlint: 0.41.0
|
||||
markdown-it: 14.1.1
|
||||
markdownlint: 0.40.0
|
||||
minimatch: 10.2.5
|
||||
run-con: 1.3.2
|
||||
smol-toml: 1.6.1
|
||||
tinyglobby: 0.2.17
|
||||
tinyglobby: 0.2.16
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
markdownlint@0.41.0:
|
||||
markdownlint@0.40.0:
|
||||
dependencies:
|
||||
micromark: 4.0.2
|
||||
micromark-core-commonmark: 2.0.3
|
||||
@ -518,7 +518,7 @@ snapshots:
|
||||
micromark-extension-gfm-table: 2.1.1
|
||||
micromark-extension-math: 3.1.0
|
||||
micromark-util-types: 2.0.2
|
||||
string-width: 8.2.1
|
||||
string-width: 8.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@ -583,7 +583,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/katex': 0.16.8
|
||||
devlop: 1.1.0
|
||||
katex: 0.16.47
|
||||
katex: 0.16.45
|
||||
micromark-factory-space: 2.0.1
|
||||
micromark-util-character: 2.1.1
|
||||
micromark-util-symbol: 2.0.1
|
||||
@ -698,11 +698,11 @@ snapshots:
|
||||
|
||||
minimatch@10.2.5:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.7
|
||||
brace-expansion: 5.0.5
|
||||
|
||||
minimatch@3.1.5:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.15
|
||||
brace-expansion: 1.1.14
|
||||
|
||||
minimist@1.2.8: {}
|
||||
|
||||
@ -739,9 +739,9 @@ snapshots:
|
||||
|
||||
smol-toml@1.6.1: {}
|
||||
|
||||
string-width@8.2.1:
|
||||
string-width@8.1.0:
|
||||
dependencies:
|
||||
get-east-asian-width: 1.6.0
|
||||
get-east-asian-width: 1.5.0
|
||||
strip-ansi: 7.2.0
|
||||
|
||||
strip-ansi@7.2.0:
|
||||
@ -750,7 +750,7 @@ snapshots:
|
||||
|
||||
strip-json-comments@3.1.1: {}
|
||||
|
||||
tinyglobby@0.2.17:
|
||||
tinyglobby@0.2.16:
|
||||
dependencies:
|
||||
fdir: 6.5.0(picomatch@4.0.4)
|
||||
picomatch: 4.0.4
|
||||
@ -759,4 +759,4 @@ snapshots:
|
||||
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
yaml@2.9.0: {}
|
||||
yaml@2.8.3: {}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
{{- if .Values.enabled -}}
|
||||
|
||||
{{- if or (empty .Values.existingSecret) (empty .Values.existingSecretKey) -}}
|
||||
{{- fail "existingSecret and existingSecretKey are required when provisioning is disabled" -}}
|
||||
{{- end -}}
|
||||
|
||||
@ -20,7 +20,7 @@ If release name contains chart name it will be used as a full name.
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@ -61,10 +61,10 @@ version: {{ default .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "gitea.actions.labels.runner" -}}
|
||||
{{- define "gitea.actions.labels.actRunner" -}}
|
||||
helm.sh/chart: {{ include "gitea.actions.chart" . }}
|
||||
app: {{ include "gitea.actions.name" . }}-runner
|
||||
{{ include "gitea.actions.selectorLabels.runner" . }}
|
||||
app: {{ include "gitea.actions.name" . }}-act-runner
|
||||
{{ include "gitea.actions.selectorLabels.actRunner" . }}
|
||||
app.kubernetes.io/version: {{ default .Chart.AppVersion | quote }}
|
||||
version: {{ default .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
@ -78,8 +78,8 @@ app.kubernetes.io/name: {{ include "gitea.actions.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "gitea.actions.selectorLabels.runner" -}}
|
||||
app.kubernetes.io/name: {{ include "gitea.actions.name" . }}-runner
|
||||
{{- define "gitea.actions.selectorLabels.actRunner" -}}
|
||||
app.kubernetes.io/name: {{ include "gitea.actions.name" . }}-act-runner
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end -}}
|
||||
|
||||
@ -112,8 +112,8 @@ Common create image implementation
|
||||
{{/*
|
||||
Create image for the Gitea Actions Act Runner
|
||||
*/}}
|
||||
{{- define "gitea.actions.runner.image" -}}
|
||||
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.statefulset.runner) }}
|
||||
{{- define "gitea.actions.actRunner.image" -}}
|
||||
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.statefulset.actRunner) }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
|
||||
@ -3,13 +3,13 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "gitea.actions.fullname" . }}-runner-configmap
|
||||
name: {{ include "gitea.actions.fullname" . }}-act-runner-config
|
||||
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "gitea.actions.labels" . | nindent 4 }}
|
||||
data:
|
||||
config.yaml: |
|
||||
{{- with .Values.statefulset.runner.config -}}
|
||||
{{- with .Values.statefulset.actRunner.config -}}
|
||||
{{- if kindIs "string" . -}}
|
||||
{{ . | nindent 4}}
|
||||
{{- else -}}
|
||||
@ -5,7 +5,7 @@ apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "gitea.actions.labels.runner" . | nindent 4 }}
|
||||
{{- include "gitea.actions.labels.actRunner" . | nindent 4 }}
|
||||
{{- with .Values.statefulset.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
@ -13,19 +13,19 @@ metadata:
|
||||
{{- with .Values.statefulset.annotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "gitea.actions.fullname" . }}-runner
|
||||
name: {{ include "gitea.actions.fullname" . }}-act-runner
|
||||
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
||||
spec:
|
||||
replicas: {{ .Values.statefulset.replicas | default 1 }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "gitea.actions.selectorLabels.runner" . | nindent 6 }}
|
||||
{{- include "gitea.actions.selectorLabels.actRunner" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||
checksum/config: {{ include (print $.Template.BasePath "/config-act-runner.yaml") . | sha256sum }}
|
||||
labels:
|
||||
{{- include "gitea.actions.labels.runner" . | nindent 8 }}
|
||||
{{- include "gitea.actions.labels.actRunner" . | nindent 8 }}
|
||||
{{- with .Values.statefulset.labels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
@ -49,7 +49,7 @@ spec:
|
||||
{{- if .Values.preExtraInitContainers }}
|
||||
{{- toYaml .Values.preExtraInitContainers | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.statefulset.runner.flushCache }}
|
||||
{{- if .Values.statefulset.actRunner.flushCache }}
|
||||
- name: cache-flusher
|
||||
image: "{{ include "gitea.actions.init.image" . }}"
|
||||
command:
|
||||
@ -64,23 +64,16 @@ spec:
|
||||
fi
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data-runner
|
||||
name: data-act-runner
|
||||
{{- end }}
|
||||
- name: reach-gitea
|
||||
- name: init-gitea
|
||||
image: "{{ include "gitea.actions.init.image" . }}"
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
{{- if .Values.init.preConnectionCommandOverride }}
|
||||
{{ .Values.init.preConnectionCommandOverride }}
|
||||
{{- end }}
|
||||
echo 'Trying to reach Gitea on {{ include "gitea.actions.local_root_url" . }}'
|
||||
{{- if .Values.init.connectionCommandOverride }}
|
||||
until timeout 10 {{ .Values.init.connectionCommandOverride }} {{ include "gitea.actions.local_root_url" . }}; do
|
||||
{{- else }}
|
||||
until timeout 10 wget --no-check-certificate --spider {{ include "gitea.actions.local_root_url" . }}; do
|
||||
{{- end }}
|
||||
sleep 3
|
||||
echo "Trying again in 3 seconds..."
|
||||
done
|
||||
@ -135,9 +128,9 @@ spec:
|
||||
{{- toYaml .Values.postExtraInitContainers | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: runner
|
||||
image: "{{ include "gitea.actions.runner.image" . }}"
|
||||
imagePullPolicy: {{ .Values.statefulset.runner.pullPolicy }}
|
||||
- name: act-runner
|
||||
image: "{{ include "gitea.actions.actRunner.image" . }}"
|
||||
imagePullPolicy: {{ .Values.statefulset.actRunner.pullPolicy }}
|
||||
workingDir: /data
|
||||
env:
|
||||
- name: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||
@ -148,24 +141,24 @@ spec:
|
||||
- name: GITEA_INSTANCE_URL
|
||||
value: {{ include "gitea.actions.local_root_url" . }}
|
||||
- name: CONFIG_FILE
|
||||
value: /runner/config.yaml
|
||||
value: /actrunner/config.yaml
|
||||
- name: TZ
|
||||
value: {{ .Values.statefulset.timezone | default "Etc/UTC" }}
|
||||
{{- if .Values.statefulset.runner.extraEnvs }}
|
||||
{{- toYaml .Values.statefulset.runner.extraEnvs | nindent 12 }}
|
||||
{{- if .Values.statefulset.actRunner.extraEnvs }}
|
||||
{{- toYaml .Values.statefulset.actRunner.extraEnvs | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.statefulset.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- mountPath: /runner/config.yaml
|
||||
name: runner-config
|
||||
- mountPath: /actrunner/config.yaml
|
||||
name: act-runner-config
|
||||
subPath: config.yaml
|
||||
- mountPath: /var/run/docker.sock
|
||||
name: docker-socket
|
||||
subPath: docker.sock
|
||||
- mountPath: /data
|
||||
name: data-runner
|
||||
{{- with .Values.statefulset.runner.extraVolumeMounts }}
|
||||
name: data-act-runner
|
||||
{{- with .Values.statefulset.actRunner.extraVolumeMounts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.global.imagePullSecrets }}
|
||||
@ -187,9 +180,9 @@ spec:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: runner-config
|
||||
- name: act-runner-config
|
||||
configMap:
|
||||
name: {{ include "gitea.actions.fullname" . }}-runner-configmap
|
||||
name: {{ include "gitea.actions.fullname" . }}-act-runner-config
|
||||
- name: docker-socket
|
||||
emptyDir: {}
|
||||
{{- with .Values.statefulset.extraVolumes }}
|
||||
@ -197,7 +190,7 @@ spec:
|
||||
{{- end }}
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: data-runner
|
||||
name: data-act-runner
|
||||
spec:
|
||||
accessModes: [ "ReadWriteOnce" ]
|
||||
{{- include "gitea.actions.persistence.storageClass" . | indent 8 }}
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||
suite: actions template | configmap
|
||||
suite: actions template | config-act-runner
|
||||
release:
|
||||
name: gitea-actions-unittests
|
||||
namespace: testing
|
||||
templates:
|
||||
- templates/configmap.yaml
|
||||
- templates/config-act-runner.yaml
|
||||
tests:
|
||||
- it: doesn't renders a ConfigMap by default
|
||||
template: templates/configmap.yaml
|
||||
template: templates/config-act-runner.yaml
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
- it: renders a ConfigMap
|
||||
template: templates/configmap.yaml
|
||||
template: templates/config-act-runner.yaml
|
||||
set:
|
||||
enabled: true
|
||||
statefulset:
|
||||
runner:
|
||||
actRunner:
|
||||
config: |
|
||||
log:
|
||||
level: info
|
||||
@ -31,7 +31,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
name: gitea-actions-unittests-runner-configmap
|
||||
name: gitea-actions-unittests-act-runner-config
|
||||
- equal:
|
||||
path: data["config.yaml"]
|
||||
value: |
|
||||
@ -43,11 +43,11 @@ tests:
|
||||
labels:
|
||||
- "ubuntu-latest"
|
||||
- it: renders a ConfigMap with inline yaml
|
||||
template: templates/configmap.yaml
|
||||
template: templates/config-act-runner.yaml
|
||||
set:
|
||||
enabled: true
|
||||
statefulset:
|
||||
runner:
|
||||
actRunner:
|
||||
config: |
|
||||
container:
|
||||
valid_volumes:
|
||||
@ -59,7 +59,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
name: gitea-actions-unittests-runner-configmap
|
||||
name: gitea-actions-unittests-act-runner-config
|
||||
- matchRegex:
|
||||
path: data["config.yaml"]
|
||||
pattern: '(?m)^\s*options:\s*-v /var/run/docker.sock:/var/run/docker.sock\s*$'
|
||||
@ -4,7 +4,7 @@ release:
|
||||
namespace: testing
|
||||
templates:
|
||||
- templates/statefulset.yaml
|
||||
- templates/configmap.yaml
|
||||
- templates/config-act-runner.yaml
|
||||
tests:
|
||||
#
|
||||
## GENERIC
|
||||
@ -27,10 +27,10 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.metadata.annotations["checksum/config"]
|
||||
value: "83e4d1bb70cc2a861cd18fdb42537e700d4055d431713e64e28c3874c5660097"
|
||||
value: "368836e4e5d947f06f2d65c7cc3fc3ad050aaced506443f54a8ffc17bb11afd2"
|
||||
|
||||
- it: Has fsGroup in securityContext
|
||||
template: templates/statefulset.yaml
|
||||
@ -44,7 +44,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.securityContext["fsGroup"]
|
||||
value: 1000
|
||||
@ -61,7 +61,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.securityContext["fsGroupChangePolicy"]
|
||||
value: "OnRootMismatch"
|
||||
@ -78,7 +78,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.securityContext["fsGroupChangePolicy"]
|
||||
value: "Always"
|
||||
@ -95,7 +95,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].env[0]
|
||||
value:
|
||||
@ -116,7 +116,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].env[1]
|
||||
value:
|
||||
@ -143,7 +143,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].env[1]
|
||||
value:
|
||||
@ -170,7 +170,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].env[1]
|
||||
value:
|
||||
@ -225,65 +225,65 @@ tests:
|
||||
value: "test-storageclass"
|
||||
|
||||
#
|
||||
## GITEA_RUNNER
|
||||
## ACT_RUNNER
|
||||
#
|
||||
|
||||
- it: act-runner uses fullOverride
|
||||
template: templates/statefulset.yaml
|
||||
set:
|
||||
enabled: true
|
||||
statefulset.runner.fullOverride: test.io/runner:x.y.z
|
||||
statefulset.actRunner.fullOverride: test.io/act_runner:x.y.z
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].image
|
||||
value: test.io/runner:x.y.z
|
||||
value: test.io/act_runner:x.y.z
|
||||
|
||||
- it: act-runner uses digest
|
||||
template: templates/statefulset.yaml
|
||||
set:
|
||||
enabled: true
|
||||
statefulset.runner.tag: 1.0.4
|
||||
statefulset.runner.digest: sha256:abcdef123456
|
||||
statefulset.actRunner.tag: 0.3.1
|
||||
statefulset.actRunner.digest: sha256:abcdef123456
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].image
|
||||
value: docker.gitea.com/runner:1.0.4@sha256:abcdef123456
|
||||
value: docker.gitea.com/act_runner:0.3.1@sha256:abcdef123456
|
||||
|
||||
- it: act-runner uses global.imageRegistry
|
||||
template: templates/statefulset.yaml
|
||||
set:
|
||||
enabled: true
|
||||
global.imageRegistry: test.io
|
||||
statefulset.runner.tag: 1.0.4
|
||||
statefulset.actRunner.tag: 0.3.1
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].image
|
||||
value: test.io/runner:1.0.4
|
||||
value: test.io/act_runner:0.3.1
|
||||
|
||||
- it: renders additional environment variables for act-runner container in StatefulSet
|
||||
template: templates/statefulset.yaml
|
||||
set:
|
||||
enabled: true
|
||||
statefulset:
|
||||
runner:
|
||||
actRunner:
|
||||
extraEnvs:
|
||||
- name: "CUSTOM_ENV"
|
||||
value: "1"
|
||||
@ -297,7 +297,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.containers[0].env[4]
|
||||
value:
|
||||
@ -318,7 +318,7 @@ tests:
|
||||
extraVolumes:
|
||||
- name: my-act-runner-volume
|
||||
emptyDir: {}
|
||||
runner:
|
||||
actRunner:
|
||||
extraVolumeMounts:
|
||||
- mountPath: /mnt
|
||||
name: my-act-runner-volume
|
||||
@ -328,7 +328,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- contains:
|
||||
any: true
|
||||
path: spec.template.spec.containers[0].volumeMounts
|
||||
@ -351,7 +351,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.initContainers[1].image
|
||||
value: test.io/dind:x.y.z
|
||||
@ -368,7 +368,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.initContainers[1].image
|
||||
value: test.io/docker:28.3.3-dind
|
||||
@ -407,7 +407,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- contains:
|
||||
any: true
|
||||
path: spec.template.spec.initContainers[1].volumeMounts
|
||||
@ -430,7 +430,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.initContainers[0].image
|
||||
value: test.io/busybox:x.y.z
|
||||
@ -447,7 +447,7 @@ tests:
|
||||
- containsDocument:
|
||||
kind: StatefulSet
|
||||
apiVersion: apps/v1
|
||||
name: gitea-actions-unittests-runner
|
||||
name: gitea-actions-unittests-act-runner
|
||||
- equal:
|
||||
path: spec.template.spec.initContainers[0].image
|
||||
value: test.io/busybox:1.37.0
|
||||
|
||||
62
values.yaml
62
values.yaml
@ -1,34 +1,34 @@
|
||||
# Configure Gitea Actions
|
||||
## @section Gitea Actions
|
||||
#
|
||||
## @param enabled Create a Gitea Runner StatefulSet.
|
||||
## @param enabled Create an act runner StatefulSet.
|
||||
## @param statefulset.replicas the amount of (replica) runner pods deployed
|
||||
## @param statefulset.timezone is the timezone that will be set in the runner image
|
||||
## @param statefulset.annotations Gitea Runner annotations
|
||||
## @param statefulset.labels Gitea Runner labels
|
||||
## @param statefulset.resources Gitea Runner resources
|
||||
## @param statefulset.timezone is the timezone that will be set in the act_runner image
|
||||
## @param statefulset.annotations Act runner annotations
|
||||
## @param statefulset.labels Act runner labels
|
||||
## @param statefulset.resources Act runner resources
|
||||
## @param statefulset.nodeSelector NodeSelector for the statefulset
|
||||
## @param statefulset.tolerations Tolerations for the statefulset
|
||||
## @param statefulset.affinity Affinity for the statefulset
|
||||
## @param statefulset.extraVolumes Extra volumes for the statefulset
|
||||
## @param statefulset.persistence.size Size for persistence to store Gitea Runner data
|
||||
## @param statefulset.persistence.size Size for persistence to store act runner data
|
||||
## @param statefulset.securityContext Customize the SecurityContext
|
||||
## @param statefulset.serviceAccountName Customize the service account name
|
||||
## @param statefulset.runtimeClassName Select a different RuntimeClass for pods
|
||||
## @param statefulset.hostAliases Inject entries into the /etc/hosts file
|
||||
#
|
||||
## @param statefulset.persistence.size Size for persistence to store Gitea Runner data
|
||||
## @param statefulset.persistence.size Size for persistence to store act runner data
|
||||
#
|
||||
## @param statefulset.runner.registry image registry, e.g. gcr.io,docker.io
|
||||
## @param statefulset.runner.repository The Gitea Runner image
|
||||
## @param statefulset.runner.tag The Gitea Runner tag
|
||||
## @param statefulset.runner.digest Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest`
|
||||
## @param statefulset.runner.pullPolicy The Gitea Runner pullPolicy
|
||||
## @param statefulset.runner.fullOverride Completely overrides the image registry, path/image, tag and digest.
|
||||
## @param statefulset.runner.extraVolumeMounts Allows mounting extra volumes in the Gitea Runner container
|
||||
## @param statefulset.runner.extraEnvs Allows adding custom environment variables
|
||||
## @param statefulset.runner.flushCache whether to clear the .runner (cache) file by creating an extra init container, can slightly increase boot-up time
|
||||
## @param statefulset.runner.config [default: Too complex. See values.yaml] Gitea Runner custom configuration. See [Gitea Runner documentation](https://docs.gitea.com/usage/actions/act-runner#configuration) for details.
|
||||
## @param statefulset.actRunner.registry image registry, e.g. gcr.io,docker.io
|
||||
## @param statefulset.actRunner.repository The Gitea act runner image
|
||||
## @param statefulset.actRunner.tag The Gitea act runner tag
|
||||
## @param statefulset.actRunner.digest Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest`
|
||||
## @param statefulset.actRunner.pullPolicy The Gitea act runner pullPolicy
|
||||
## @param statefulset.actRunner.fullOverride Completely overrides the image registry, path/image, tag and digest.
|
||||
## @param statefulset.actRunner.extraVolumeMounts Allows mounting extra volumes in the act runner container
|
||||
## @param statefulset.actRunner.extraEnvs Allows adding custom environment variables
|
||||
## @param statefulset.actRunner.flushCache whether to clear the .runner (cache) file by creating an extra init container, can slightly increase boot-up time
|
||||
## @param 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 statefulset.dind.rootless [default: false] a simple flag to let helm know we are dealing with a rootless dind container
|
||||
## @param statefulset.dind.uid a field to set the running user id for the rootless dind container, so it knows where to look for the socket
|
||||
@ -68,10 +68,10 @@ statefulset:
|
||||
persistence:
|
||||
size: 1Gi
|
||||
|
||||
runner:
|
||||
actRunner:
|
||||
registry: "docker.gitea.com"
|
||||
repository: runner
|
||||
tag: 1.0.6
|
||||
repository: act_runner
|
||||
tag: 0.4.1
|
||||
digest: ""
|
||||
pullPolicy: IfNotPresent
|
||||
fullOverride: ""
|
||||
@ -85,7 +85,7 @@ statefulset:
|
||||
|
||||
# See full details: https://gitea.com/gitea/helm-actions/issues/73
|
||||
flushCache: false
|
||||
# See full example here: https://gitea.com/gitea/runner/src/branch/main/internal/pkg/config/config.example.yaml
|
||||
# See full example here: https://gitea.com/gitea/act_runner/src/branch/main/internal/pkg/config/config.example.yaml
|
||||
config: |
|
||||
log:
|
||||
level: debug
|
||||
@ -100,7 +100,7 @@ statefulset:
|
||||
uid: ""
|
||||
registry: "docker.io"
|
||||
repository: docker
|
||||
tag: 29.5.2-dind
|
||||
tag: 29.4.0-dind
|
||||
digest: ""
|
||||
pullPolicy: IfNotPresent
|
||||
fullOverride: ""
|
||||
@ -121,28 +121,22 @@ statefulset:
|
||||
|
||||
## @section Gitea Actions Init
|
||||
#
|
||||
## @param init.image.registry Image registry, e.g. gcr.io,docker.io
|
||||
## @param init.image.repository The init image (default: busyboxy but can be changed to alpine e.g.)
|
||||
## @param init.image.tag The init image tag
|
||||
## @param init.image.registry image registry, e.g. gcr.io,docker.io
|
||||
## @param init.image.repository The init image
|
||||
## @param init.image.tag the init image tag
|
||||
## @param init.image.digest Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest`
|
||||
## @param init.image.pullPolicy The init image pullPolicy
|
||||
## @param init.image.fullOverride Completely overrides the image registry, path/image, tag and digest
|
||||
#
|
||||
## @param init.connectionCommandOverride Possiblity to change the command with which the container tests its connection to the Gitea server
|
||||
## @param init.preConnectionCommandOverride Possibility to add commands that happen before the connection test loop
|
||||
## @param init.image.fullOverride Completely overrides the image registry, path/image, tag and digest.
|
||||
init:
|
||||
image:
|
||||
registry: ""
|
||||
repository: busybox
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
tag: "1.38.0"
|
||||
tag: "1.37.0"
|
||||
digest: ""
|
||||
pullPolicy: IfNotPresent
|
||||
fullOverride: ""
|
||||
|
||||
connectionCommandOverride: ""
|
||||
preConnectionCommandOverride: ""
|
||||
|
||||
## @section Runner Token Secret Configuration
|
||||
#
|
||||
## @param existingSecret Secret that contains the token
|
||||
@ -152,7 +146,7 @@ existingSecretKey: ""
|
||||
|
||||
## @section Gitea URL Setting
|
||||
#
|
||||
## @param giteaRootURL URL the Gitea Runner registers and connects with
|
||||
## @param giteaRootURL URL the act_runner registers and connect with
|
||||
giteaRootURL: ""
|
||||
|
||||
## @section Extra Init Containers
|
||||
|
||||
Reference in New Issue
Block a user