garm-provider-edge-connect/README.md

120 lines
3.6 KiB
Markdown
Raw Normal View History

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.
´´´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-10-23 11:40:39 +02:00
´´´
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
```json
{
"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:
```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: {}
```
2025-10-30 14:15:09 +01:00
## Build the runner on macos
```
2025-10-30 14:25:31 +01:00
cd runner && docker buildx build --platform linux/amd64 --push -t edp.buildth.ing/devfw-cicd/ubuntu-host-runner:$(date --utc --iso-8601) . && cd -
2025-10-30 14:15:09 +01:00
```