Temporal
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.
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 |
+-----------------+----------+------------+--------+
+-----------------+----------+------------+--------+