2025-09-18 10:44:06 +02:00
# 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:
2025-10-23 11:40:39 +02:00
In the garm project edit the file deploy.yaml:
2025-09-18 10:44:06 +02:00
- 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.
2025-12-22 15:46:24 +01:00
```bash
2025-10-23 11:40:39 +02:00
docker buildx build -t edp.buildth.ing/devfw-cicd/garm:provider-ec-[new_number] --push .
2025-09-18 10:44:06 +02:00
kubectl apply -f ../garm/deploy.yaml
2025-12-22 15:46:24 +01:00
```
2025-10-23 12:00:36 +02:00
2025-10-28 15:37:48 +01:00
Don't forget to rebuild the ubuntu-host-runner if anything changed in the `runner` folder:
2025-12-22 15:46:24 +01:00
```bash
docker login edp.buildth.ing
2025-10-28 15:37:48 +01:00
docker buildx build --platform linux/amd64 --push -t edp.buildth.ing/devfw-cicd/ubuntu-host-runner:latest runner
2025-12-22 15:46:24 +01:00
docker buildx build --platform linux/amd64 --push -t edp.buildth.ing/devfw-cicd/ubuntu-host-runner:$(date +"%Y-%m-%d-%H%M") runner
2025-10-28 15:37:48 +01:00
```
2025-12-22 15:46:24 +01:00
# Updating GARM
Information on resetting GARM can be found in the [runner/ README ](/runner/README.md ).
2025-10-23 12:00:36 +02:00
# 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) |
2025-10-23 12:12:31 +02:00
| `pod_spec` | object | See default below | Custom Kubernetes PodSpec configuration |
2025-10-23 12:00:36 +02:00
2025-10-23 12:12:31 +02:00
### Basic Example
2025-10-23 12:00:36 +02:00
```json
{
"runner_workdir": "/custom/path/",
"disable_runner_update": false,
"runner_ephemeral": false
}
```
2025-10-23 12:12:31 +02:00
### Custom PodSpec Example
You can provide a complete custom PodSpec to configure resource limits, additional containers, volumes, security contexts, etc:
```json
{
"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:
```yaml
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: {}
```