temporal-operator

command module
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

README

temporal-operator

The Kubernetes Operator to deploy and manage Temporal clusters.

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.
  • Auto scaling.
  • Multi cluster replication.
  • Complete end2end test suite.

Quick start

First install cert-manager on your cluster. The operator comes with admissions webhooks that needs self-signed certificates.

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.10.1/cert-manager.yaml

(You can use the installation method you want, see the cert-manager's documentation). Note that you can use your own certificates if you don't want cert-manager on your cluster.

Then install Temporal Operator's CRDs and the operator itself on your cluster:

kubectl apply --server-side -f https://github.com/alexandrevilain/temporal-operator/releases/latest/download/temporal-operator.crds.yaml
kubectl apply -f https://github.com/alexandrevilain/temporal-operator/releases/latest/download/temporal-operator.yaml

Then create the namespace "demo" and create a simple postgresql server:

kubectl apply -f https://raw.githubusercontent.com/alexandrevilain/temporal-operator/main/examples/cluster-postgres/00-namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/alexandrevilain/temporal-operator/main/examples/cluster-postgres/01-postgresql.yaml

Finish by creating your first temporal cluster:

apiVersion: temporal.io/v1beta1
kind: TemporalCluster
metadata:
  name: prod
  namespace: demo
spec:
  version: 1.18.5
  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

Apply this file to the cluster. For more customization options refers to the api documentation.

Documentation

Examples

Few examples are available to help you get started:

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1beta1
Package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=temporal.io
Package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=temporal.io
examples
internal
pkg
version
+kubebuilder:object:generate=true
+kubebuilder:object:generate=true
tests

Jump to

Keyboard shortcuts

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