garm-provider-edge-connect/README.md
Richard Robert Reitz a968cb4103
Some checks failed
build / build (push) Successful in 44s
Go Tests / go-tests (push) Failing after 1m3s
feat(edge): Enabled the buildkit docker driver for rootless operation, but with appamor requirement instead
2025-10-28 15:37:48 +01:00

3.4 KiB
Raw Blame History

Prerequisites

Use this project in conjunction with the DevFW-CICD/garm project. (It is assumed that project is cloned to the folder 'garm'.)

Edit the credentials for access to Telekom Edge Cloud and set new Tag: In the garm project edit the file deploy.yaml:

  • Edit the credentials inside the Secret with name 'edge-connect-creds' by setting values (inside stringData.creds.toml) for username and password.
  • Edit the Deployment with name 'garm' by setting a new value (inside spec.template.spec.containers[0]) for the image (tag) of the form garm:provider-ec-[new_number].

Build and deploy the project

Use these commands in the current project.

´´´bash docker buildx build -t edp.buildth.ing/devfw-cicd/garm:provider-ec-[new_number] --push .

kubectl apply -f ../garm/deploy.yaml ´´´

Don't forget to rebuild the ubuntu-host-runner if anything changed in the runner folder:

docker buildx build --platform linux/amd64 --push -t edp.buildth.ing/devfw-cicd/ubuntu-host-runner:latest runner

Configuration

Extra Specs

You can configure runner behavior by passing extra specifications as JSON in the pool's extra_specs field.

Available Parameters

Parameter Type Default Value Description
runner_workdir string /runner/_work/ The working directory for the runner
disable_runner_update boolean true Whether to disable automatic runner updates
runner_ephemeral boolean true Whether the runner should be ephemeral (single-use)
pod_spec object See default below Custom Kubernetes PodSpec configuration

Basic Example

{
  "runner_workdir": "/custom/path/",
  "disable_runner_update": false,
  "runner_ephemeral": false
}

Custom PodSpec Example

You can provide a complete custom PodSpec to configure resource limits, additional containers, volumes, security contexts, etc:

{
  "runner_workdir": "/runner/_work/",
  "pod_spec": {
    "restartPolicy": "Never",
    "containers": [
      {
        "name": "runner",
        "image": "edp.buildth.ing/devfw-cicd/garm-act-runner:1",
        "imagePullPolicy": "Always",
        "env": [],
        "resources": {
          "requests": {
            "memory": "2Gi",
            "cpu": "1000m"
          },
          "limits": {
            "memory": "4Gi",
            "cpu": "2000m"
          }
        },
        "volumeMounts": [
          {
            "name": "runner-dir",
            "mountPath": "/runner"
          }
        ]
      }
    ],
    "volumes": [
      {
        "name": "runner-dir",
        "emptyDir": {}
      }
    ]
  }
}

Note: When providing a custom pod_spec, the environment variables required for the runner (such as RUNNER_TOKEN, METADATA_URL, etc.) are automatically injected into the first container if not already present in the custom spec. If you provide a custom PodSpec without environment variables, make sure the container configuration is compatible with the runner requirements.

Default PodSpec

If no pod_spec is provided, the following default configuration is used:

restartPolicy: Never
containers:
  - name: runner
    image: edp.buildth.ing/devfw-cicd/garm-act-runner:1
    imagePullPolicy: Always
    env: [auto-generated environment variables]
    volumeMounts:
      - name: runner-dir
        mountPath: /runner
volumes:
  - name: runner-dir
    emptyDir: {}