All checks were successful
Go Tests / go-tests (push) Successful in 1m33s
4.1 KiB
4.1 KiB
GARM runner for Edge Connect
Note that the primary README for this resource is in the root directory of this repository. Further information may be found in the project documentation.
Deployment
These steps can be used to set up a GARM instance on a (relatively) clean Forgejo EDP cluster.
Assumptions
The following steps assume:
- You are working on a running Forgejo called
garm-provider-test(and accessible at https://garm-provider-test.t09.de)- The cluster should be deployed via the infra-deploy workflow
- If a new cluster doesn't behave like the existing one, its config may differ from garm-provider-test's
- You have access to the kubernetes cluster via
kubectl/k9s- The relevant Kubeconfig can be downloaded from the OTC console: Left menu -> Containers -> Cloud Container Engine -> <cluster> -> CLI tool (top right corner) -> Public access -> <copy yaml, paste locally>
- The Forgejo has two repositories, demo_dummy and demo_docker
- These can be recreated from scratch if lost. The former has a workflow that just runs for 30 seconds then stops; the latter runs
docker/build-push-action@v6on a trivial Dockerfile.
- These can be recreated from scratch if lost. The former has a workflow that just runs for 30 seconds then stops; the latter runs
Steps
- Kill
garmPVC ingarm-provider-testcluster- Only needed if Helm config has changed
- Kill
garmpod ingarm-provider-testcluster - Sync ArgoCD (http://argocd.garm-provider.test.t09.de/) to recreate PVC if deleted
- Garm should now (after a minute or two) be available with no config
- this is because each Helm chart deploy recreates the db passphrase
- this isn't easy to fix because ArgoCD doesn't support using lookup to read a persistent secret
- Log into garm using admin / password found in garm-credentials secret on garm-provider-test cluster
- Set up Garm in this order:
- Endpoint
- URL:
https://garm-provider-test.t09.de/ - API endpoint:
https://garm-provider-test.t09.de/api/v1
- URL:
- Credentials
- Type: Gitea
- PAT: persistent, read from password manager if desired
- Repository
- Type: Gitea
- Repo name: demo_dummy or demo_docker
- Owner: giteaAdmin
- (Create Webhook fails with error 500, this is not a problem)
- this is because forgejo currently deployed contains support for ephemeral runners but not webhooks
- ideally these two features will be merged upstream, then forgejo can be updated to the upstream version
- Pool
- Entity: repo
- Provider: edge-connect
- Image:
edp.buildth.ing/devfw-cicd/ubuntu-host-runner:2025-11-03-cor more recent - Flavor: EU.small (but not actually read)
- Min idle runners: 1 (if testing is desired)
- Tags: ubuntu-latest
- Runner
- should be automatically created by/in the Pool
- Endpoint