/temporal-operator

Temporal Kubernetes Operator

Primary LanguageGoApache License 2.0Apache-2.0

temporal-operator

The Kubernetes Operator to deploy and manage Temporal clusters.

Using this operator, deploying a Temporal Cluster on Kubernetes is as easy as deploying the following manifest:

apiVersion: temporal.io/v1beta1
kind: TemporalCluster
metadata:
  name: prod
  namespace: demo
spec:
  version: 1.24.3
  numHistoryShards: 1
  persistence:
    defaultStore:
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal
        connectAddr: postgres.demo.svc.cluster.local:5432
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD
    visibilityStore:
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal_visibility
        connectAddr: postgres.demo.svc.cluster.local:5432
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD

Documentation

The documentation is available at: https://temporal-operator.pages.dev/.

Quick start

To start using the Operator and deploy you first cluster in a matter of minutes, follow the documentation's getting started guide.

Examples

Somes examples are available to help you get started:

Compatibility matrix

The following table shows operator compatibility with Temporal and Kubernetes. Please note this table only reports end-to-end tests suite coverage, others versions may work.

Temporal Operator Temporal Kubernetes
v0.20.x v1.19.x to v1.24.x v1.26 to v1.30
v0.19.x v1.19.x to v1.23.x v1.25 to v1.29
v0.18.x v1.19.x to v1.23.x v1.25 to v1.29
v0.17.x v1.18.x to v1.22.x v1.25 to v1.29
v0.16.x v1.18.x to v1.22.x v1.24 to v1.27
v0.15.x v1.18.x to v1.21.x v1.24 to v1.27
v0.14.x v1.18.x to v1.21.x v1.24 to v1.27
v0.13.x v1.18.x to v1.20.x v1.24 to v1.27
v0.12.x v1.18.x to v1.20.x v1.23 to v1.26
v0.11.x v1.17.x to v1.19.x v1.23 to v1.26
v0.10.x v1.17.x to v1.19.x v1.23 to v1.26
v0.9.x v1.16.x to v1.18.x v1.22 to v1.25

Roadmap

Features

  • Deploy a new temporal cluster.
  • Ability to deploy multiple clusters.
  • Support for SQL datastores.
  • Deploy Web UI.
  • Deploy admin tools.
  • Support for Elastisearch.
  • Support for Cassandra datastore.
  • Automatic mTLS certificates management (using cert-manager).
  • Support for integration in meshes: istio & linkerd.
  • Namespace management using CRDs.
  • Cluster version upgrades.
  • Cluster monitoring.
  • Complete end2end test suite.
  • Archival.
  • Auto scaling.
  • Multi cluster replication.

Contributing

Feel free to contribute to the project ! All issues and PRs are welcome! To start hacking on the project, you can follow the local development documentation page.

License

Temporal Operator is licensed under Apache License Version 2.0. See LICENSE for more information.