Skip to content

Kubernetes & Helm

  • Kubernetes cluster (v1.24+)
  • Helm v3.8+
  • kubectl configured
Terminal window
# Add the JustAPI Helm repository
helm repo add justapi https://justapi.dev/charts
helm repo update
# Install
helm upgrade --install my-app justapi/justapi \
--set image.repository=myregistry/my-app \
--set image.tag=latest
helm/justapi/
├── Chart.yaml
├── values.yaml
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ ├── hpa.yaml
│ ├── configmap.yaml
│ ├── secret.yaml
│ └── serviceaccount.yaml
└── _helpers.tpl
Parameter Default Description
replicaCount 2 Number of replicas
image.repository Container image
image.tag latest Image tag
image.pullPolicy Always Pull policy
service.port 8080 Service port
ingress.enabled false Enable ingress
ingress.host Ingress hostname
ingress.tls false Enable TLS
resources.limits.cpu "1000m" CPU limit
resources.limits.memory "512Mi" Memory limit
hpa.enabled true Enable HPA
hpa.minReplicas 2 Min pods
hpa.maxReplicas 10 Max pods
hpa.targetCPUUtilization 70 CPU target %
config.rustLog "info" RUST_LOG value
config.otelServiceName "justapi" OTel service name
secret.databaseUrl DB connection string
secret.redisUrl Redis connection string
Terminal window
helm upgrade --install my-app justapi/justapi \
--set replicaCount=4 \
--set resources.limits.cpu="2000m" \
--set resources.limits.memory="1Gi" \
--set hpa.targetCPUUtilization=50 \
--set config.rustLog="debug" \
--set ingress.enabled=true \
--set ingress.host="api.example.com"
ingress:
enabled: true
host: api.example.com
tls: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod

The chart configures Kubernetes probes automatically:

  • Liveness: GET /health — Is the process alive?
  • Readiness: GET /ready — Is the app ready to serve traffic?
  • Startup: GET /health — Has the app finished starting?