User Workloads
Custom applications where you provide your own Helm chart values directly.
Overview
Section titled “Overview”Unlike system workloads (which have pre-configured presets), user workloads require you to specify all Helm values yourself. This gives you full control over the chart configuration.
HTTP Service Example
Section titled “HTTP Service Example”HTTP services use Traefik ingress for routing. No TCP port configuration needed.
workloads: http-webhook: type: user description: HTTP service with Traefik ingress chart: repo: securecodebox # From catalog repositories name: securecodebox/http-webhook version: "5.5.0" defaults: namespace: default values: # You provide ALL Helm values (no presets) ingress: enabled: true ingressClassName: traefik annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls: "true" hosts: - host: echo.${LOKO_APPS_DOMAIN} paths: [/] tls: - hosts: - echo.${LOKO_APPS_DOMAIN}HTTP Service Access: https://echo.${LOKO_APPS_DOMAIN}
TCP Service Example
Section titled “TCP Service Example”TCP services require port exposure and special routing configuration.
workloads: tcp-echo: type: user description: TCP service requiring port exposure chart: repo: istio name: istio/tcp-echo-server version: "1.2.0" defaults: namespace: default ports: [9000] # Dynamically routed via HAProxy tunnel values: service: type: ClusterIP ports: - port: 9000 name: tcp protocol: TCPRequirements:
- Port exposed via HAProxy tunnel (automatically updated when ports change)
- DNS host record configuration
- Traefik TCPIngressRoute for routing (automatically configured)
TCP Service Access: telnet tcp-echo.${LOKO_DOMAIN} 9000
Using External Repositories
Section titled “Using External Repositories”If your chart is not from a catalog repository, add the Helm repository to your config:
# loko.yamlworkloads: helm-repositories: - name: my-custom-repo url: https://my-charts.example.com/Then reference it in your workload:
workloads: my-app: type: user chart: repo: my-custom-repo name: my-custom-repo/my-chart version: "1.0.0" values: # Your chart values hereSystem vs User Workloads
Section titled “System vs User Workloads”| Feature | System Workloads | User Workloads |
|---|---|---|
| Presets | Pre-configured values | You provide all values |
| Secrets | Auto-generated | You manage |
| Configuration | Simplified | Full Helm control |
| Use Case | Standard services | Custom applications |
| Examples | PostgreSQL, RabbitMQ, ArgoCD | Your own apps, custom charts |
Deployment
Section titled “Deployment”# Add workload to configloko workloads add my-app
# Enable and deployloko workloads enable my-app --now
# Check statusloko workloads status my-appNext Steps
Section titled “Next Steps”- Helm Repositories - Available catalog repos
- System Workloads - Pre-configured workloads
- Contributing Guide - Add your workload to the catalog