mirror of
https://gitea.com/gitea/helm-actions.git
synced 2026-08-04 06:53:03 +00:00
Compare commits
1 Commits
main
..
5516c98b2e
| Author | SHA1 | Date | |
|---|---|---|---|
| 5516c98b2e |
@@ -11,7 +11,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
check-and-test:
|
check-and-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: commitlint/commitlint:21.2.1
|
container: commitlint/commitlint:21.2.0
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v7
|
- uses: actions/checkout@v7
|
||||||
- name: check PR title
|
- name: check PR title
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
# renovate: datasource=docker depName=alpine/helm
|
# renovate: datasource=docker depName=alpine/helm
|
||||||
HELM_VERSION: "4.2.3"
|
HELM_VERSION: "4.2.2"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
generate-chart-publish:
|
generate-chart-publish:
|
||||||
@@ -79,13 +79,3 @@ jobs:
|
|||||||
if: startsWith(github.ref, 'refs/tags/')
|
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/
|
||||||
|
|
||||||
- name: Copy files to Cloudflare R2
|
|
||||||
env:
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_R2_SECRET_ACCESS_KEY }}
|
|
||||||
AWS_DEFAULT_REGION: auto
|
|
||||||
CLOUDFLARE_R2_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_R2_ACCOUNT_ID }}
|
|
||||||
CLOUDFLARE_R2_BUCKET: ${{ secrets.CLOUDFLARE_R2_BUCKET }}
|
|
||||||
run: |
|
|
||||||
aws s3 sync actions/ s3://${CLOUDFLARE_R2_BUCKET}/charts/ --endpoint-url https://${CLOUDFLARE_R2_ACCOUNT_ID}.r2.cloudflarestorage.com
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
check-and-test:
|
check-and-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: alpine/helm:4.2.3
|
container: alpine/helm:4.2.2
|
||||||
steps:
|
steps:
|
||||||
- name: install tools
|
- name: install tools
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -65,49 +65,45 @@ If `.Values.statefulset.dind.rootless: true` is set, then the following will be
|
|||||||
|
|
||||||
### Gitea Actions
|
### Gitea Actions
|
||||||
|
|
||||||
For resource limit examples (runner vs DinD), see [docs/resources.md](./docs/resources.md).
|
| Name | Description | Value |
|
||||||
|
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
|
||||||
| Name | Description | Value |
|
| `enabled` | Create a Gitea Runner StatefulSet. | `false` |
|
||||||
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ |
|
| `statefulset.replicas` | the amount of (replica) runner pods deployed | `1` |
|
||||||
| `enabled` | Create a Gitea Runner StatefulSet. | `false` |
|
| `statefulset.timezone` | is the timezone that will be set in the runner image | `Etc/UTC` |
|
||||||
| `statefulset.replicas` | the amount of (replica) runner pods deployed | `1` |
|
| `statefulset.annotations` | Gitea Runner annotations | `{}` |
|
||||||
| `statefulset.timezone` | is the timezone that will be set in the runner image | `Etc/UTC` |
|
| `statefulset.labels` | Gitea Runner labels | `{}` |
|
||||||
| `statefulset.annotations` | Gitea Runner annotations | `{}` |
|
| `statefulset.resources` | Gitea Runner resources | `{}` |
|
||||||
| `statefulset.labels` | Gitea Runner labels | `{}` |
|
| `statefulset.nodeSelector` | NodeSelector for the statefulset | `{}` |
|
||||||
| `statefulset.resources` | Shared resource requests/limits for both containers. Overridden by statefulset.runner.resources and statefulset.dind.resources. See docs/resources.md. | `{}` |
|
| `statefulset.tolerations` | Tolerations for the statefulset | `[]` |
|
||||||
| `statefulset.nodeSelector` | NodeSelector for the statefulset | `{}` |
|
| `statefulset.affinity` | Affinity for the statefulset | `{}` |
|
||||||
| `statefulset.tolerations` | Tolerations for the statefulset | `[]` |
|
| `statefulset.extraVolumes` | Extra volumes for the statefulset | `[]` |
|
||||||
| `statefulset.affinity` | Affinity for the statefulset | `{}` |
|
| `statefulset.persistence.size` | Size for persistence to store Gitea Runner data | `1Gi` |
|
||||||
| `statefulset.extraVolumes` | Extra volumes for the statefulset | `[]` |
|
| `statefulset.securityContext` | Customize the SecurityContext | `{}` |
|
||||||
| `statefulset.persistence.size` | Size for persistence to store Gitea Runner data | `1Gi` |
|
| `statefulset.serviceAccountName` | Customize the service account name | `""` |
|
||||||
| `statefulset.securityContext` | Customize the SecurityContext | `{}` |
|
| `statefulset.runtimeClassName` | Select a different RuntimeClass for pods | `""` |
|
||||||
| `statefulset.serviceAccountName` | Customize the service account name | `""` |
|
| `statefulset.hostAliases` | Inject entries into the /etc/hosts file | `[]` |
|
||||||
| `statefulset.runtimeClassName` | Select a different RuntimeClass for pods | `""` |
|
| `statefulset.persistence.size` | Size for persistence to store Gitea Runner data | `1Gi` |
|
||||||
| `statefulset.hostAliases` | Inject entries into the /etc/hosts file | `[]` |
|
| `statefulset.runner.registry` | image registry, e.g. gcr.io,docker.io | `docker.gitea.com` |
|
||||||
| `statefulset.persistence.size` | Size for persistence to store Gitea Runner data | `1Gi` |
|
| `statefulset.runner.repository` | The Gitea Runner image | `runner` |
|
||||||
| `statefulset.runner.registry` | image registry, e.g. gcr.io,docker.io | `docker.gitea.com` |
|
| `statefulset.runner.tag` | The Gitea Runner tag | `1.0.6` |
|
||||||
| `statefulset.runner.repository` | The Gitea Runner image | `runner` |
|
| `statefulset.runner.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
||||||
| `statefulset.runner.tag` | The Gitea Runner tag | `2.0.1` |
|
| `statefulset.runner.pullPolicy` | The Gitea Runner pullPolicy | `IfNotPresent` |
|
||||||
| `statefulset.runner.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
| `statefulset.runner.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
||||||
| `statefulset.runner.pullPolicy` | The Gitea Runner pullPolicy | `IfNotPresent` |
|
| `statefulset.runner.extraVolumeMounts` | Allows mounting extra volumes in the Gitea Runner container | `[]` |
|
||||||
| `statefulset.runner.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
| `statefulset.runner.extraEnvs` | Allows adding custom environment variables | `[]` |
|
||||||
| `statefulset.runner.resources` | Resource requests/limits for the runner container. Takes precedence over statefulset.resources when set. | `{}` |
|
| `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.extraVolumeMounts` | Allows mounting extra volumes in the Gitea Runner container | `[]` |
|
| `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.runner.extraEnvs` | Allows adding custom environment variables | `[]` |
|
| `statefulset.dind.rootless` | a simple flag to let helm know we are dealing with a rootless dind container | `false` |
|
||||||
| `statefulset.runner.flushCache` | whether to clear the .runner (cache) file by creating an extra init container, can slightly increase boot-up time | `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.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.dind.registry` | image registry, e.g. gcr.io,docker.io | `docker.io` |
|
||||||
| `statefulset.dind.rootless` | a simple flag to let helm know we are dealing with a rootless dind container | `false` |
|
| `statefulset.dind.repository` | The Docker-in-Docker image | `docker` |
|
||||||
| `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.tag` | The Docker-in-Docker image tag | `29.5.2-dind` |
|
||||||
| `statefulset.dind.registry` | image registry, e.g. gcr.io,docker.io | `docker.io` |
|
| `statefulset.dind.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
||||||
| `statefulset.dind.repository` | The Docker-in-Docker image | `docker` |
|
| `statefulset.dind.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
||||||
| `statefulset.dind.tag` | The Docker-in-Docker image tag | `29.5.2-dind` |
|
| `statefulset.dind.pullPolicy` | The Docker-in-Docker pullPolicy | `IfNotPresent` |
|
||||||
| `statefulset.dind.digest` | Image digest. Allows to pin the given image tag. Useful for having control over mutable tags like `latest` | `""` |
|
| `statefulset.dind.extraVolumeMounts` | Allows mounting extra volumes in the Docker-in-Docker container | `[]` |
|
||||||
| `statefulset.dind.fullOverride` | Completely overrides the image registry, path/image, tag and digest. | `""` |
|
| `statefulset.dind.extraEnvs` | Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY` | `[]` |
|
||||||
| `statefulset.dind.pullPolicy` | The Docker-in-Docker pullPolicy | `IfNotPresent` |
|
| `statefulset.dind.extraArgs` | Allows adding custom arguments to the Docker Daemon | `[]` |
|
||||||
| `statefulset.dind.resources` | Resource requests/limits for the DinD sidecar container. Takes precedence over statefulset.resources when set. | `{}` |
|
|
||||||
| `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.extraArgs` | Allows adding custom arguments to the Docker Daemon | `[]` |
|
|
||||||
|
|
||||||
### Gitea Actions Init
|
### Gitea Actions Init
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# Gitea Actions Helm Chart Docs
|
# Gitea Actions Helm Chart Docs
|
||||||
|
|
||||||
- [Resource limits and capacity](./resources.md)
|
|
||||||
- [connectionCommandOverride explanation](./connectionCommandOverride.md)
|
- [connectionCommandOverride explanation](./connectionCommandOverride.md)
|
||||||
|
|||||||
@@ -1,173 +0,0 @@
|
|||||||
# Resource limits and capacity
|
|
||||||
|
|
||||||
By default, all resource values are empty (`{}`). Without explicit limits, runner pods can consume unbounded CPU and memory on a node. This guide explains how to configure resource usage properly.
|
|
||||||
|
|
||||||
## Pod architecture
|
|
||||||
|
|
||||||
Each runner pod contains two resource-consuming containers:
|
|
||||||
|
|
||||||
| Container | Role | Helm value |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| `runner` | Polls Gitea and orchestrates CI jobs | `statefulset.runner.resources` |
|
|
||||||
| `dind` | Docker-in-Docker daemon; executes job containers | `statefulset.dind.resources` |
|
|
||||||
|
|
||||||
The DinD container runs as a native sidecar (`initContainer` with `restartPolicy: Always`).
|
|
||||||
|
|
||||||
## Helm resource keys
|
|
||||||
|
|
||||||
Three values control Kubernetes resource requests and limits:
|
|
||||||
|
|
||||||
| Key | Purpose |
|
|
||||||
| --- | --- |
|
|
||||||
| `statefulset.resources` | Shared fallback applied to **both** containers when no override is set |
|
|
||||||
| `statefulset.runner.resources` | Override for the `runner` container only |
|
|
||||||
| `statefulset.dind.resources` | Override for the `dind` container only |
|
|
||||||
|
|
||||||
Precedence:
|
|
||||||
|
|
||||||
```text
|
|
||||||
statefulset.runner.resources → else statefulset.resources
|
|
||||||
statefulset.dind.resources → else statefulset.resources
|
|
||||||
```
|
|
||||||
|
|
||||||
**Recommendation:** set `statefulset.runner.resources` and `statefulset.dind.resources`
|
|
||||||
explicitly instead of relying on the shared fallback. The runner process is lightweight;
|
|
||||||
DinD and CI workloads need most of the budget.
|
|
||||||
|
|
||||||
## Example: separate runner and DinD limits
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
enabled: true
|
|
||||||
giteaRootURL: https://gitea.example.com
|
|
||||||
existingSecret: runner-secret
|
|
||||||
existingSecretKey: runner-token
|
|
||||||
|
|
||||||
statefulset:
|
|
||||||
replicas: 1
|
|
||||||
|
|
||||||
runner:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 256Mi
|
|
||||||
limits:
|
|
||||||
cpu: 500m
|
|
||||||
memory: 512Mi
|
|
||||||
config: |
|
|
||||||
log:
|
|
||||||
level: info
|
|
||||||
cache:
|
|
||||||
enabled: false
|
|
||||||
runner:
|
|
||||||
capacity: 1
|
|
||||||
container:
|
|
||||||
require_docker: true
|
|
||||||
docker_timeout: 300s
|
|
||||||
|
|
||||||
dind:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 500m
|
|
||||||
memory: 2Gi
|
|
||||||
limits:
|
|
||||||
cpu: 2
|
|
||||||
memory: 4Gi
|
|
||||||
```
|
|
||||||
|
|
||||||
## Two layers of limiting
|
|
||||||
|
|
||||||
Kubernetes limits and act-runner job limits serve different purposes. Use both for a robust setup.
|
|
||||||
|
|
||||||
### 1. Kubernetes limits (Helm values)
|
|
||||||
|
|
||||||
These apply to the `runner` and `dind` containers in the pod.
|
|
||||||
|
|
||||||
- **`dind` limits** cap the Docker daemon and everything it runs inside the pod (images, build caches, job containers).
|
|
||||||
- **`runner` limits** cap the act-runner process itself.
|
|
||||||
|
|
||||||
If neither is set, a runaway build can exhaust the entire node.
|
|
||||||
|
|
||||||
### 2. Per-job Docker limits (`container.options`)
|
|
||||||
|
|
||||||
CI jobs run as Docker containers spawned by act-runner through the Docker socket. They are
|
|
||||||
**not** separate Kubernetes containers. Configure per-job limits in `statefulset.runner.config`
|
|
||||||
— see [act-runner configuration](https://docs.gitea.com/usage/actions/act-runner#configuration)
|
|
||||||
and [config.example.yaml](https://gitea.com/gitea/runner/src/branch/main/internal/pkg/config/config.example.yaml).
|
|
||||||
|
|
||||||
## act-runner settings that affect resource usage
|
|
||||||
|
|
||||||
Settings such as `runner.capacity` and `container.options` live in `statefulset.runner.config`, not in the Helm resource values. Refer to the runner documentation for details:
|
|
||||||
|
|
||||||
- [act-runner configuration](https://docs.gitea.com/usage/actions/act-runner#configuration)
|
|
||||||
- [config.example.yaml](https://gitea.com/gitea/runner/src/branch/main/internal/pkg/config/config.example.yaml) in the [Gitea/runner](https://gitea.com/gitea/runner) repository
|
|
||||||
|
|
||||||
When concurrent jobs or per-job Docker limits increase expected load, size `statefulset.dind.resources` accordingly on the Helm side.
|
|
||||||
|
|
||||||
## Capacity planning
|
|
||||||
|
|
||||||
These formulas apply to the Helm resource values (`statefulset.runner.resources`, `statefulset.dind.resources`, `statefulset.replicas`):
|
|
||||||
|
|
||||||
### Per pod
|
|
||||||
|
|
||||||
```text
|
|
||||||
pod budget ≈ runner.limits + dind.limits
|
|
||||||
```
|
|
||||||
|
|
||||||
### Per node
|
|
||||||
|
|
||||||
```text
|
|
||||||
node budget ≈ (runner.limits + dind.limits) × statefulset.replicas + system overhead
|
|
||||||
```
|
|
||||||
|
|
||||||
Example with the configuration above and `replicas: 3`:
|
|
||||||
|
|
||||||
- runner: 512Mi × 3 = 1.5Gi
|
|
||||||
- dind: 4Gi × 3 = 12Gi
|
|
||||||
- total: ~13.5Gi minimum, excluding other workloads on the node
|
|
||||||
|
|
||||||
Use `statefulset.nodeSelector` and `statefulset.tolerations` to place runners on dedicated nodes when needed.
|
|
||||||
|
|
||||||
## Why not only set `statefulset.resources`?
|
|
||||||
|
|
||||||
Before chart 0.1.2, one value was copied to **both** containers. **Requests** are where it
|
|
||||||
hurts most: the scheduler reserves capacity per container, and both inherit the same numbers.
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# Only statefulset.resources — requests copied to runner AND dind:
|
|
||||||
statefulset:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 500m
|
|
||||||
memory: 2Gi # what DinD needs…
|
|
||||||
# runner also requests 500m + 2Gi → pod ~1 CPU + ~4Gi reserved (mostly wasted)
|
|
||||||
# dind requests 500m + 2Gi ✓
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
statefulset:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 256Mi # what the runner actually needs…
|
|
||||||
# runner requests 100m + 256Mi ✓
|
|
||||||
# dind requests 100m + 256Mi too → tiny slot, builds starve ✗
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# Separate overrides — scheduler sees the real footprint:
|
|
||||||
statefulset:
|
|
||||||
resources: {}
|
|
||||||
runner:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 256Mi
|
|
||||||
dind:
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 500m
|
|
||||||
memory: 2Gi
|
|
||||||
# pod requests ~600m CPU + ~2.25Gi RAM — not 1 CPU + 4Gi, nor 200m + 512Mi
|
|
||||||
```
|
|
||||||
|
|
||||||
Limits follow the same split. Unset overrides (`{}`) still fall back to `statefulset.resources`.
|
|
||||||
Generated
+33
-33
@@ -13,7 +13,7 @@ importers:
|
|||||||
version: 2.7.2
|
version: 2.7.2
|
||||||
markdownlint-cli:
|
markdownlint-cli:
|
||||||
specifier: ^0.49.0
|
specifier: ^0.49.0
|
||||||
version: 0.49.1
|
version: 0.49.0
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -133,8 +133,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||||
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
|
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
|
||||||
|
|
||||||
ignore@7.0.6:
|
ignore@7.0.5:
|
||||||
resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==}
|
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
|
||||||
engines: {node: '>= 4'}
|
engines: {node: '>= 4'}
|
||||||
|
|
||||||
inflight@1.0.6:
|
inflight@1.0.6:
|
||||||
@@ -144,9 +144,9 @@ packages:
|
|||||||
inherits@2.0.4:
|
inherits@2.0.4:
|
||||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||||
|
|
||||||
ini@7.0.0:
|
ini@4.1.3:
|
||||||
resolution: {integrity: sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w==}
|
resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==}
|
||||||
engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
|
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||||
|
|
||||||
is-alphabetical@2.0.1:
|
is-alphabetical@2.0.1:
|
||||||
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
|
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
|
||||||
@@ -160,8 +160,8 @@ packages:
|
|||||||
is-hexadecimal@2.0.1:
|
is-hexadecimal@2.0.1:
|
||||||
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
|
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
|
||||||
|
|
||||||
js-yaml@5.2.1:
|
js-yaml@4.2.0:
|
||||||
resolution: {integrity: sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==}
|
resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
jsonc-parser@3.3.1:
|
jsonc-parser@3.3.1:
|
||||||
@@ -181,20 +181,20 @@ packages:
|
|||||||
lodash@4.18.1:
|
lodash@4.18.1:
|
||||||
resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
|
resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
|
||||||
|
|
||||||
markdown-it@14.3.0:
|
markdown-it@14.2.0:
|
||||||
resolution: {integrity: sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==}
|
resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
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.49.1:
|
markdownlint-cli@0.49.0:
|
||||||
resolution: {integrity: sha512-qpYqJbSYf3jv57bdnFmCaZ/Wlu6IYHp2b6SOKrKBJ7OnPrDHIKmx4NERWH49QH9viTI6yO6raVDDn5nrf60VQQ==}
|
resolution: {integrity: sha512-vS5tWq5W91Gg33LD4pyAaXPclnz/sRvo6/RGOyDQjQ3eds2DkK6H4szUuE0M9TiRB/u/VBx1gtd9Ktrtx5WlSA==}
|
||||||
engines: {node: '>=22'}
|
engines: {node: '>=22'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
markdownlint@0.41.1:
|
markdownlint@0.41.0:
|
||||||
resolution: {integrity: sha512-qHKeU2E1bdyNAT077go2FVTNXvYcktN5IHtF6XyeD1l0PClxzSp2tUApAV14ORI8DGX4H9bNKZEzelZp4qn8IA==}
|
resolution: {integrity: sha512-xMUI3ChBuRuxuLF4ENvCZyS8z/+Jly1coUcZwErKLIB3sDj7ojpaTBa1e9YVPhSN4jGEIjYGQCldbTJS/hqS+A==}
|
||||||
engines: {node: '>=22'}
|
engines: {node: '>=22'}
|
||||||
|
|
||||||
mdurl@2.0.0:
|
mdurl@2.0.0:
|
||||||
@@ -310,12 +310,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
|
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
|
||||||
engines: {node: '>=0.10'}
|
engines: {node: '>=0.10'}
|
||||||
|
|
||||||
run-con@1.3.3:
|
run-con@1.3.2:
|
||||||
resolution: {integrity: sha512-Lb7OKM9aaykzyoNiHGhSVCjZsvbyy6qDMp2vDXL+MoCfz3GfNJtHYH7uYsU3QNMyInBk++xx+EZ8xZ8Sxs5fNQ==}
|
resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
smol-toml@1.7.0:
|
smol-toml@1.6.1:
|
||||||
resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==}
|
resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==}
|
||||||
engines: {node: '>= 18'}
|
engines: {node: '>= 18'}
|
||||||
|
|
||||||
string-width@8.2.1:
|
string-width@8.2.1:
|
||||||
@@ -438,7 +438,7 @@ snapshots:
|
|||||||
once: 1.4.0
|
once: 1.4.0
|
||||||
path-is-absolute: 1.0.1
|
path-is-absolute: 1.0.1
|
||||||
|
|
||||||
ignore@7.0.6: {}
|
ignore@7.0.5: {}
|
||||||
|
|
||||||
inflight@1.0.6:
|
inflight@1.0.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -447,7 +447,7 @@ snapshots:
|
|||||||
|
|
||||||
inherits@2.0.4: {}
|
inherits@2.0.4: {}
|
||||||
|
|
||||||
ini@7.0.0: {}
|
ini@4.1.3: {}
|
||||||
|
|
||||||
is-alphabetical@2.0.1: {}
|
is-alphabetical@2.0.1: {}
|
||||||
|
|
||||||
@@ -460,7 +460,7 @@ snapshots:
|
|||||||
|
|
||||||
is-hexadecimal@2.0.1: {}
|
is-hexadecimal@2.0.1: {}
|
||||||
|
|
||||||
js-yaml@5.2.1:
|
js-yaml@4.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
argparse: 2.0.1
|
argparse: 2.0.1
|
||||||
|
|
||||||
@@ -478,7 +478,7 @@ snapshots:
|
|||||||
|
|
||||||
lodash@4.18.1: {}
|
lodash@4.18.1: {}
|
||||||
|
|
||||||
markdown-it@14.3.0:
|
markdown-it@14.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
argparse: 2.0.1
|
argparse: 2.0.1
|
||||||
entities: 4.5.0
|
entities: 4.5.0
|
||||||
@@ -491,24 +491,24 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
repeat-string: 1.6.1
|
repeat-string: 1.6.1
|
||||||
|
|
||||||
markdownlint-cli@0.49.1:
|
markdownlint-cli@0.49.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
commander: 15.0.0
|
commander: 15.0.0
|
||||||
deep-extend: 0.6.0
|
deep-extend: 0.6.0
|
||||||
ignore: 7.0.6
|
ignore: 7.0.5
|
||||||
js-yaml: 5.2.1
|
js-yaml: 4.2.0
|
||||||
jsonc-parser: 3.3.1
|
jsonc-parser: 3.3.1
|
||||||
jsonpointer: 5.0.1
|
jsonpointer: 5.0.1
|
||||||
markdown-it: 14.3.0
|
markdown-it: 14.2.0
|
||||||
markdownlint: 0.41.1
|
markdownlint: 0.41.0
|
||||||
minimatch: 10.2.5
|
minimatch: 10.2.5
|
||||||
run-con: 1.3.3
|
run-con: 1.3.2
|
||||||
smol-toml: 1.7.0
|
smol-toml: 1.6.1
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
markdownlint@0.41.1:
|
markdownlint@0.41.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
micromark: 4.0.2
|
micromark: 4.0.2
|
||||||
micromark-core-commonmark: 2.0.3
|
micromark-core-commonmark: 2.0.3
|
||||||
@@ -730,14 +730,14 @@ snapshots:
|
|||||||
|
|
||||||
repeat-string@1.6.1: {}
|
repeat-string@1.6.1: {}
|
||||||
|
|
||||||
run-con@1.3.3:
|
run-con@1.3.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
deep-extend: 0.6.0
|
deep-extend: 0.6.0
|
||||||
ini: 7.0.0
|
ini: 4.1.3
|
||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
strip-json-comments: 3.1.1
|
strip-json-comments: 3.1.1
|
||||||
|
|
||||||
smol-toml@1.7.0: {}
|
smol-toml@1.6.1: {}
|
||||||
|
|
||||||
string-width@8.2.1:
|
string-width@8.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|||||||
@@ -116,13 +116,6 @@ Create image for the Gitea Actions Act Runner
|
|||||||
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.statefulset.runner) }}
|
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.statefulset.runner) }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
|
||||||
Resolve resource requests/limits for the runner container.
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.runner.resources" -}}
|
|
||||||
{{- toYaml (default .Values.statefulset.resources .Values.statefulset.runner.resources) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Create image for DinD
|
Create image for DinD
|
||||||
*/}}
|
*/}}
|
||||||
@@ -130,13 +123,6 @@ Create image for DinD
|
|||||||
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.statefulset.dind) }}
|
{{ include "gitea.actions.common.image" (dict "root" . "image" .Values.statefulset.dind) }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
|
||||||
Resolve resource requests/limits for the DinD container.
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.dind.resources" -}}
|
|
||||||
{{- toYaml (default .Values.statefulset.resources .Values.statefulset.dind.resources) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Create image for Init
|
Create image for Init
|
||||||
*/}}
|
*/}}
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ spec:
|
|||||||
- /var/run/docker.sock
|
- /var/run/docker.sock
|
||||||
{{- end }}
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{- include "gitea.actions.dind.resources" . | nindent 12 }}
|
{{- toYaml .Values.statefulset.resources | nindent 12 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- if .Values.statefulset.dind.rootless }}
|
{{- if .Values.statefulset.dind.rootless }}
|
||||||
- mountPath: /run/user/{{ .Values.statefulset.dind.uid | default 1000 }}/
|
- mountPath: /run/user/{{ .Values.statefulset.dind.uid | default 1000 }}/
|
||||||
@@ -155,7 +155,7 @@ spec:
|
|||||||
{{- toYaml .Values.statefulset.runner.extraEnvs | nindent 12 }}
|
{{- toYaml .Values.statefulset.runner.extraEnvs | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{- include "gitea.actions.runner.resources" . | nindent 12 }}
|
{{- toYaml .Values.statefulset.resources | nindent 12 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /runner/config.yaml
|
- mountPath: /runner/config.yaml
|
||||||
name: runner-config
|
name: runner-config
|
||||||
|
|||||||
@@ -451,85 +451,3 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.initContainers[0].image
|
path: spec.template.spec.initContainers[0].image
|
||||||
value: test.io/busybox:1.37.0
|
value: test.io/busybox:1.37.0
|
||||||
|
|
||||||
#
|
|
||||||
## RESOURCES
|
|
||||||
#
|
|
||||||
|
|
||||||
- it: shared statefulset.resources applies to both runner and dind containers
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
statefulset.resources:
|
|
||||||
requests:
|
|
||||||
memory: "512Mi"
|
|
||||||
cpu: "250m"
|
|
||||||
limits:
|
|
||||||
memory: "1Gi"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].resources
|
|
||||||
value:
|
|
||||||
requests:
|
|
||||||
memory: "512Mi"
|
|
||||||
cpu: "250m"
|
|
||||||
limits:
|
|
||||||
memory: "1Gi"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[1].resources
|
|
||||||
value:
|
|
||||||
requests:
|
|
||||||
memory: "512Mi"
|
|
||||||
cpu: "250m"
|
|
||||||
limits:
|
|
||||||
memory: "1Gi"
|
|
||||||
|
|
||||||
- it: statefulset.runner.resources overrides shared resources for runner container only
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
statefulset.resources:
|
|
||||||
requests:
|
|
||||||
memory: "512Mi"
|
|
||||||
statefulset.runner.resources:
|
|
||||||
requests:
|
|
||||||
memory: "256Mi"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].resources
|
|
||||||
value:
|
|
||||||
requests:
|
|
||||||
memory: "256Mi"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[1].resources
|
|
||||||
value:
|
|
||||||
requests:
|
|
||||||
memory: "512Mi"
|
|
||||||
|
|
||||||
- it: statefulset.dind.resources overrides shared resources for dind container only
|
|
||||||
template: templates/statefulset.yaml
|
|
||||||
set:
|
|
||||||
enabled: true
|
|
||||||
statefulset.resources:
|
|
||||||
requests:
|
|
||||||
memory: "512Mi"
|
|
||||||
statefulset.dind.resources:
|
|
||||||
requests:
|
|
||||||
memory: "4Gi"
|
|
||||||
asserts:
|
|
||||||
- hasDocuments:
|
|
||||||
count: 1
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.containers[0].resources
|
|
||||||
value:
|
|
||||||
requests:
|
|
||||||
memory: "512Mi"
|
|
||||||
- equal:
|
|
||||||
path: spec.template.spec.initContainers[1].resources
|
|
||||||
value:
|
|
||||||
requests:
|
|
||||||
memory: "4Gi"
|
|
||||||
|
|||||||
+2
-9
@@ -1,15 +1,12 @@
|
|||||||
# Configure Gitea Actions
|
# Configure Gitea Actions
|
||||||
## @section Gitea Actions
|
## @section Gitea Actions
|
||||||
## @descriptionStart
|
|
||||||
## For resource limit examples (runner vs DinD), see [docs/resources.md](./docs/resources.md).
|
|
||||||
## @descriptionEnd
|
|
||||||
#
|
#
|
||||||
## @param enabled Create a Gitea Runner StatefulSet.
|
## @param enabled Create a Gitea Runner StatefulSet.
|
||||||
## @param statefulset.replicas the amount of (replica) runner pods deployed
|
## @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.timezone is the timezone that will be set in the runner image
|
||||||
## @param statefulset.annotations Gitea Runner annotations
|
## @param statefulset.annotations Gitea Runner annotations
|
||||||
## @param statefulset.labels Gitea Runner labels
|
## @param statefulset.labels Gitea Runner labels
|
||||||
## @param statefulset.resources Shared resource requests/limits for both containers. Overridden by statefulset.runner.resources and statefulset.dind.resources. See docs/resources.md.
|
## @param statefulset.resources Gitea Runner resources
|
||||||
## @param statefulset.nodeSelector NodeSelector for the statefulset
|
## @param statefulset.nodeSelector NodeSelector for the statefulset
|
||||||
## @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
|
||||||
@@ -28,7 +25,6 @@
|
|||||||
## @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.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.pullPolicy The Gitea Runner pullPolicy
|
||||||
## @param statefulset.runner.fullOverride Completely overrides the image registry, path/image, tag and digest.
|
## @param statefulset.runner.fullOverride Completely overrides the image registry, path/image, tag and digest.
|
||||||
## @param statefulset.runner.resources Resource requests/limits for the runner container. Takes precedence over statefulset.resources when set.
|
|
||||||
## @param statefulset.runner.extraVolumeMounts Allows mounting extra volumes in the Gitea Runner container
|
## @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.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.flushCache whether to clear the .runner (cache) file by creating an extra init container, can slightly increase boot-up time
|
||||||
@@ -42,7 +38,6 @@
|
|||||||
## @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`
|
||||||
## @param statefulset.dind.fullOverride Completely overrides the image registry, path/image, tag and digest.
|
## @param statefulset.dind.fullOverride Completely overrides the image registry, path/image, tag and digest.
|
||||||
## @param statefulset.dind.pullPolicy The Docker-in-Docker pullPolicy
|
## @param statefulset.dind.pullPolicy The Docker-in-Docker pullPolicy
|
||||||
## @param statefulset.dind.resources Resource requests/limits for the DinD sidecar container. Takes precedence over statefulset.resources when set.
|
|
||||||
## @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.dind.extraArgs Allows adding custom arguments to the Docker Daemon
|
## @param statefulset.dind.extraArgs Allows adding custom arguments to the Docker Daemon
|
||||||
@@ -76,11 +71,10 @@ statefulset:
|
|||||||
runner:
|
runner:
|
||||||
registry: "docker.gitea.com"
|
registry: "docker.gitea.com"
|
||||||
repository: runner
|
repository: runner
|
||||||
tag: 2.0.1
|
tag: 1.0.6
|
||||||
digest: ""
|
digest: ""
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
fullOverride: ""
|
fullOverride: ""
|
||||||
resources: {}
|
|
||||||
extraVolumeMounts: []
|
extraVolumeMounts: []
|
||||||
extraEnvs:
|
extraEnvs:
|
||||||
[]
|
[]
|
||||||
@@ -110,7 +104,6 @@ statefulset:
|
|||||||
digest: ""
|
digest: ""
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
fullOverride: ""
|
fullOverride: ""
|
||||||
resources: {}
|
|
||||||
extraVolumeMounts: []
|
extraVolumeMounts: []
|
||||||
|
|
||||||
# If the container keeps crashing in your environment, you might have to add the `DOCKER_IPTABLES_LEGACY` environment variable.
|
# If the container keeps crashing in your environment, you might have to add the `DOCKER_IPTABLES_LEGACY` environment variable.
|
||||||
|
|||||||
Reference in New Issue
Block a user