garm-provider-edge-connect/runner/README.md
Martin McCaffery fcadf47a62
All checks were successful
Go Tests / go-tests (push) Successful in 1m31s
Update READMEs, add pause on failure for debugging
2025-12-22 15:47:25 +01:00

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)
  • 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@v6 on a trivial Dockerfile.

Steps

  1. Kill garm PVC in garm-provider-test cluster
  2. Kill garm pod in garm-provider-test cluster
  3. Sync ArgoCD (http://argocd.garm-provider.test.t09.de/) to recreate PVC
  • 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
  1. Log into garm using admin / password found in garm-credentials secret on garm-provider-test cluster
  2. Set up Garm in this order:
    • Endpoint
      • URL: https://garm-provider-test.t09.de/
      • API endpoint: https://garm-provider-test.t09.de/api/v1
    • 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-c or 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