mirror of
https://gitea.com/gitea/helm-actions.git
synced 2026-04-11 04:00:41 +00:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9a62bad48a | |||
| 988382bf8c | |||
| 7d6b4aeb72 | |||
| 13d3bdd5da | |||
| 51d54cd520 | |||
| 476593d1a3 | |||
| 6a31cb00f7 | |||
| b72067f7e1 | |||
| 0ccd46355c | |||
| 290424f6b9 | |||
| 7dddc9b1be | |||
| 99811a6e8e | |||
| 6bb2967772 | |||
| 0f2d8693d9 | |||
| aee6935ead | |||
| 3c9b97f6af | |||
| e2ac47144e | |||
| 55b2169210 | |||
| d1b40535d9 |
@ -8,7 +8,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
changelog:
|
changelog:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: docker.io/thegeeklab/git-sv:2.0.9
|
container: docker.io/thegeeklab/git-sv:2.0.11
|
||||||
steps:
|
steps:
|
||||||
- name: install tools
|
- name: install tools
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@ -11,7 +11,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
check-and-test:
|
check-and-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: commitlint/commitlint:20.4.1
|
container: commitlint/commitlint:20.5.1
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v6
|
||||||
- name: check PR title
|
- name: check PR title
|
||||||
|
|||||||
@ -7,64 +7,76 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=docker depName=alpine/helm
|
# renovate: datasource=docker depName=alpine/helm
|
||||||
HELM_VERSION: "3.20.0"
|
HELM_VERSION: "4.1.3"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
generate-chart-publish:
|
generate-chart-publish:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v6
|
||||||
|
|
||||||
|
- name: install Docker CLI
|
||||||
|
uses: https://github.com/docker/setup-buildx-action@v4 # Gitea
|
||||||
|
#uses: docker/setup-buildx-action@v4 # Github / Act
|
||||||
|
|
||||||
|
- name: install Helm
|
||||||
|
uses: https://github.com/Azure/setup-helm@v5 # Gitea
|
||||||
|
#uses: Azure/setup-helm@v5 # Github / Act
|
||||||
|
with:
|
||||||
|
version: "${{ env.HELM_VERSION }}"
|
||||||
|
|
||||||
- name: install tools
|
- name: install tools
|
||||||
run: |
|
run: |
|
||||||
apt update -y
|
apt update
|
||||||
apt install -y curl ca-certificates curl gnupg
|
apt install -y curl ca-certificates curl gnupg python3 python3-pip apt-transport-https
|
||||||
# helm
|
|
||||||
curl -O https://get.helm.sh/helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
|
|
||||||
tar -xzf helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
|
|
||||||
mv linux-amd64/helm /usr/local/bin/
|
|
||||||
rm -rf linux-amd64 helm-v${{ env.HELM_VERSION }}-linux-amd64.tar.gz
|
|
||||||
helm version
|
|
||||||
# docker
|
|
||||||
install -m 0755 -d /etc/apt/keyrings
|
|
||||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
|
||||||
chmod a+r /etc/apt/keyrings/docker.gpg
|
|
||||||
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
||||||
apt update -y
|
|
||||||
apt install -y python3 python3-pip apt-transport-https docker-ce-cli
|
|
||||||
pip install awscli --break-system-packages
|
pip install awscli --break-system-packages
|
||||||
|
|
||||||
- name: Import GPG key
|
- name: import GPG key
|
||||||
id: import_gpg
|
id: import_gpg
|
||||||
uses: https://github.com/crazy-max/ghaction-import-gpg@v7
|
uses: https://github.com/crazy-max/ghaction-import-gpg@v7 # Gitea
|
||||||
|
#uses: crazy-max/ghaction-import-gpg@v7 # Github / Act
|
||||||
with:
|
with:
|
||||||
gpg_private_key: ${{ secrets.GPGSIGN_KEY }}
|
gpg_private_key: ${{ secrets.GPGSIGN_KEY }}
|
||||||
passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }}
|
passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }}
|
||||||
fingerprint: CC64B1DB67ABBEECAB24B6455FC346329753F4B0
|
fingerprint: CC64B1DB67ABBEECAB24B6455FC346329753F4B0
|
||||||
|
|
||||||
|
- name: log into Docker Hub
|
||||||
|
uses: https://github.com/docker/login-action@v4 # Gitea
|
||||||
|
#uses: docker/login-action@v4 # Github / Act
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_CHARTS_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_CHARTS_PASSWORD }}
|
||||||
|
|
||||||
# Using helm gpg plugin as 'helm package --sign' has issues with gpg2: https://github.com/helm/helm/issues/2843
|
# Using helm gpg plugin as 'helm package --sign' has issues with gpg2: https://github.com/helm/helm/issues/2843
|
||||||
- name: package chart
|
- name: package chart
|
||||||
run: |
|
run: |
|
||||||
echo ${{ secrets.DOCKER_CHARTS_PASSWORD }} | docker login -u ${{ secrets.DOCKER_CHARTS_USERNAME }} --password-stdin
|
# Install Helm GPG plugin
|
||||||
# FIXME: use upstream after https://github.com/technosophos/helm-gpg/issues/1 is solved
|
helm plugin install https://github.com/technosophos/helm-gpg.git --verify=false
|
||||||
helm plugin install https://github.com/pat-s/helm-gpg
|
|
||||||
helm dependency build
|
helm dependency build
|
||||||
helm package --version "${GITHUB_REF#refs/tags/v}" ./
|
helm package --version "${GITHUB_REF#refs/tags/v}" ./
|
||||||
|
|
||||||
|
# Package the chart
|
||||||
mkdir actions
|
mkdir actions
|
||||||
mv actions*.tgz actions/
|
mv actions*.tgz actions/
|
||||||
curl -s -L -o actions/index.yaml https://dl.gitea.com/charts/index.yaml
|
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
|
helm repo index actions/ --url https://dl.gitea.com/charts --merge actions/index.yaml
|
||||||
# push to dockerhub
|
|
||||||
|
# Push to Docker Hub
|
||||||
echo ${{ secrets.DOCKER_CHARTS_PASSWORD }} | helm registry login -u ${{ secrets.DOCKER_CHARTS_USERNAME }} registry-1.docker.io --password-stdin
|
echo ${{ secrets.DOCKER_CHARTS_PASSWORD }} | helm registry login -u ${{ secrets.DOCKER_CHARTS_USERNAME }} registry-1.docker.io --password-stdin
|
||||||
helm push actions/actions-${GITHUB_REF#refs/tags/v}.tgz oci://registry-1.docker.io/giteacharts
|
helm push actions/actions-${GITHUB_REF#refs/tags/v}.tgz oci://registry-1.docker.io/giteacharts
|
||||||
helm registry logout registry-1.docker.io
|
helm registry logout registry-1.docker.io
|
||||||
|
env:
|
||||||
|
TAR_OPTIONS: "--wildcards"
|
||||||
|
|
||||||
- name: aws credential configure
|
- name: aws credential configure
|
||||||
uses: https://github.com/aws-actions/configure-aws-credentials@v6
|
uses: https://github.com/aws-actions/configure-aws-credentials@v6 # Gitea
|
||||||
|
#uses: aws-actions/configure-aws-credentials@v6 # Github / Act
|
||||||
with:
|
with:
|
||||||
aws-access-key-id: ${{ secrets.AWS_KEY_ID }}
|
aws-access-key-id: ${{ secrets.AWS_KEY_ID }}
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
aws-region: ${{ secrets.AWS_REGION }}
|
aws-region: ${{ secrets.AWS_REGION }}
|
||||||
|
|
||||||
- name: Copy files to S3 and clear cache
|
- name: copy files to S3 and clear cache
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
run: |
|
run: |
|
||||||
aws s3 sync actions/ s3://${{ secrets.AWS_S3_BUCKET}}/charts/
|
aws s3 sync actions/ s3://${{ secrets.AWS_S3_BUCKET}}/charts/
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
name: Lint Shell files
|
name: shellcheck
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
name: check-and-test
|
name: check-and-test
|
||||||
|
|
||||||
on:
|
"on":
|
||||||
|
"workflow_dispatch":
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- "*"
|
- "*"
|
||||||
@ -15,7 +16,7 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
check-and-test:
|
check-and-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: alpine/helm:3.20.0
|
container: alpine/helm:4.1.3
|
||||||
steps:
|
steps:
|
||||||
- name: install tools
|
- name: install tools
|
||||||
run: |
|
run: |
|
||||||
@ -29,12 +30,13 @@ jobs:
|
|||||||
- name: install chart dependencies
|
- name: install chart dependencies
|
||||||
run: helm dependency build
|
run: helm dependency build
|
||||||
- name: lint
|
- name: lint
|
||||||
run: helm lint
|
run: helm lint .
|
||||||
- name: template
|
- name: template
|
||||||
run: helm template --debug gitea-actions .
|
run: helm template --debug gitea-actions .
|
||||||
- name: prepare unit test environment
|
- name: prepare unit test environment
|
||||||
run: |
|
run: |
|
||||||
helm plugin install --version ${{ env.HELM_UNITTEST_VERSION }} https://github.com/helm-unittest/helm-unittest
|
helm plugin install --version ${{ env.HELM_UNITTEST_VERSION }} --verify=false \
|
||||||
|
https://github.com/helm-unittest/helm-unittest.git # https://github.com/helm-unittest/helm-unittest?tab=readme-ov-file#install
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
- name: unit tests
|
- name: unit tests
|
||||||
env:
|
env:
|
||||||
@ -46,4 +48,5 @@ jobs:
|
|||||||
make readme
|
make readme
|
||||||
git diff --exit-code --name-only README.md
|
git diff --exit-code --name-only README.md
|
||||||
- name: yaml lint
|
- name: yaml lint
|
||||||
uses: https://github.com/ibiqlik/action-yamllint@v3
|
# uses: ibiqlik/action-yamllint@v3 # Github / Act
|
||||||
|
uses: https://github.com/ibiqlik/action-yamllint@v3 # Gitea
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@ charts/
|
|||||||
node_modules/
|
node_modules/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
unittests/*/__snapshot__/
|
unittests/*/__snapshot__/
|
||||||
|
*secret*.yaml
|
||||||
|
|||||||
17
README.md
17
README.md
@ -67,28 +67,33 @@ If `.Values.statefulset.dind.rootless: true` is set, then the following will be
|
|||||||
| `statefulset.tolerations` | Tolerations for the statefulset | `[]` |
|
| `statefulset.tolerations` | Tolerations for the statefulset | `[]` |
|
||||||
| `statefulset.affinity` | Affinity for the statefulset | `{}` |
|
| `statefulset.affinity` | Affinity for the statefulset | `{}` |
|
||||||
| `statefulset.extraVolumes` | Extra volumes for the statefulset | `[]` |
|
| `statefulset.extraVolumes` | Extra volumes for the statefulset | `[]` |
|
||||||
|
| `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 act runner data | `1Gi` |
|
||||||
| `statefulset.actRunner.registry` | image registry, e.g. gcr.io,docker.io | `docker.gitea.com` |
|
| `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.repository` | The Gitea act runner image | `act_runner` |
|
||||||
| `statefulset.actRunner.tag` | The Gitea act runner tag | `0.3.0` |
|
| `statefulset.actRunner.tag` | The Gitea act runner tag | `0.3.1` |
|
||||||
| `statefulset.actRunner.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
| `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.pullPolicy` | The Gitea act runner pullPolicy | `IfNotPresent` |
|
||||||
| `statefulset.actRunner.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
| `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.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.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.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.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.registry` | image registry, e.g. gcr.io,docker.io | `docker.io` |
|
||||||
| `statefulset.actRunner.extraEnvs` | Allows adding custom environment variables | `[]` |
|
|
||||||
| `statefulset.dind.repository` | The Docker-in-Docker image | `docker` |
|
| `statefulset.dind.repository` | The Docker-in-Docker image | `docker` |
|
||||||
| `statefulset.dind.tag` | The Docker-in-Docker image tag | `29.3.1-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.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.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
||||||
| `statefulset.dind.pullPolicy` | The Docker-in-Docker pullPolicy | `IfNotPresent` |
|
| `statefulset.dind.pullPolicy` | The Docker-in-Docker pullPolicy | `IfNotPresent` |
|
||||||
| `statefulset.dind.extraVolumeMounts` | Allows mounting extra volumes in the Docker-in-Docker container | `[]` |
|
| `statefulset.dind.extraVolumeMounts` | Allows mounting extra volumes in the Docker-in-Docker container | `[]` |
|
||||||
| `statefulset.dind.extraEnvs` | Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY` | `[]` |
|
| `statefulset.dind.extraEnvs` | Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY` | `[]` |
|
||||||
| `statefulset.persistence.size` | Size for persistence to store act runner data | `1Gi` |
|
| `statefulset.dind.extraArgs` | Allows adding custom arguments to the Docker Daemon | `[]` |
|
||||||
| `statefulset.securityContext` | Customize the SecurityContext | `{}` |
|
|
||||||
| `statefulset.serviceAccountName` | Customize the service account name | `""` |
|
|
||||||
|
|
||||||
### Gitea Actions Init
|
### Gitea Actions Init
|
||||||
|
|
||||||
|
|||||||
@ -14,6 +14,6 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@bitnami/readme-generator-for-helm": "^2.7.0",
|
"@bitnami/readme-generator-for-helm": "^2.7.0",
|
||||||
"markdownlint-cli": "^0.47.0"
|
"markdownlint-cli": "^0.48.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
52
pnpm-lock.yaml
generated
52
pnpm-lock.yaml
generated
@ -12,8 +12,8 @@ importers:
|
|||||||
specifier: ^2.7.0
|
specifier: ^2.7.0
|
||||||
version: 2.7.2
|
version: 2.7.2
|
||||||
markdownlint-cli:
|
markdownlint-cli:
|
||||||
specifier: ^0.47.0
|
specifier: ^0.48.0
|
||||||
version: 0.47.0
|
version: 0.48.0
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@ -171,15 +171,15 @@ packages:
|
|||||||
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
|
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
katex@0.16.44:
|
katex@0.16.45:
|
||||||
resolution: {integrity: sha512-EkxoDTk8ufHqHlf9QxGwcxeLkWRR3iOuYfRpfORgYfqc8s13bgb+YtRY59NK5ZpRaCwq1kqA6a5lpX8C/eLphQ==}
|
resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
linkify-it@5.0.0:
|
linkify-it@5.0.0:
|
||||||
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
|
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
|
||||||
|
|
||||||
lodash@4.17.21:
|
lodash@4.18.1:
|
||||||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
|
||||||
|
|
||||||
markdown-it@14.1.1:
|
markdown-it@14.1.1:
|
||||||
resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==}
|
resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==}
|
||||||
@ -188,8 +188,8 @@ packages:
|
|||||||
markdown-table@2.0.0:
|
markdown-table@2.0.0:
|
||||||
resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==}
|
resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==}
|
||||||
|
|
||||||
markdownlint-cli@0.47.0:
|
markdownlint-cli@0.48.0:
|
||||||
resolution: {integrity: sha512-HOcxeKFAdDoldvoYDofd85vI8LgNWy8vmYpCwnlLV46PJcodmGzD7COSSBlhHwsfT4o9KrAStGodImVBus31Bg==}
|
resolution: {integrity: sha512-NkZQNu2E0Q5qLEEHwWj674eYISTLD4jMHkBzDobujXd1kv+yCxi8jOaD/rZoQNW1FBBMMGQpuW5So8B51N/e0A==}
|
||||||
engines: {node: '>=20'}
|
engines: {node: '>=20'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@ -275,9 +275,9 @@ packages:
|
|||||||
micromark@4.0.2:
|
micromark@4.0.2:
|
||||||
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
|
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
|
||||||
|
|
||||||
minimatch@10.1.3:
|
minimatch@10.2.5:
|
||||||
resolution: {integrity: sha512-IF6URNyBX7Z6XfvjpaNy5meRxPZiIf2OqtOoSLs+hLJ9pJAScnM1RjrFcbCaD85y42KcI+oZmKjFIJKYDFjQfg==}
|
resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
|
||||||
engines: {node: 20 || >=22}
|
engines: {node: 18 || 20 || >=22}
|
||||||
|
|
||||||
minimatch@3.1.5:
|
minimatch@3.1.5:
|
||||||
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
|
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
|
||||||
@ -314,8 +314,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==}
|
resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
smol-toml@1.5.2:
|
smol-toml@1.6.1:
|
||||||
resolution: {integrity: sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==}
|
resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==}
|
||||||
engines: {node: '>= 18'}
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
string-width@8.1.0:
|
string-width@8.1.0:
|
||||||
@ -330,8 +330,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
tinyglobby@0.2.15:
|
tinyglobby@0.2.16:
|
||||||
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
|
resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
|
|
||||||
uc.micro@2.1.0:
|
uc.micro@2.1.0:
|
||||||
@ -351,7 +351,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
commander: 13.1.0
|
commander: 13.1.0
|
||||||
dot-object: 2.1.5
|
dot-object: 2.1.5
|
||||||
lodash: 4.17.21
|
lodash: 4.18.1
|
||||||
markdown-table: 2.0.0
|
markdown-table: 2.0.0
|
||||||
yaml: 2.8.3
|
yaml: 2.8.3
|
||||||
|
|
||||||
@ -468,7 +468,7 @@ snapshots:
|
|||||||
|
|
||||||
jsonpointer@5.0.1: {}
|
jsonpointer@5.0.1: {}
|
||||||
|
|
||||||
katex@0.16.44:
|
katex@0.16.45:
|
||||||
dependencies:
|
dependencies:
|
||||||
commander: 8.3.0
|
commander: 8.3.0
|
||||||
|
|
||||||
@ -476,7 +476,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
uc.micro: 2.1.0
|
uc.micro: 2.1.0
|
||||||
|
|
||||||
lodash@4.17.21: {}
|
lodash@4.18.1: {}
|
||||||
|
|
||||||
markdown-it@14.1.1:
|
markdown-it@14.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -491,7 +491,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
repeat-string: 1.6.1
|
repeat-string: 1.6.1
|
||||||
|
|
||||||
markdownlint-cli@0.47.0:
|
markdownlint-cli@0.48.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
commander: 14.0.3
|
commander: 14.0.3
|
||||||
deep-extend: 0.6.0
|
deep-extend: 0.6.0
|
||||||
@ -501,10 +501,10 @@ snapshots:
|
|||||||
jsonpointer: 5.0.1
|
jsonpointer: 5.0.1
|
||||||
markdown-it: 14.1.1
|
markdown-it: 14.1.1
|
||||||
markdownlint: 0.40.0
|
markdownlint: 0.40.0
|
||||||
minimatch: 10.1.3
|
minimatch: 10.2.5
|
||||||
run-con: 1.3.2
|
run-con: 1.3.2
|
||||||
smol-toml: 1.5.2
|
smol-toml: 1.6.1
|
||||||
tinyglobby: 0.2.15
|
tinyglobby: 0.2.16
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@ -583,7 +583,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/katex': 0.16.8
|
'@types/katex': 0.16.8
|
||||||
devlop: 1.1.0
|
devlop: 1.1.0
|
||||||
katex: 0.16.44
|
katex: 0.16.45
|
||||||
micromark-factory-space: 2.0.1
|
micromark-factory-space: 2.0.1
|
||||||
micromark-util-character: 2.1.1
|
micromark-util-character: 2.1.1
|
||||||
micromark-util-symbol: 2.0.1
|
micromark-util-symbol: 2.0.1
|
||||||
@ -696,7 +696,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
minimatch@10.1.3:
|
minimatch@10.2.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion: 5.0.5
|
brace-expansion: 5.0.5
|
||||||
|
|
||||||
@ -737,7 +737,7 @@ snapshots:
|
|||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
strip-json-comments: 3.1.1
|
strip-json-comments: 3.1.1
|
||||||
|
|
||||||
smol-toml@1.5.2: {}
|
smol-toml@1.6.1: {}
|
||||||
|
|
||||||
string-width@8.1.0:
|
string-width@8.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -750,7 +750,7 @@ snapshots:
|
|||||||
|
|
||||||
strip-json-comments@3.1.1: {}
|
strip-json-comments@3.1.1: {}
|
||||||
|
|
||||||
tinyglobby@0.2.15:
|
tinyglobby@0.2.16:
|
||||||
dependencies:
|
dependencies:
|
||||||
fdir: 6.5.0(picomatch@4.0.4)
|
fdir: 6.5.0(picomatch@4.0.4)
|
||||||
picomatch: 4.0.4
|
picomatch: 4.0.4
|
||||||
|
|||||||
@ -14,14 +14,14 @@ If release name contains chart name it will be used as a full name.
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "gitea.actions.fullname" -}}
|
{{- define "gitea.actions.fullname" -}}
|
||||||
{{- if .Values.fullnameOverride -}}
|
{{- if .Values.fullnameOverride -}}
|
||||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||||
{{- if contains $name .Release.Name -}}
|
{{- if contains $name .Release.Name -}}
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ Create a default worker name.
|
|||||||
Create chart name and version as used by the chart label.
|
Create chart name and version as used by the chart label.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "gitea.actions.chart" -}}
|
{{- define "gitea.actions.chart" -}}
|
||||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
@ -45,7 +45,7 @@ Storage Class
|
|||||||
{{- define "gitea.actions.persistence.storageClass" -}}
|
{{- define "gitea.actions.persistence.storageClass" -}}
|
||||||
{{- $storageClass := default (tpl ( default "" .Values.global.storageClass) .) }}
|
{{- $storageClass := default (tpl ( default "" .Values.global.storageClass) .) }}
|
||||||
{{- if $storageClass }}
|
{{- if $storageClass }}
|
||||||
storageClassName: {{ $storageClass | quote }}
|
storageClassName: {{ $storageClass | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
@ -128,4 +128,4 @@ Create image for Init
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "gitea.actions.init.image" -}}
|
{{- define "gitea.actions.init.image" -}}
|
||||||
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.init.image) }}
|
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.init.image) }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@ -11,9 +11,9 @@ data:
|
|||||||
config.yaml: |
|
config.yaml: |
|
||||||
{{- with .Values.statefulset.actRunner.config -}}
|
{{- with .Values.statefulset.actRunner.config -}}
|
||||||
{{- if kindIs "string" . -}}
|
{{- if kindIs "string" . -}}
|
||||||
{{ . | nindent 4}}
|
{{ . | nindent 4}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{ toYaml . | nindent 4}}
|
{{ toYaml . | nindent 4}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -32,14 +32,40 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
restartPolicy: Always
|
restartPolicy: Always
|
||||||
{{- if .Values.statefulset.serviceAccountName }}
|
{{- if .Values.statefulset.serviceAccountName }}
|
||||||
serviceAccountName: {{ .Values.statefulset.serviceAccountName }}
|
serviceAccountName: {{ .Values.statefulset.serviceAccountName | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.statefulset.securityContext }}
|
||||||
securityContext:
|
securityContext:
|
||||||
{{- toYaml .Values.statefulset.securityContext | nindent 8 }}
|
{{- toYaml .Values.statefulset.securityContext | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.statefulset.runtimeClassName }}
|
||||||
|
runtimeClassName: {{ .Values.statefulset.runtimeClassName | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.statefulset.hostAliases }}
|
||||||
|
hostAliases:
|
||||||
|
{{- toYaml .Values.statefulset.hostAliases | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
initContainers:
|
initContainers:
|
||||||
{{- if .Values.preExtraInitContainers }}
|
{{- if .Values.preExtraInitContainers }}
|
||||||
{{- toYaml .Values.preExtraInitContainers | nindent 8 }}
|
{{- toYaml .Values.preExtraInitContainers | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.statefulset.actRunner.flushCache }}
|
||||||
|
- name: cache-flusher
|
||||||
|
image: "{{ include "gitea.actions.init.image" . }}"
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
if [[ -f /data/.runner ]]; then
|
||||||
|
echo "Removing cache at /data/.runner"
|
||||||
|
rm -v /data/.runner
|
||||||
|
else
|
||||||
|
echo "No .runner file to remove"
|
||||||
|
fi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: data-act-runner
|
||||||
|
{{- end }}
|
||||||
- name: init-gitea
|
- name: init-gitea
|
||||||
image: "{{ include "gitea.actions.init.image" . }}"
|
image: "{{ include "gitea.actions.init.image" . }}"
|
||||||
command:
|
command:
|
||||||
@ -62,6 +88,10 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
securityContext:
|
securityContext:
|
||||||
privileged: true
|
privileged: true
|
||||||
|
{{- if .Values.statefulset.dind.extraArgs }}
|
||||||
|
args:
|
||||||
|
{{- toYaml .Values.statefulset.dind.extraArgs | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
startupProbe:
|
startupProbe:
|
||||||
exec:
|
exec:
|
||||||
command:
|
command:
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
suite: actions template | consistency checks
|
suite: actions template | consistency checks
|
||||||
release:
|
release:
|
||||||
name: gitea-unittests
|
name: gitea-actions-unittests
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/01-consistency-checks.yaml
|
- templates/01-consistency-checks.yaml
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
|
||||||
suite: actions template | config-act-runner
|
suite: actions template | config-act-runner
|
||||||
release:
|
release:
|
||||||
name: gitea-unittests
|
name: gitea-actions-unittests
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/config-act-runner.yaml
|
- templates/config-act-runner.yaml
|
||||||
@ -31,7 +31,7 @@ tests:
|
|||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
name: gitea-unittests-actions-act-runner-config
|
name: gitea-actions-unittests-act-runner-config
|
||||||
- equal:
|
- equal:
|
||||||
path: data["config.yaml"]
|
path: data["config.yaml"]
|
||||||
value: |
|
value: |
|
||||||
@ -59,7 +59,7 @@ tests:
|
|||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
name: gitea-unittests-actions-act-runner-config
|
name: gitea-actions-unittests-act-runner-config
|
||||||
- matchRegex:
|
- matchRegex:
|
||||||
path: data["config.yaml"]
|
path: data["config.yaml"]
|
||||||
pattern: '(?m)^\s*options:\s*-v /var/run/docker.sock:/var/run/docker.sock\s*$'
|
pattern: '(?m)^\s*options:\s*-v /var/run/docker.sock:/var/run/docker.sock\s*$'
|
||||||
|
|||||||
@ -1,17 +1,225 @@
|
|||||||
suite: actions template | statefulset
|
suite: actions template | statefulset
|
||||||
release:
|
release:
|
||||||
name: gitea-unittests
|
name: gitea-actions-unittests
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/statefulset.yaml
|
- templates/statefulset.yaml
|
||||||
- templates/config-act-runner.yaml
|
- templates/config-act-runner.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: act-runner uses fullOverride
|
#
|
||||||
|
## GENERIC
|
||||||
|
#
|
||||||
|
|
||||||
|
- it: doesn't renders a StatefulSet by default
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
||||||
|
- it: renders a StatefulSet (that tracks changes of the runner configuration as annotation)
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
image.tag: "1.22.3" # lock image tag to prevent test failures on future Gitea upgrades
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.metadata.annotations["checksum/config"]
|
||||||
|
value: "368836e4e5d947f06f2d65c7cc3fc3ad050aaced506443f54a8ffc17bb11afd2"
|
||||||
|
|
||||||
|
- it: Has fsGroup in securityContext
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
statefulset.securityContext:
|
||||||
|
fsGroup: 1000
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.securityContext["fsGroup"]
|
||||||
|
value: 1000
|
||||||
|
|
||||||
|
- it: Has fsGroupChangePolicy in securityContext
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
statefulset.securityContext:
|
||||||
|
fsGroupChangePolicy: OnRootMismatch
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.securityContext["fsGroupChangePolicy"]
|
||||||
|
value: "OnRootMismatch"
|
||||||
|
|
||||||
|
- it: Has Always in securityContext
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
statefulset.securityContext:
|
||||||
|
fsGroupChangePolicy: Always
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.securityContext["fsGroupChangePolicy"]
|
||||||
|
value: "Always"
|
||||||
|
|
||||||
|
- it: renders a StatefulSet (with given existingSecret/existingSecretKey)
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
enabled: true
|
enabled: true
|
||||||
existingSecret: "my-secret"
|
existingSecret: "my-secret"
|
||||||
existingSecretKey: "my-secret-key"
|
existingSecretKey: "my-secret-key"
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[0]
|
||||||
|
value:
|
||||||
|
name: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "my-secret"
|
||||||
|
key: "my-secret-key"
|
||||||
|
|
||||||
|
- it: renders a StatefulSet http (with correct GITEA_INSTANCE_URL env from giteaRootURL)
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
giteaRootURL: "http://git.example.com"
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[1]
|
||||||
|
value:
|
||||||
|
name: GITEA_INSTANCE_URL
|
||||||
|
value: "http://git.example.com"
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.initContainers[0].command[2]
|
||||||
|
value: |
|
||||||
|
echo 'Trying to reach Gitea on http://git.example.com'
|
||||||
|
until timeout 10 wget --no-check-certificate --spider http://git.example.com; do
|
||||||
|
sleep 3
|
||||||
|
echo "Trying again in 3 seconds..."
|
||||||
|
done
|
||||||
|
echo "Gitea has been reached!"
|
||||||
|
|
||||||
|
- it: renders a StatefulSet https (with correct GITEA_INSTANCE_URL env from giteaRootURL)
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
giteaRootURL: "https://git.example.com"
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[1]
|
||||||
|
value:
|
||||||
|
name: GITEA_INSTANCE_URL
|
||||||
|
value: "https://git.example.com"
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.initContainers[0].command[2]
|
||||||
|
value: |
|
||||||
|
echo 'Trying to reach Gitea on https://git.example.com'
|
||||||
|
until timeout 10 wget --no-check-certificate --spider https://git.example.com; do
|
||||||
|
sleep 3
|
||||||
|
echo "Trying again in 3 seconds..."
|
||||||
|
done
|
||||||
|
echo "Gitea has been reached!"
|
||||||
|
|
||||||
|
- it: renders a StatefulSet https with explicit port (with correct GITEA_INSTANCE_URL env from giteaRootURL)
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
giteaRootURL: "https://git.example.com:8443"
|
||||||
|
enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].env[1]
|
||||||
|
value:
|
||||||
|
name: GITEA_INSTANCE_URL
|
||||||
|
value: "https://git.example.com:8443"
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.initContainers[0].command[2]
|
||||||
|
value: |
|
||||||
|
echo 'Trying to reach Gitea on https://git.example.com:8443'
|
||||||
|
until timeout 10 wget --no-check-certificate --spider https://git.example.com:8443; do
|
||||||
|
sleep 3
|
||||||
|
echo "Trying again in 3 seconds..."
|
||||||
|
done
|
||||||
|
echo "Gitea has been reached!"
|
||||||
|
|
||||||
|
- it: should render service account name correctly
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
statefulset:
|
||||||
|
serviceAccountName: "my-service-account"
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.serviceAccountName
|
||||||
|
value: "my-service-account"
|
||||||
|
|
||||||
|
- it: should render runtime class name correctly
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
statefulset:
|
||||||
|
runtimeClassName: "my-runtime-class-name"
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.runtimeClassName
|
||||||
|
value: "my-runtime-class-name"
|
||||||
|
|
||||||
|
#
|
||||||
|
## ACT_RUNNER
|
||||||
|
#
|
||||||
|
|
||||||
|
- it: act-runner uses fullOverride
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
statefulset.actRunner.fullOverride: test.io/act_runner:x.y.z
|
statefulset.actRunner.fullOverride: test.io/act_runner:x.y.z
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
@ -19,17 +227,16 @@ tests:
|
|||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].image
|
path: spec.template.spec.containers[0].image
|
||||||
value: test.io/act_runner:x.y.z
|
value: test.io/act_runner:x.y.z
|
||||||
|
|
||||||
- it: act-runner uses digest
|
- it: act-runner uses digest
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
enabled: true
|
enabled: true
|
||||||
existingSecret: "my-secret"
|
statefulset.actRunner.tag: 0.3.1
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
statefulset.actRunner.tag: 0.2.13
|
|
||||||
statefulset.actRunner.digest: sha256:abcdef123456
|
statefulset.actRunner.digest: sha256:abcdef123456
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
@ -37,104 +244,32 @@ tests:
|
|||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].image
|
path: spec.template.spec.containers[0].image
|
||||||
value: docker.gitea.com/act_runner:0.2.13@sha256:abcdef123456
|
value: docker.gitea.com/act_runner:0.3.1@sha256:abcdef123456
|
||||||
|
|
||||||
- it: act-runner uses global.imageRegistry
|
- it: act-runner uses global.imageRegistry
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
enabled: true
|
enabled: true
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
global.imageRegistry: test.io
|
global.imageRegistry: test.io
|
||||||
statefulset.actRunner.tag: 0.2.13
|
statefulset.actRunner.tag: 0.3.1
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 1
|
count: 1
|
||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].image
|
path: spec.template.spec.containers[0].image
|
||||||
value: test.io/act_runner:0.2.13
|
value: test.io/act_runner:0.3.1
|
||||||
- it: dind uses fullOverride
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
statefulset.dind.fullOverride: test.io/dind:x.y.z
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[1].image
|
|
||||||
value: test.io/dind:x.y.z
|
|
||||||
- it: dind uses global.imageRegistry
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
global.imageRegistry: test.io
|
|
||||||
statefulset.dind.tag: 28.3.3-dind
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[1].image
|
|
||||||
value: test.io/docker:28.3.3-dind
|
|
||||||
- it: init uses fullOverride
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
init.image.fullOverride: test.io/busybox:x.y.z
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[0].image
|
|
||||||
value: test.io/busybox:x.y.z
|
|
||||||
- it: init uses global.imageRegistry
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
global.imageRegistry: test.io
|
|
||||||
init.image.tag: 1.37.0
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[0].image
|
|
||||||
value: test.io/busybox:1.37.0
|
|
||||||
- it: renders additional environment variables for act-runner container in StatefulSet
|
- it: renders additional environment variables for act-runner container in StatefulSet
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
enabled: true
|
enabled: true
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
statefulset:
|
statefulset:
|
||||||
actRunner:
|
actRunner:
|
||||||
extraEnvs:
|
extraEnvs:
|
||||||
@ -150,7 +285,7 @@ tests:
|
|||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].env[4]
|
path: spec.template.spec.containers[0].env[4]
|
||||||
value:
|
value:
|
||||||
@ -162,223 +297,7 @@ tests:
|
|||||||
- matchRegex:
|
- matchRegex:
|
||||||
path: spec.template.spec.containers[0].env[5].name
|
path: spec.template.spec.containers[0].env[5].name
|
||||||
pattern: "GITEA_RUNNER_NAME"
|
pattern: "GITEA_RUNNER_NAME"
|
||||||
- it: Has fsGroup in securityContext
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
statefulset.securityContext:
|
|
||||||
fsGroup: 1000
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.securityContext["fsGroup"]
|
|
||||||
value: 1000
|
|
||||||
- it: Has fsGroupChangePolicy in securityContext
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
statefulset.securityContext:
|
|
||||||
fsGroupChangePolicy: OnRootMismatch
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.securityContext["fsGroupChangePolicy"]
|
|
||||||
value: "OnRootMismatch"
|
|
||||||
- it: Has Always in securityContext
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
statefulset.securityContext:
|
|
||||||
fsGroupChangePolicy: Always
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.securityContext["fsGroupChangePolicy"]
|
|
||||||
value: "Always"
|
|
||||||
- it: doesn't renders a StatefulSet by default
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 0
|
|
||||||
- it: renders a StatefulSet (with given existingSecret/existingSecretKey)
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[0]
|
|
||||||
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/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
provisioning:
|
|
||||||
enabled: true
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[0]
|
|
||||||
value:
|
|
||||||
name: GITEA_RUNNER_REGISTRATION_TOKEN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: "gitea-unittests-actions-token"
|
|
||||||
key: "token"
|
|
||||||
- it: renders a StatefulSet (that tracks changes of the runner configuration as annotation)
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
image.tag: "1.22.3" # lock image tag to prevent test failures on future Gitea upgrades
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.metadata.annotations["checksum/config"]
|
|
||||||
value: "2bafbf04b3c4293c8ddf895ae3d908e14176ee54a6c724c8cf5b2a1e43c6ece7"
|
|
||||||
- it: renders a StatefulSet http (with correct GITEA_INSTANCE_URL env from giteaRootURL)
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
giteaRootURL: "http://git.example.com"
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[1]
|
|
||||||
value:
|
|
||||||
name: GITEA_INSTANCE_URL
|
|
||||||
value: "http://git.example.com"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[0].command[2]
|
|
||||||
value: |
|
|
||||||
echo 'Trying to reach Gitea on http://git.example.com'
|
|
||||||
until timeout 10 wget --no-check-certificate --spider http://git.example.com; do
|
|
||||||
sleep 3
|
|
||||||
echo "Trying again in 3 seconds..."
|
|
||||||
done
|
|
||||||
echo "Gitea has been reached!"
|
|
||||||
- it: renders a StatefulSet https (with correct GITEA_INSTANCE_URL env from giteaRootURL)
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
giteaRootURL: "https://git.example.com"
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[1]
|
|
||||||
value:
|
|
||||||
name: GITEA_INSTANCE_URL
|
|
||||||
value: "https://git.example.com"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[0].command[2]
|
|
||||||
value: |
|
|
||||||
echo 'Trying to reach Gitea on https://git.example.com'
|
|
||||||
until timeout 10 wget --no-check-certificate --spider https://git.example.com; do
|
|
||||||
sleep 3
|
|
||||||
echo "Trying again in 3 seconds..."
|
|
||||||
done
|
|
||||||
echo "Gitea has been reached!"
|
|
||||||
- it: renders a StatefulSet https (with correct GITEA_INSTANCE_URL env from giteaRootURL)
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
giteaRootURL: "https://git.example.com:8443"
|
|
||||||
enabled: true
|
|
||||||
existingSecret: "my-secret"
|
|
||||||
existingSecretKey: "my-secret-key"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- containsDocument:
|
|
||||||
kind: StatefulSet
|
|
||||||
apiVersion: apps/v1
|
|
||||||
name: gitea-unittests-actions-act-runner
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[1]
|
|
||||||
value:
|
|
||||||
name: GITEA_INSTANCE_URL
|
|
||||||
value: "https://git.example.com:8443"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[0].command[2]
|
|
||||||
value: |
|
|
||||||
echo 'Trying to reach Gitea on https://git.example.com:8443'
|
|
||||||
until timeout 10 wget --no-check-certificate --spider https://git.example.com:8443; do
|
|
||||||
sleep 3
|
|
||||||
echo "Trying again in 3 seconds..."
|
|
||||||
done
|
|
||||||
echo "Gitea has been reached!"
|
|
||||||
- it: allows adding custom environment variables to the docker-in-docker container
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
statefulset:
|
|
||||||
dind:
|
|
||||||
extraEnvs:
|
|
||||||
- name: "CUSTOM_ENV_NAME"
|
|
||||||
value: "custom env value"
|
|
||||||
asserts:
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[1].env[0]
|
|
||||||
value:
|
|
||||||
name: "CUSTOM_ENV_NAME"
|
|
||||||
value: "custom env value"
|
|
||||||
- it: should mount an extra volume in the act runner container
|
- it: should mount an extra volume in the act runner container
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
@ -397,13 +316,67 @@ tests:
|
|||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- contains:
|
- contains:
|
||||||
any: true
|
any: true
|
||||||
path: spec.template.spec.containers[0].volumeMounts
|
path: spec.template.spec.containers[0].volumeMounts
|
||||||
content:
|
content:
|
||||||
mountPath: /mnt
|
mountPath: /mnt
|
||||||
name: my-act-runner-volume
|
name: my-act-runner-volume
|
||||||
|
|
||||||
|
#
|
||||||
|
## DIND
|
||||||
|
#
|
||||||
|
|
||||||
|
- it: dind uses fullOverride
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
statefulset.dind.fullOverride: test.io/dind:x.y.z
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.initContainers[1].image
|
||||||
|
value: test.io/dind:x.y.z
|
||||||
|
|
||||||
|
- it: dind uses global.imageRegistry
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
global.imageRegistry: test.io
|
||||||
|
statefulset.dind.tag: 28.3.3-dind
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- containsDocument:
|
||||||
|
kind: StatefulSet
|
||||||
|
apiVersion: apps/v1
|
||||||
|
name: gitea-actions-unittests-act-runner
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.initContainers[1].image
|
||||||
|
value: test.io/docker:28.3.3-dind
|
||||||
|
|
||||||
|
- it: allows adding custom environment variables to the docker-in-docker container
|
||||||
|
template: templates/statefulset.yaml
|
||||||
|
set:
|
||||||
|
enabled: true
|
||||||
|
statefulset:
|
||||||
|
dind:
|
||||||
|
extraEnvs:
|
||||||
|
- name: "CUSTOM_ENV_NAME"
|
||||||
|
value: "custom env value"
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.initContainers[1].env[0]
|
||||||
|
value:
|
||||||
|
name: "CUSTOM_ENV_NAME"
|
||||||
|
value: "custom env value"
|
||||||
|
|
||||||
- it: should mount an extra volume in the docker-in-docker container
|
- it: should mount an extra volume in the docker-in-docker container
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
@ -422,81 +395,47 @@ tests:
|
|||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- contains:
|
- contains:
|
||||||
any: true
|
any: true
|
||||||
path: spec.template.spec.initContainers[1].volumeMounts
|
path: spec.template.spec.initContainers[1].volumeMounts
|
||||||
content:
|
content:
|
||||||
mountPath: /mnt
|
mountPath: /mnt
|
||||||
name: my-dind-volume
|
name: my-dind-volume
|
||||||
- it: should interpret existingSecret & existingSecretKey templating
|
|
||||||
|
#
|
||||||
|
## INIT
|
||||||
|
#
|
||||||
|
|
||||||
|
- it: init uses fullOverride
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
gitea:
|
|
||||||
token:
|
|
||||||
secret:
|
|
||||||
name: "gitea-secret"
|
|
||||||
key: "secret-key"
|
|
||||||
enabled: true
|
enabled: true
|
||||||
existingSecret: "{{ .Release.Name }}-{{ .Values.gitea.token.secret.name}}"
|
init.image.fullOverride: test.io/busybox:x.y.z
|
||||||
existingSecretKey: "{{ .Values.gitea.token.secret.key}}"
|
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 1
|
count: 1
|
||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].env[0].name
|
path: spec.template.spec.initContainers[0].image
|
||||||
value: "GITEA_RUNNER_REGISTRATION_TOKEN"
|
value: test.io/busybox:x.y.z
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[0].valueFrom.secretKeyRef.name
|
- it: init uses global.imageRegistry
|
||||||
value: "gitea-unittests-gitea-secret"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[0].valueFrom.secretKeyRef.key
|
|
||||||
value: "secret-key"
|
|
||||||
- it: should interpret Gitea Root URL templating
|
|
||||||
template: templates/statefulset.yaml
|
template: templates/statefulset.yaml
|
||||||
set:
|
set:
|
||||||
global:
|
|
||||||
gitea:
|
|
||||||
service:
|
|
||||||
name: "my-gitea-svc-http"
|
|
||||||
port: 3210
|
|
||||||
enabled: true
|
enabled: true
|
||||||
giteaRootURL: "http://{{ .Values.global.gitea.service.name }}:{{ .Values.global.gitea.service.port }}"
|
global.imageRegistry: test.io
|
||||||
|
init.image.tag: 1.37.0
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 1
|
count: 1
|
||||||
- containsDocument:
|
- containsDocument:
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
name: gitea-unittests-actions-act-runner
|
name: gitea-actions-unittests-act-runner
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].env[1].name
|
path: spec.template.spec.initContainers[0].image
|
||||||
value: "GITEA_INSTANCE_URL"
|
value: test.io/busybox:1.37.0
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].env[1].value
|
|
||||||
value: "http://my-gitea-svc-http:3210"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[0].command[2]
|
|
||||||
value: |
|
|
||||||
echo 'Trying to reach Gitea on http://my-gitea-svc-http:3210'
|
|
||||||
until timeout 10 wget --no-check-certificate --spider http://my-gitea-svc-http:3210; do
|
|
||||||
sleep 3
|
|
||||||
echo "Trying again in 3 seconds..."
|
|
||||||
done
|
|
||||||
echo "Gitea has been reached!"
|
|
||||||
- it: should render service account name correctly
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
statefulset:
|
|
||||||
serviceAccountName: "my-service-account"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.serviceAccountName
|
|
||||||
value: "my-service-account"
|
|
||||||
|
|||||||
46
values.yaml
46
values.yaml
@ -11,6 +11,14 @@
|
|||||||
## @param statefulset.tolerations Tolerations for the statefulset
|
## @param statefulset.tolerations Tolerations for the statefulset
|
||||||
## @param statefulset.affinity Affinity for the statefulset
|
## @param statefulset.affinity Affinity for the statefulset
|
||||||
## @param statefulset.extraVolumes Extra volumes for the statefulset
|
## @param statefulset.extraVolumes Extra volumes for the statefulset
|
||||||
|
## @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 act runner data
|
||||||
|
#
|
||||||
## @param statefulset.actRunner.registry image registry, e.g. gcr.io,docker.io
|
## @param statefulset.actRunner.registry image registry, e.g. gcr.io,docker.io
|
||||||
## @param statefulset.actRunner.repository The Gitea act runner image
|
## @param statefulset.actRunner.repository The Gitea act runner image
|
||||||
## @param statefulset.actRunner.tag The Gitea act runner tag
|
## @param statefulset.actRunner.tag The Gitea act runner tag
|
||||||
@ -18,11 +26,13 @@
|
|||||||
## @param statefulset.actRunner.pullPolicy The Gitea act runner pullPolicy
|
## @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.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.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.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.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
|
## @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
|
||||||
## @param statefulset.dind.registry image registry, e.g. gcr.io,docker.io
|
## @param statefulset.dind.registry image registry, e.g. gcr.io,docker.io
|
||||||
## @param statefulset.actRunner.extraEnvs Allows adding custom environment variables
|
|
||||||
## @param statefulset.dind.repository The Docker-in-Docker image
|
## @param statefulset.dind.repository The Docker-in-Docker image
|
||||||
## @param statefulset.dind.tag The Docker-in-Docker image tag
|
## @param statefulset.dind.tag The Docker-in-Docker image tag
|
||||||
## @param statefulset.dind.digest Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest`
|
## @param statefulset.dind.digest Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest`
|
||||||
@ -30,9 +40,8 @@
|
|||||||
## @param statefulset.dind.pullPolicy The Docker-in-Docker pullPolicy
|
## @param statefulset.dind.pullPolicy The Docker-in-Docker pullPolicy
|
||||||
## @param statefulset.dind.extraVolumeMounts Allows mounting extra volumes in the Docker-in-Docker container
|
## @param statefulset.dind.extraVolumeMounts Allows mounting extra volumes in the Docker-in-Docker container
|
||||||
## @param statefulset.dind.extraEnvs Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY`
|
## @param statefulset.dind.extraEnvs Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY`
|
||||||
## @param statefulset.persistence.size Size for persistence to store act runner data
|
## @param statefulset.dind.extraArgs Allows adding custom arguments to the Docker Daemon
|
||||||
## @param statefulset.securityContext Customize the SecurityContext
|
#
|
||||||
## @param statefulset.serviceAccountName Customize the service account name
|
|
||||||
enabled: false
|
enabled: false
|
||||||
statefulset:
|
statefulset:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
@ -46,11 +55,23 @@ statefulset:
|
|||||||
extraVolumes: []
|
extraVolumes: []
|
||||||
securityContext: {}
|
securityContext: {}
|
||||||
serviceAccountName: ""
|
serviceAccountName: ""
|
||||||
|
runtimeClassName: ""
|
||||||
|
|
||||||
|
# Add /etc/hosts injections into the pods
|
||||||
|
hostAliases:
|
||||||
|
[]
|
||||||
|
# - ip: 8.8.8.8
|
||||||
|
# hostnames:
|
||||||
|
# - googel.com
|
||||||
|
# - googol.com
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
size: 1Gi
|
||||||
|
|
||||||
actRunner:
|
actRunner:
|
||||||
registry: "docker.gitea.com"
|
registry: "docker.gitea.com"
|
||||||
repository: act_runner
|
repository: act_runner
|
||||||
tag: 0.3.0
|
tag: 0.3.1
|
||||||
digest: ""
|
digest: ""
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
fullOverride: ""
|
fullOverride: ""
|
||||||
@ -62,6 +83,8 @@ statefulset:
|
|||||||
# fieldRef:
|
# fieldRef:
|
||||||
# fieldPath: metadata.name
|
# fieldPath: metadata.name
|
||||||
|
|
||||||
|
# See full details: https://gitea.com/gitea/helm-actions/issues/73
|
||||||
|
flushCache: false
|
||||||
# See full example here: https://gitea.com/gitea/act_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: |
|
config: |
|
||||||
log:
|
log:
|
||||||
@ -77,7 +100,7 @@ statefulset:
|
|||||||
uid: ""
|
uid: ""
|
||||||
registry: "docker.io"
|
registry: "docker.io"
|
||||||
repository: docker
|
repository: docker
|
||||||
tag: 29.3.1-dind
|
tag: 29.4.0-dind
|
||||||
digest: ""
|
digest: ""
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
fullOverride: ""
|
fullOverride: ""
|
||||||
@ -90,8 +113,11 @@ statefulset:
|
|||||||
# - name: "DOCKER_IPTABLES_LEGACY"
|
# - name: "DOCKER_IPTABLES_LEGACY"
|
||||||
# value: "1"
|
# value: "1"
|
||||||
|
|
||||||
persistence:
|
# Option to add extra arguments/commands to the container/pod:
|
||||||
size: 1Gi
|
# [#22](https://gitea.com/gitea/helm-actions/issues/22) [k8s docs](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/)
|
||||||
|
extraArgs:
|
||||||
|
[]
|
||||||
|
# - --mtu=1400
|
||||||
|
|
||||||
## @section Gitea Actions Init
|
## @section Gitea Actions Init
|
||||||
#
|
#
|
||||||
@ -125,8 +151,8 @@ giteaRootURL: ""
|
|||||||
|
|
||||||
## @section Extra Init Containers
|
## @section Extra Init Containers
|
||||||
#
|
#
|
||||||
## @param preExtraInitContainers Additional init containers to run in the pod before gitea-actions runs it owns init containers.
|
## @param preExtraInitContainers Additional init containers to run in the pod before Gitea-actions runs it owns init containers.
|
||||||
## @param postExtraInitContainers Additional init containers to run in the pod after gitea-actions runs it owns init containers.
|
## @param postExtraInitContainers Additional init containers to run in the pod after Gitea-actions runs it owns init containers.
|
||||||
preExtraInitContainers: []
|
preExtraInitContainers: []
|
||||||
# - name: pre-init-container
|
# - name: pre-init-container
|
||||||
# image: docker.io/library/busybox
|
# image: docker.io/library/busybox
|
||||||
|
|||||||
Reference in New Issue
Block a user