A modern Kubernetes operator for Temporal, written in Go with the Operator SDK / Kubebuilder. It manages the full lifecycle of Temporal clusters — persistence, schema management, mTLS, rollouts, and version upgrades — through declarative custom resources.
Status: early development. APIs are
v1alpha1and subject to change.
The operator is published as a Helm chart (OCI) and a multi-arch container image on GitHub Container Registry.
Prerequisites:
- A Kubernetes cluster (the operator image is built for
linux/amd64andlinux/arm64). - cert-manager installed in the cluster — the chart provisions webhook and metrics certificates through it.
Install:
helm install temporal-operator \
oci://ghcr.io/bmorton/charts/temporal-operator \
--namespace temporal-operator-system --create-namespaceOmitting --version installs the latest release; pin a specific version (for
example --version 0.2.1) for reproducible deploys.
The chart defaults to the matching operator image
(ghcr.io/bmorton/temporal-operator) at the chart's appVersion, so no extra
configuration is required. See dist/chart/README.md
for configurable values.
| Kind | Short | Purpose |
|---|---|---|
TemporalCluster |
tc |
A complete Temporal server deployment. |
TemporalNamespace |
tns |
A namespace within a managed cluster. |
TemporalSearchAttribute |
tsa |
A custom search attribute registration. |
TemporalClusterClient |
tcc |
Generated client credentials for a cluster. |
See the documentation site. The
examples/ directory also contains sample custom resources.
The Resource Preview
tool runs in your browser (no install) and shows every Kubernetes object the
operator would create for a pasted TemporalCluster.
See CONTRIBUTING.md. This project follows the Contributor Covenant code of conduct, requires Conventional Commits, and uses the Developer Certificate of Origin (DCO).
This project is heavily inspired by and indebted to alexandrevilain/temporal-operator — it simply wouldn't exist without that work.
temporal-operator was built from the ground up as a personal project to explore building a Kubernetes operator end to end, to automate as much of a project's lifecycle as is reasonable and helpful, and to sharpen my skills working with agentic tooling.
Licensed under the Apache License 2.0.