A Helm chart for deploying Typesense search engine on Kubernetes.
# Install with default values
helm install typesense ./typesense
# Install with custom values
helm install typesense ./typesense -f custom-values.yaml
# Install in a specific namespace
helm install typesense ./typesense --namespace search --create-namespace
helm upgrade typesense ./typesense
helm uninstall typesense
The following table lists the configurable parameters and their default values.
| Parameter | Description | Default |
|---|---|---|
image.repository | Typesense image repository | typesense/typesense |
image.tag | Typesense image tag | 28.0 |
image.pullPolicy | Image pull policy | IfNotPresent |
replicaCount | Number of replicas | 1 |
service.type | Service type | LoadBalancer |
service.port | Service port | 8108 |
service.targetPort | Container target port | 8108 |
config.host | Typesense host | localhost |
config.port | Typesense port | 8108 |
config.protocol | Typesense protocol | http |
config.collectionName | Default collection name | spl_locations |
config.logLevel | Log level | info |
apiKey | Typesense API key | M@aps4world! |
serverArgs.dataDir | Data directory path | /data |
serverArgs.listenPort | Listen port | 8108 |
serverArgs.enableCors | Enable CORS | true |
serverArgs.memoryAddressSpaceLimitMb | Memory limit in MB | 16384 |
serverArgs.enableMmap | Enable memory mapping | true |
serverArgs.logLevel | Server log level | info |
resources.requests.memory | Memory request | 2Gi |
resources.requests.cpu | CPU request | 1000m |
resources.limits.memory | Memory limit | 16Gi |
resources.limits.cpu | CPU limit | 8000m |
persistence.enabled | Enable persistence | true |
persistence.storageClassName | Storage class name | standard-rwo |
persistence.accessModes | Access modes | [ReadWriteOnce] |
persistence.size | Storage size | 512Gi |
livenessProbe.enabled | Enable liveness probe | true |
readinessProbe.enabled | Enable readiness probe | true |
helm install typesense ./typesense \
--set apiKey="your-secure-api-key-here" \
--set service.type=ClusterIP \
--set persistence.size=1Ti
helm install typesense ./typesense \
--set persistence.enabled=false \
--set resources.requests.memory=512Mi \
--set resources.limits.memory=2Gi
Create a custom-values.yaml file:
replicaCount: 1
image:
tag: "28.0"
service:
type: ClusterIP
apiKey: "your-production-api-key"
config:
collectionName: "my_custom_collection"
logLevel: "debug"
resources:
requests:
memory: "4Gi"
cpu: "2000m"
limits:
memory: "32Gi"
cpu: "16000m"
persistence:
size: 1Ti
storageClassName: "fast-ssd"
nodeSelector:
disktype: ssd
Then install:
helm install typesense ./typesense -f custom-values.yaml
helm install typesense ./typesense \
--set apiKey="$(openssl rand -base64 32)"
This chart uses a PersistentVolumeClaim for data persistence. Make sure your cluster has a storage class configured.
To disable persistence:
helm install typesense ./typesense --set persistence.enabled=false
The chart includes liveness and readiness probes that check the /health endpoint. You can disable them:
livenessProbe:
enabled: false
readinessProbe:
enabled: false
After installation, follow the instructions in the NOTES output to access your Typesense instance.
kubectl port-forward svc/typesense 8108:8108
curl http://localhost:8108/health
kubectl get svc typesense
# Use the EXTERNAL-IP shown
curl http://<EXTERNAL-IP>:8108/health
kubectl logs -l app.kubernetes.io/name=typesense
kubectl get pods -l app.kubernetes.io/name=typesense
kubectl describe deployment typesense
Contributions are welcome! Please submit pull requests or issues.
This Helm chart is provided as-is.
Content type
Helm
Digest
sha256:105d1746b…
Size
7 kB
Last updated
about 2 months ago
helm pull oci://registry-1.docker.io/rilusmahmud/typesense --version 1.2.1