akyriako78/typesense-operator

By akyriako78

Updated 4 months ago

Simplifies deploying, scaling, and managing highly-available Typesense clusters in Kubernetes

Image
0

10K+

akyriako78/typesense-operator repository overview

TyKO Logo

🎯 Why TyKO?

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

⚡ Get Started

# 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-namespace
Quick 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-disk
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:29.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:29.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:29.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:29.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:29.0
  replicas: 3
  storage:
    storageClassName: standard-rwo

You can find more examples and analytical installation instructions in the Installation and Configuration guides.

📚 Documentation

💬 Community & Support

Join the conversation:

⭐ Help us Grow

  • 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

Tag summary

Content type

Image

Digest

sha256:73cf6dd54

Size

37.2 MB

Last updated

4 months ago

docker pull akyriako78/typesense-operator:0.4.1-dev.12