kaikki ajot ilman dind konttia. docker ja helm ajot dind kontissa.
This commit is contained in:
@@ -23,7 +23,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-push:
|
build-push:
|
||||||
runs-on: ubuntu-latest
|
runs-on: docker
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ concurrency:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-push:
|
build-push:
|
||||||
runs-on: ubuntu-latest
|
runs-on: docker
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -91,7 +91,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
tag-commit:
|
tag-commit:
|
||||||
runs-on: ubuntu-latest
|
runs-on: docker
|
||||||
needs: [build-push]
|
needs: [build-push]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ kubectl create secret generic act-runner-token \
|
|||||||
|
|
||||||
### 4. Helm install / upgrade
|
### 4. Helm install / upgrade
|
||||||
|
|
||||||
Menee samalla komennolla.
|
Menee samalla komennolla.
|
||||||
|
|
||||||
> Muista asettaa variables ennen ajoa.
|
> Muista asettaa variables ennen ajoa.
|
||||||
|
|
||||||
@@ -151,58 +151,89 @@ ja sitä kautta Gitea ei tarvitse päivityksessä mitään temppuja.
|
|||||||
Päivityksen jälkeen muista tappaa pod (käynnistyy automaattisesti uudelleen), että lataa varmasti kaikki uudesta. Sillä ConfigMap tms eivät lataudu
|
Päivityksen jälkeen muista tappaa pod (käynnistyy automaattisesti uudelleen), että lataa varmasti kaikki uudesta. Sillä ConfigMap tms eivät lataudu
|
||||||
mikäli pod jatkaa ajamista.
|
mikäli pod jatkaa ajamista.
|
||||||
|
|
||||||
|
Klusterissa on kaksi StatefulSetiä, joilla on eri labelit:
|
||||||
|
- **`act-runner`** — yleisrunneri ilman DinD:tä (label `ubuntu-latest`)
|
||||||
|
- **`act-runner-docker`** — Docker-buildien runneri DinD:llä (label `docker`)
|
||||||
|
|
||||||
|
Vain `docker-build-push.yml` ja `ci-container-build-push.yml` käyttävät `docker`-labelia.
|
||||||
|
Kaikki muut workflowt (testit, lintit, helm-publish, gitops-dispatch) ajetaan `ubuntu-latest`-runnerilla,
|
||||||
|
joka ei käynnistä turhaa Docker-daemonia.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm repo add gitea https://dl.gitea.com/charts
|
helm repo add gitea https://dl.gitea.com/charts
|
||||||
helm repo update
|
helm repo update
|
||||||
|
|
||||||
|
# 1. Yleisrunneri (ei DinD)
|
||||||
helm upgrade --install act-runner gitea/actions \
|
helm upgrade --install act-runner gitea/actions \
|
||||||
--set enabled=true \
|
--set enabled=true \
|
||||||
--set giteaRootURL="$GITEA_URL" \
|
--set giteaRootURL="$GITEA_URL" \
|
||||||
--set existingSecret=act-runner-token \
|
--set existingSecret=act-runner-token \
|
||||||
--set existingSecretKey=token \
|
--set existingSecretKey=token \
|
||||||
--set statefulset.replicas=3 \
|
--set statefulset.replicas=2 \
|
||||||
--set statefulset.runner.tag=1.0.8 \
|
--set statefulset.runner.tag=1.0.8 \
|
||||||
--set statefulset.dind.tag=29.5.2-dind \
|
|
||||||
--set-string 'statefulset.runner.config=log:
|
--set-string 'statefulset.runner.config=log:
|
||||||
level: info
|
level: info
|
||||||
cache:
|
cache:
|
||||||
enabled: false
|
enabled: true
|
||||||
|
container:
|
||||||
|
require_docker: false' \
|
||||||
|
--namespace "$GITEA_ACTIONS_NAMESPACE" \
|
||||||
|
--create-namespace
|
||||||
|
|
||||||
|
# 2. Docker-runner (DinD)
|
||||||
|
helm upgrade --install act-runner-docker gitea/actions \
|
||||||
|
--set enabled=true \
|
||||||
|
--set giteaRootURL="$GITEA_URL" \
|
||||||
|
--set existingSecret=act-runner-token \
|
||||||
|
--set existingSecretKey=token \
|
||||||
|
--set statefulset.replicas=1 \
|
||||||
|
--set statefulset.runner.tag=1.0.8 \
|
||||||
|
--set statefulset.dind.tag=29.5.2-dind \
|
||||||
|
--set-string 'statefulset.runner.labels=docker' \
|
||||||
|
--set-string 'statefulset.runner.config=log:
|
||||||
|
level: info
|
||||||
|
cache:
|
||||||
|
enabled: true
|
||||||
container:
|
container:
|
||||||
require_docker: true
|
require_docker: true
|
||||||
docker_timeout: 300s' \
|
docker_timeout: 300s' \
|
||||||
--namespace "$GITEA_ACTIONS_NAMESPACE" \
|
--namespace "$GITEA_ACTIONS_NAMESPACE"
|
||||||
--create-namespace
|
|
||||||
```
|
```
|
||||||
|
|
||||||
path escapes from parent -bugi korjattiin Docker 29.5.2:ssa. Tämän teko aikana default on 29.5.1 — juuri tämän alle jäävä versio.
|
`path escapes from parent` -bugi korjattiin Docker 29.5.2:ssa. Tämän teko aikana default on 29.5.1 — juuri tämän alle jäävä versio.
|
||||||
|
|
||||||
Oletus-lokitaso on `debug` — suositeltu `info`. Näkee jobien aloitukset ja valmistumiset ilman konttikerrosten purkua (Downloading/Extracting-spämmiä). `debug` on tarpeen vain vianselvityksessä.
|
Oletus-lokitaso on `debug` — suositeltu `info`. Näkee jobien aloitukset ja valmistumiset ilman konttikerrosten purkua (Downloading/Extracting-spämmiä). `debug` on tarpeen vain vianselvityksessä.
|
||||||
|
|
||||||
|
`cache.enabled: true` nappaa image-cachen käyttöön — ilman sitä jokainen ajo lataa konttikuvat uudestaan.
|
||||||
|
|
||||||
#### Docker (DinD)
|
#### Docker (DinD)
|
||||||
|
|
||||||
Helm chart deployaa DinD:n init-sidecarina (`docker:dind` samassa podissa).
|
Helm chart deployaa DinD:n init-sidecarina (`docker:dind` samassa podissa).
|
||||||
`require_docker: true` kytkee jobit siihen — erillistä DinD-asennusta ei tarvita.
|
`require_docker: true` kytkee jobit siihen — erillistä DinD-asennusta ei tarvita.
|
||||||
|
Vain Docker-runnerissa on tämä päällä.
|
||||||
|
|
||||||
**DinD-tag pinottu:** `29.5.2-dind` (ei chart-oletusta). Docker 29.5.1 aiheuttaa act-runnerissa
|
**DinD-tag pinottu:** `29.5.2-dind` (ei chart-oletusta). Docker 29.5.1 aiheuttaa act-runnerissa
|
||||||
`path escapes from parent` -virheen job-kontin käynnistyksessä.
|
`path escapes from parent` -virheen job-kontin käynnistyksessä.
|
||||||
|
|
||||||
Maven/npm-ajot käyttävät vain workflow'n `container:`-imagea; DinD tarvitaan vasta Docker-buildissä.
|
Maven/npm-ajot käyttävät vain workflow'n `container:`-imagea; DinD tarvitaan vasta Docker-buildissä.
|
||||||
|
|
||||||
### 3. Varmista
|
### 5. Varmista
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl get pods -n gitea-actions
|
kubectl get pods -n gitea-actions
|
||||||
# → act-runner-runner-0 Running
|
# → act-runner-runner-0 Running
|
||||||
|
# → act-runner-docker-runner-0 Running
|
||||||
|
|
||||||
kubectl exec -n gitea-actions act-runner-runner-0 -c dind -- docker version
|
kubectl exec -n gitea-actions act-runner-docker-runner-0 -c dind -- docker version
|
||||||
# → Server Version: 29.5.2 (tai uudempi)
|
# → Server Version: 29.5.2 (tai uudempi)
|
||||||
```
|
```
|
||||||
|
|
||||||
Gitean puolella runner ilmestyy Active-tilaan pienellä viiveellä:
|
Gitean puolella runnerit ilmestyvät Active-tilaan pienellä viiveellä:
|
||||||
|
|
||||||
```
|
```
|
||||||
Site Admin → Actions → Runners (tai Org → Settings → Actions → Runners)
|
Site Admin → Actions → Runners (tai Org → Settings → Actions → Runners)
|
||||||
# → act-runner-runner-0 Active ubuntu-latest
|
# → act-runner-runner-0 Active ubuntu-latest
|
||||||
|
# → act-runner-docker-runner-0 Active docker
|
||||||
```
|
```
|
||||||
|
|
||||||
Tämän jälkeen `.gitea/workflows/ci.yml` triggeröityy automaattisesti pushista.
|
Tämän jälkeen `.gitea/workflows/ci.yml` triggeröityy automaattisesti pushista.
|
||||||
|
|||||||
Reference in New Issue
Block a user