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