Charmed Temporal K8s Tutorial - Deploy Temporal Server

Deploy Temporal Server

This is part of the Charmed Temporal Tutorial. Please refer to this page for more information and the overview of the content.

The Temporal server is a group of four independently scalable services (frontend, history, matching and worker). It is responsible for state management and task synchronization among other functionalities.

Requirements

Deploy

To deploy Charmed Temporal K8s, all you need to do is run the following command, which will fetch the charm from Charmhub and deploy it to your model:

juju deploy temporal-k8s --channel 1.23/stable --base ubuntu@24.04 --config num-history-shards=4

About num-history-shards. The value must be a power of two (1, 2, 4, 8, 16, …) and is deployment-time-only, it cannot be changed after the charm is deployed without a fresh deployment and data migration. 4 is a reasonable default for development; production deployments typically pick a higher power of two based on expected workflow throughput.

For more information about history shards, see the official Temporal documentation.

Check status

Monitor the model while the application starts up:

juju status --watch 1s

Wait until the application stabilizes. At this point, it should be blocked, waiting for a database:

App           Version  Status   Scale  Charm         Channel       Rev  Address         Exposed  Message
temporal-k8s           blocked      1  temporal-k8s  1.23/stable   68   10.152.183.120  no       database relation not ready

Unit             Workload  Agent  Address     Ports  Message
temporal-k8s/0*  blocked   idle   10.1.0.152         database relation not ready

Press Ctrl+C to exit the watch.

See next: Deploy PostgreSQL Database