garm-helm/charts/garm
2025-12-02 13:47:01 +01:00
..
templates added existing edge connect secret 2025-12-02 13:47:01 +01:00
Chart.yaml added helm chart for garm 2025-12-01 15:43:13 +01:00
README.md added helm chart for garm 2025-12-01 15:43:13 +01:00
values.yaml added existing edge connect secret 2025-12-02 13:47:01 +01:00

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

  1. Add the Helm repository:

    helm repo add garm https://your-repo-url
    helm repo update
    
  2. 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.com
    

    Note: If you don't provide custom credentials, the chart will automatically generate secure random values for:

    • Admin password
    • Gitea token
    • JWT secret
    • Database passphrase
  3. 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

  1. Always change default passwords in production
  2. Use secrets management solutions for sensitive data
  3. Enable TLS via ingress configuration
  4. Configure proper RBAC if needed

Troubleshooting

  1. Check the Garm logs:

    kubectl logs -l app.kubernetes.io/name=garm
    
  2. Verify the init job status:

    kubectl get jobs -l app.kubernetes.io/name=garm
    
  3. 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