mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What Changed This PR introduces a new `--config-file` flag (and the `TEMPORAL_SERVER_CONFIG_FILE_PATH ` environment variable) to remove the dependency on `dockerize` in the Temporal server Docker image. When a configuration file is specified using either the CLI flag or the environment variable, the server will load configuration **only** from that file. Users who want templating behavior similar to `dockerize` can enable it by adding the comment `# enable-template` at the top of the configuration file. --- ### Key Changes 1. **New `--config-file` flag:** * Adds a global `--config-file` flag that accepts a path to a single configuration file (absolute or relative to the project root). * Can also be set via the `TEMPORAL_SERVER_CONFIG_FILE_PATH ` environment variable. 2. **Deprecated legacy flags:** * The `--config`, `--env`, and `--zone` flags are now marked as **deprecated** in CLI help text. * These flags still work for backward compatibility. 3. **Embedded config template:** * The `config_template.yaml` file is now embedded in the binary to support loading configuration from environment variables. * Templating is supported if the file includes the `# enable-template` comment at the top. 4. **Templating support:** * Configuration files can use templating by including `# enable-template` at the beginning of the YAML file. --- ### Configuration Loading Priority (Highest to Lowest) 1. **`--config-file` specified** → Load that specific file 2. **`--config`, `--env`, or `--zone` specified** → Load from configuration directory (**deprecated**) 3. **No configuration specified** → Load from embedded template using environment variables (default) --- ### Expected Behavior The following examples illustrate how the new configuration loading logic behaves: * **Default behavior:** Running `temporal start` without flags loads configuration from environment variables only using the embedded template. * **Using `--config-file`:** `temporal --config-file=/path/to/config.yaml start` loads configuration from the specified file path. * **Using `TEMPORAL_SERVER_CONFIG_FILE_PATH`:** Setting `TEMPORAL_SERVER_CONFIG_FILE_PATH=/path/to/config.yaml temporal start` has the same effect as using the flag. * **Validation and error handling:** The CLI returns clear error messages when conflicting flags or environment variables are used, or when a specified file does not exist. --- ## Breaking Change The default behavior of `temporal start` has changed. It now loads configuration **from environment variables** instead of using a default template path. --------- Co-authored-by: Alex Stanfield <[email protected]> Co-authored-by: michaely520 <[email protected]> Co-authored-by: Yichao Yang <[email protected]> Co-authored-by: David Reiss <[email protected]>
143 lines
3.0 KiB
YAML
143 lines
3.0 KiB
YAML
log:
|
|
stdout: true
|
|
level: info
|
|
|
|
persistence:
|
|
defaultStore: sqlite-default
|
|
visibilityStore: sqlite-visibility
|
|
numHistoryShards: 1
|
|
datastores:
|
|
sqlite-default:
|
|
sql:
|
|
user: ""
|
|
password: ""
|
|
pluginName: "sqlite"
|
|
databaseName: "default"
|
|
connectAddr: "localhost"
|
|
connectProtocol: "tcp"
|
|
connectAttributes:
|
|
cache: "private"
|
|
setup: true
|
|
journal_mode: wal
|
|
synchronous: 2
|
|
maxConns: 1
|
|
maxIdleConns: 1
|
|
maxConnLifetime: "1h"
|
|
tls:
|
|
enabled: false
|
|
caFile: ""
|
|
certFile: ""
|
|
keyFile: ""
|
|
enableHostVerification: false
|
|
serverName: ""
|
|
|
|
sqlite-visibility:
|
|
sql:
|
|
user: ""
|
|
password: ""
|
|
pluginName: "sqlite"
|
|
databaseName: "default"
|
|
connectAddr: "localhost"
|
|
connectProtocol: "tcp"
|
|
connectAttributes:
|
|
cache: "private"
|
|
setup: true
|
|
journal_mode: wal
|
|
synchronous: 2
|
|
maxConns: 1
|
|
maxIdleConns: 1
|
|
maxConnLifetime: "1h"
|
|
tls:
|
|
enabled: false
|
|
caFile: ""
|
|
certFile: ""
|
|
keyFile: ""
|
|
enableHostVerification: false
|
|
serverName: ""
|
|
global:
|
|
membership:
|
|
maxJoinDuration: 30s
|
|
broadcastAddress: "127.0.0.1"
|
|
pprof:
|
|
port: 7936
|
|
metrics:
|
|
prometheus:
|
|
# # specify framework to use new approach for initializing metrics and/or use opentelemetry
|
|
# framework: "opentelemetry"
|
|
framework: "tally"
|
|
timerType: "histogram"
|
|
listenAddress: "127.0.0.1:8000"
|
|
|
|
services:
|
|
frontend:
|
|
rpc:
|
|
grpcPort: 7233
|
|
membershipPort: 6933
|
|
bindOnLocalHost: true
|
|
httpPort: 7243
|
|
|
|
matching:
|
|
rpc:
|
|
grpcPort: 7235
|
|
membershipPort: 6935
|
|
bindOnLocalHost: true
|
|
|
|
history:
|
|
rpc:
|
|
grpcPort: 7234
|
|
membershipPort: 6934
|
|
bindOnLocalHost: true
|
|
|
|
worker:
|
|
rpc:
|
|
grpcPort: 7239
|
|
membershipPort: 6939
|
|
bindOnLocalHost: true
|
|
|
|
clusterMetadata:
|
|
enableGlobalNamespace: false
|
|
failoverVersionIncrement: 10
|
|
masterClusterName: "active"
|
|
currentClusterName: "active"
|
|
clusterInformation:
|
|
active:
|
|
enabled: true
|
|
initialFailoverVersion: 1
|
|
rpcName: "frontend"
|
|
rpcAddress: "localhost:7233"
|
|
httpAddress: "localhost:7243"
|
|
|
|
dcRedirectionPolicy:
|
|
policy: "noop"
|
|
|
|
archival:
|
|
history:
|
|
state: "enabled"
|
|
enableRead: true
|
|
provider:
|
|
filestore:
|
|
fileMode: "0666"
|
|
dirMode: "0766"
|
|
gstorage:
|
|
credentialsPath: "/tmp/gcloud/keyfile.json"
|
|
visibility:
|
|
state: "enabled"
|
|
enableRead: true
|
|
provider:
|
|
filestore:
|
|
fileMode: "0666"
|
|
dirMode: "0766"
|
|
|
|
namespaceDefaults:
|
|
archival:
|
|
history:
|
|
state: "disabled"
|
|
URI: "file:///tmp/temporal_archival/development"
|
|
visibility:
|
|
state: "disabled"
|
|
URI: "file:///tmp/temporal_vis_archival/development"
|
|
|
|
dynamicConfigClient:
|
|
filepath: "config/dynamicconfig/development-sql.yaml"
|
|
pollInterval: "10s"
|