Skip to main content

Kubernetes deployment

Untested - Placeholder Documentation

This Kubernetes deployment guide is a placeholder based on standard Helm chart patterns. It has not been tested and no official Helm chart exists yet.

If you need Kubernetes deployment, please contact us or use Docker Compose instead.

Deploy Synjar on Kubernetes for enterprise-scale deployments with high availability.

Prerequisites​

  • Kubernetes 1.24+
  • Helm 3.0+
  • kubectl configured
  • External PostgreSQL (recommended)
  • External S3-compatible storage

Quick start with Helm​

# Add Synjar Helm repository
helm repo add synjar https://charts.synjar.com
helm repo update

# Install with default values
helm install synjar synjar/synjar \
--set database.url="postgresql://user:pass@host:5432/synjar" \
--set openai.apiKey="sk-your-api-key" \
--set jwt.secret="your-32-char-secret-minimum"

Configuration​

values.yaml​

replicaCount: 2

image:
repository: synjar/synjar
tag: latest
pullPolicy: IfNotPresent

service:
type: ClusterIP
port: 6200

ingress:
enabled: true
className: nginx
hosts:
- host: synjar.yourdomain.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: synjar-tls
hosts:
- synjar.yourdomain.com

database:
url: "postgresql://user:pass@postgres-host:5432/synjar"

openai:
apiKey: "sk-your-api-key"

jwt:
secret: "your-32-char-secret-minimum"

storage:
keyId: "your-key-id"
appKey: "your-app-key"
bucket: "your-bucket"
endpoint: "s3.region.backblazeb2.com"

resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 2000m
memory: 2Gi

autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70

Install with custom values​

helm install synjar synjar/synjar -f values.yaml

Components​

Deployment​

  • Stateless application pods
  • Horizontal pod autoscaling
  • Rolling updates

Service​

  • ClusterIP for internal access
  • LoadBalancer for external (cloud providers)

Ingress​

  • TLS termination
  • Path-based routing

ConfigMap/Secrets​

  • Non-sensitive config in ConfigMap
  • Sensitive values in Secrets

High availability​

Multiple replicas​

replicaCount: 3

Pod disruption budget​

podDisruptionBudget:
enabled: true
minAvailable: 1

Database​

Use a managed PostgreSQL service:

  • AWS RDS
  • Google Cloud SQL
  • Azure Database for PostgreSQL

Monitoring​

Prometheus metrics​

metrics:
enabled: true
port: 9090

Health checks​

livenessProbe:
httpGet:
path: /health
port: 6200
initialDelaySeconds: 30
periodSeconds: 10

readinessProbe:
httpGet:
path: /health
port: 6200
initialDelaySeconds: 5
periodSeconds: 5

Upgrading​

helm upgrade synjar synjar/synjar -f values.yaml

Uninstalling​

helm uninstall synjar

See also​