Deploy the Workastra application suite on Kubernetes using this Helm chart.
This repository contains Helm charts for deploying Workastra applications on Kubernetes.
workastra/helm/ # Main Helm charts repository
├── README.md # This file - Quick start guide
├── ct.yaml # Chart Testing config
├── charts/
│ ├── workastra/ # Main parent chart
│ │ ├── README.md # Detailed workastra chart configuration
│ │ ├── Chart.yaml
│ │ ├── values.yaml
│ │ └── charts/
│ │ └── desk/ # Desk sub-chart dependency
│ └── desk/ # Desk application chart source
│ ├── README.md # Detailed desk chart configuration
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/ # Kubernetes resource templates
| Chart | Purpose | Location |
|---|---|---|
| workastra | Parent chart that deploys the complete Workastra stack | ./charts/workastra/ |
| desk | Desk application component with Kubernetes resources | ./charts/desk/ |
For detailed configuration options of each chart, see:
- Kubernetes v1.24+
- Helm v3.10+
- Gateway API Controller (Envoy Gateway, Kong, or NGINX Gateway)
- kubectl configured
cd /path/to/workastra/helm
helm install workastra ./charts/workastra \
--namespace workastra \
--create-namespaceNote: Requires Gateway API resources setup first.
For Envoy Gateway:
helm repo add envoy https://envoyproxy.io/charts
helm repo update
helm install eg-release envoy/gateway-helm-chart \
--namespace envoy-gateway-system \
--create-namespacekubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: eg
spec:
controllerName: gateway.envoyproxy.io/gatewayclass-controller
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: eg
namespace: default
spec:
gatewayClassName: eg
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: All
EOFVerify:
kubectl get gateway
kubectl get gatewayclasshelm install workastra ./charts/workastra \
--namespace workastra \
--create-namespaceCreate values.yaml:
desk:
replicaCount: 3
image:
tag: "1.0.0"
tenant:
scheme: https
domain: workastra.example.com
httpRoute:
hostnames:
- workastra.example.com
secrets:
keys:
- "app-key"
oauth2:
clientSecret: "secret"Install:
helm install workastra ./charts/workastra \
--namespace workastra \
--create-namespace \
--values values.yamlhelm upgrade workastra ./charts/workastra \
--namespace workastra \
--values values.yaml| Option | Default | Description |
|---|---|---|
desk.enabled |
true |
Enable Desk deployment |
desk.replicaCount |
1 |
Number of replicas |
desk.image.repository |
docker.io/library/workastra-desk |
Image repo |
desk.image.tag |
latest |
Image tag |
desk.service.port |
3000 |
Service port |
desk.tenant.scheme |
http |
HTTP or HTTPS |
desk.tenant.domain |
workastra.com |
Domain name |
desk.httpRoute.enabled |
true |
Enable HTTPRoute |
desk.secrets.keys |
[] |
App keys |
desk.autoscaling.enabled |
false |
Enable auto-scaling |
Development Setup:
helm install workastra ./charts/workastra \
--namespace workastra --create-namespace \
--set desk.image.tag="dev-latest"Production Setup with HTTPS:
helm install workastra ./charts/workastra \
--namespace workastra --create-namespace \
--set desk.replicaCount=3 \
--set desk.tenant.scheme=https \
--set desk.tenant.domain=workastra.example.com \
--set desk.autoscaling.enabled=trueScale Up:
helm upgrade workastra ./charts/workastra \
--namespace workastra \
--set desk.replicaCount=5Disable HTTPRoute:
helm install workastra ./charts/workastra \
--namespace workastra --create-namespace \
--set desk.httpRoute.enabled=falseCheck deployment status:
kubectl get pods -n workastra
kubectl logs <pod-name> -n workastraCheck Gateway API:
kubectl get gateway
kubectl get gatewayclassView current values:
helm get values workastra -n workastraView manifest:
helm get manifest workastra -n workastraUninstall:
helm uninstall workastra -n workastra
kubectl delete namespace workastrahelm install workastra ./charts/workastra -n workastra --create-namespace
helm upgrade workastra ./charts/workastra -n workastra
helm status workastra -n workastra
helm values workastra -n workastra
helm rollback workastra 1 -n workastra