TypesenseSupportedVersions KubernetesSupportedVersions License Go GitHub Release Stars
Simplify the deployment, scaling, and management of Typesense clusters in Kubernetes.
- Deploy highly-available Typesense clusters with a single declarative YAML manifest
- Automates Typesense lifecycle management (config maps, secrets, volumes, statefulsets, services, ingress, metrics, scrapers)
- Automates Raft quorum configuration, discovery and recovery without additional sidecars or manual interventions
- Built with Go & Operator SDK β lightweight, Kubernetes-native, and flexible
- Community-driven, with plethora of examples for Kind, CCE, AKS, EKS, GCP, and more
# Install the Operator
helm repo add tyko https://akyriako.github.io/typesense-operator/
helm repo update
helm upgrade --install typesense-operator tyko/typesense-operator -n typesense-system --create-namespaceQuick example for Open Telekom Cloud CCE
apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-otc-1 spec: image: typesense/typesense:30.0 replicas: 3 storage: storageClassName: csi-disk
Quick example for Open Telekom Cloud CCE with OBS S3 support
apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-otc-2 spec: image: typesense/typesense:30.0 replicas: 3 storage: storageClassName: csi-obs accessMode: ReadWriteMany annotations: csi.storage.k8s.io/fstype: obsfs volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner csi.storage.k8s.io/node-publish-secret-name: otc-aksk csi.storage.k8s.io/node-publish-secret-namespace: default everest.io/csi.volume-name-prefix: c-otc-2
Quick example for Open Telekom Cloud CCE with SFS Turbo S3 support
apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-otc-3 spec: image: typesense/typesense:30.0 replicas: 3 storage: storageClassName: csi-obs accessMode: ReadWriteMany annotations: everest.io/obs-volume-type: STANDARD csi.storage.k8s.io/fstype: s3fs volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner csi.storage.k8s.io/node-publish-secret-name: otc-aksk csi.storage.k8s.io/node-publish-secret-namespace: default everest.io/csi.volume-name-prefix: c-otc-3
Quick example for bare metal K3s with Democratic CSI
apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-bm-k3s spec: image: typesense/typesense:30.0 replicas: 3 storage: storageClassName: nfs
Quick example for Kind
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: typesense-local-path provisioner: rancher.io/local-path reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer --- apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-kind spec: image: typesense/typesense:30.0 replicas: 3 storage: size: 150Mi storageClassName: typesense-local-path
Quick example for AWS EKS
apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-aws spec: image: typesense/typesense:30.0 replicas: 3 storage: size: 100Mi storageClassName: gp2
Quick example for Azure AKS
apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-azure spec: image: typesense/typesense:30.0 replicas: 3 storage: storageClassName: managed-csi
Quick example for GCP
apiVersion: ts.opentelekomcloud.com/v1alpha1 kind: TypesenseCluster metadata: labels: app.kubernetes.io/name: typesense-operator app.kubernetes.io/managed-by: kustomize name: ts-gcp spec: image: typesense/typesense:30.0 replicas: 3 storage: storageClassName: standard-rwo
You can find more examples and analytical installation instructions in the Installation and Configuration guides.
Join the conversation:
- GitHub Discussions: ask questions, share feedback, submit suggestions or help others
- Issues: report bugs or request features
TyKO is an independently maintained project (not affiliated with Typesense, Inc.).
- Latest version: 0.3.8
- Tested on: Kubernetes 1.35 (earliest 1.26), Typesense 30.0 (earliest 26.0)
- Contributions welcome! See FAQ and Development
- Star the repo if you want this operator to grow
- Try TyKO in your own infrastructure and share your feedback or list yourselves as Adopters
- Spread the word: blog posts, tutorials, or community shoutouts help others discover it