temporal-operator

module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2026 License: Apache-2.0

README

temporal-operator

CI Release Go Report Card License

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 v1alpha1 and subject to change.

Installation

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/amd64 and linux/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-namespace

Omitting --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.

Custom Resources

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.

Documentation

See the documentation site. The examples/ directory also contains sample custom resources.

Contributing

See CONTRIBUTING.md. This project follows the Contributor Covenant code of conduct, requires Conventional Commits, and uses the Developer Certificate of Origin (DCO).

Acknowledgments

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.

License

Licensed under the Apache License 2.0.

Directories

Path Synopsis
api
v1alpha1
Conversion / hub-and-spoke notes:
Conversion / hub-and-spoke notes:
internal
persistence
Package persistence contains helpers for resolving Temporal persistence configuration, including datastore credentials sourced from Secrets.
Package persistence contains helpers for resolving Temporal persistence configuration, including datastore credentials sourced from Secrets.
resources
Package resources contains builders for the Kubernetes objects the operator manages (Jobs, Deployments, Services, ConfigMaps, etc.).
Package resources contains builders for the Kubernetes objects the operator manages (Jobs, Deployments, Services, ConfigMaps, etc.).
temporal
Package temporal contains Temporal-version-aware helpers: the supported version compatibility matrix and the server config-template renderer.
Package temporal contains Temporal-version-aware helpers: the supported version compatibility matrix and the server config-template renderer.
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL