| .. | ||
| templates | ||
| Chart.yaml | ||
| edge-connect-provider-config.toml | ||
| README.md | ||
| values.yaml | ||
Garm Helm Chart
This Helm chart deploys Garm (GitHub Actions Runner Manager) on a Kubernetes cluster.
Prerequisites
- Kubernetes 1.19+
- Helm 3.0+
- Ingress controller (nginx recommended)
- Cert-manager (optional, for TLS)
Installing the Chart
-
Add the Helm repository:
helm repo add garm https://your-repo-url helm repo update -
Create a values file (e.g.,
values.yaml) and configure the required parameters:# Only Edge Connect credentials are required, others will be auto-generated credentials: edgeConnect: username: "your-ec-username" password: "your-ec-password" # Optional: Override auto-generated credentials credentials: admin: generateCredentials: false # Set to false to use custom credentials username: "custom-admin" password: "custom-password" email: "admin@example.com" gitea: generateToken: false # Set to false to use custom token token: "your-custom-token" ingress: hosts: - host: your-garm-domain.example.com paths: - path: / pathType: Prefix tls: - secretName: garm-tls hosts: - your-garm-domain.example.comNote: If you don't provide custom credentials, the chart will automatically generate secure random values for:
- Admin password
- Gitea token
- JWT secret
- Database passphrase
-
Install the chart:
helm install garm garm/garm -f values.yaml
Configuration
The following table lists the configurable parameters of the Garm chart and their default values.
| Parameter | Description | Default |
|---|---|---|
image.repository |
Garm image repository | edp.buildth.ing/devfw-cicd/garm |
image.tag |
Garm image tag | provider-ec-30 |
image.pullPolicy |
Image pull policy | IfNotPresent |
replicaCount |
Number of Garm replicas | 1 |
persistence.enabled |
Enable persistence using PVC | true |
persistence.size |
PVC size | 100Gi |
persistence.storageClass |
PVC storage class name | "" |
ingress.enabled |
Enable ingress | true |
ingress.className |
Ingress class name | nginx |
credentials.gitea.generateToken |
Auto-generate Gitea token | true |
credentials.gitea.token |
Custom Gitea token (if generateToken=false) | "" |
credentials.admin.generateCredentials |
Auto-generate admin credentials | true |
credentials.admin.username |
Admin username | admin |
credentials.admin.password |
Custom admin password (if generateCredentials=false) | "" |
credentials.admin.email |
Admin email | "admin@example.com" |
credentials.edgeConnect.username |
Edge Connect username (required) | "" |
credentials.edgeConnect.password |
Edge Connect password (required) | "" |
Security Considerations
- Always change default passwords in production
- Use secrets management solutions for sensitive data
- Enable TLS via ingress configuration
- Configure proper RBAC if needed
Troubleshooting
-
Check the Garm logs:
kubectl logs -l app.kubernetes.io/name=garm -
Verify the init job status:
kubectl get jobs -l app.kubernetes.io/name=garm -
Check the ingress configuration:
kubectl get ingress -l app.kubernetes.io/name=garm
Uninstalling the Chart
To uninstall/delete the garm deployment:
helm delete garm
Note: This will not delete the PVC. To delete the PVC as well:
kubectl delete pvc -l app.kubernetes.io/name=garm