temporal-operator

command module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

README

temporal-operator

The Kubernetes Operator to deploy and manage Temporal clusters.

Current Status: Work in Progress. The operator can create a basic cluster. Many improvements are needed to make it production ready.

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.
  • Cluster version upgrades.
  • Automatic mTLS certificates management (using istio, linkerd or cert-manager).
  • Cluster monitoring.
  • Auto scaling.
  • Multi cluster replication.
  • Complete end2end test suite.

Quick start

First install CRDs on your cluster and the operator:

kubectl apply -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: apps.alexandrevilain.dev/v1alpha1
kind: TemporalCluster
metadata:
  name: prod
  namespace: demo
spec:
  version: 1.16.0
  numHistoryShards: 1
  persistence:
    defaultStore: default
    visibilityStore: visibility
  datastores:
    - name: default
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal
        connectAddr: postgres.demo.svc.cluster.local
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD
    - name: visibility
      sql:
        user: temporal
        pluginName: postgres
        databaseName: temporal_visibility
        connectAddr: postgres.demo.svc.cluster.local
        connectProtocol: tcp
      passwordSecretRef:
        name: postgres-password
        key: PASSWORD

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

Examples

Few examples are available to help you get started:

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
v1alpha1
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.alexandrevilain.dev
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.alexandrevilain.dev
examples
internal
pkg
log
tests

Jump to

Keyboard shortcuts

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