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-cce
spec:
  image: typesense/typesense:29.0
  replicas: 3
  storage:
    storageClassName: csi-diskQuick 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:29.0
  replicas: 3
  storage:
    storageClassName: nfsQuick 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:29.0
  replicas: 3
  storage:
    size: 150Mi
    storageClassName: typesense-local-pathQuick 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:29.0
  replicas: 3
  storage:
    size: 100Mi
    storageClassName: gp2Quick 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:29.0
  replicas: 3
  storage:
    storageClassName: managed-csiQuick 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:29.0
  replicas: 3
  storage:
    storageClassName: standard-rwoYou 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.4
- Tested on: Kubernetes 1.33 (earliest 1.26), Typesense 29.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
