All checks were successful
Go Tests / go-tests (push) Successful in 1m33s
119 lines
3.6 KiB
Markdown
119 lines
3.6 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
docker login edp.buildth.ing
|
|
docker buildx build --platform linux/amd64 --push -t edp.buildth.ing/devfw-cicd/ubuntu-host-runner:latest runner
|
|
docker buildx build --platform linux/amd64 --push -t edp.buildth.ing/devfw-cicd/ubuntu-host-runner:$(date +"%Y-%m-%d-%H%M") runner
|
|
```
|
|
|
|
# Updating GARM
|
|
|
|
Information on resetting GARM can be found in the [runner/ README](/runner/README.md).
|
|
|
|
# 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: {}
|
|
```
|