Skip to main content
Version: 2.2.0

Temporal

warning

This guide is for deployment of temporal server with minimal configuration. For production deployment, please refer to their deployment guide.

Helm Chart

To deploy minimal installation with required dependencies only, run the following command:

First clone the helm chart repository and change your current directory to helm-charts

git clone https://github.com/temporalio/helm-charts
cd helm-charts

And run helm install command

helm install \
--repo https://go.temporal.io/helm-charts \
--set server.replicaCount=1 \
--set cassandra.config.cluster_size=1 \
--set elasticsearch.replicas=1 \
--set prometheus.enabled=false \
--set grafana.enabled=false \
temporaltest temporal \
--timeout 15m

Once the installation is complete, you will find the below pods in your kubernetes cluster

$ kubectl get pods
NAME READY STATUS RESTARTS AGE
temporaltest-admintools-6cdf56b869-xdxz2 1/1 Running 0 11m
temporaltest-cassandra-0 1/1 Running 0 11m
temporaltest-frontend-5d5b6d9c59-v9g5j 1/1 Running 2 11m
temporaltest-history-64b9ddbc4b-bwk6j 1/1 Running 2 11m
temporaltest-matching-c8887ddc4-jnzg2 1/1 Running 2 11m
temporaltest-metrics-server-7fbbf65cff-rp2ks 1/1 Running 0 11m
temporaltest-web-77f68bff76-ndkzf 1/1 Running 0 11m
temporaltest-worker-7c9d68f4cf-8tzfw 1/1 Running 2 11m

Forward your machine's local port to Temporal frontend

$ kubectl port-forward services/temporaltest-frontend-headless 7233:7233
Forwarding from 127.0.0.1:7233 -> 7233
Forwarding from [::1]:7233 -> 7233

Similarly forward local port to Temporal web ui

$ kubectl port-forward services/temporaltest-web 8080:8080
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080

Temporal api will be available at localhost:7233 and its web UI at http://localhost:8080.

Namespace

Temporal scope its activities and workflows to a namespace. Without a namespace, Temporal server will not be able to execute any activities or workflows.

important

The namespace created here must be set to the TEMPORAL_NAMESPACE environment variable in the WFE, WFM & WFW configuration.

To create a namespace, shell into admin-tools container via k9s or by running kubectl exec:

$ kubectl exec -it services/temporaltest-admintools /bin/bash
bash-5.0#

From there, use tctl to create a new namespace called default:

tctl --namespace default namespace re

If the namespace is created successfully, listing the namespaces will show default:

temporaltest-admintools-5bbf66d8bf-4rrqk:/etc/temporal$ tctl namespace list
Name: default
Id: ad73dd50-ac5f-4c58-ae6c-34e54fe316cd
Description:
OwnerEmail:
NamespaceData: map[string]string(nil)
State: Registered
Retention: 72h0m0s
ActiveClusterName: active
Clusters: active
HistoryArchivalState: Disabled
IsGlobalNamespace: false
FailoverVersion: 0
FailoverHistory: []
VisibilityArchivalState: Disabled
Bad binaries to reset:
+-----------------+----------+------------+--------+
| BINARY CHECKSUM | OPERATOR | START TIME | REASON |
+-----------------+----------+------------+--------+
+-----------------+----------+------------+--------+