docker/config_template.yaml (302 lines of code) (raw):

log: stdout: true level: {{ default .Env.LOG_LEVEL "info" }} persistence: numHistoryShards: {{ default .Env.NUM_HISTORY_SHARDS "4" }} defaultStore: default visibilityStore: visibility {{- $es := default .Env.ENABLE_ES "false" | lower -}} {{- if eq $es "true" }} advancedVisibilityStore: es-visibility {{- end }} datastores: {{- $db := default .Env.DB "cassandra" | lower -}} {{- if or (eq $db "cassandra") (eq $db "scylla") }} default: nosql: pluginName: "cassandra" hosts: {{ default .Env.CASSANDRA_SEEDS "" }} keyspace: {{ default .Env.KEYSPACE "cadence" }} user: {{ default .Env.CASSANDRA_USER "" }} password: {{ default .Env.CASSANDRA_PASSWORD "" }} protoVersion: {{ default .Env.CASSANDRA_PROTO_VERSION "4" }} visibility: nosql: pluginName: "cassandra" hosts: {{ default .Env.CASSANDRA_SEEDS "" }} keyspace: {{ default .Env.VISIBILITY_KEYSPACE "cadence_visibility" }} user: {{ default .Env.CASSANDRA_USER "" }} password: {{ default .Env.CASSANDRA_PASSWORD "" }} protoVersion: {{ default .Env.CASSANDRA_PROTO_VERSION "4" }} {{- else if eq $db "mysql" }} default: sql: pluginName: "mysql" databaseName: {{ default .Env.DBNAME "cadence" }} connectAddr: "{{ default .Env.MYSQL_SEEDS "" }}:{{ default .Env.DB_PORT "3306" }}" connectProtocol: "tcp" user: {{ default .Env.MYSQL_USER "" }} password: {{ default .Env.MYSQL_PWD "" }} {{- if .Env.MYSQL_TX_ISOLATION_COMPAT }} connectAttributes: tx_isolation: 'READ-COMMITTED' {{- end }} visibility: sql: pluginName: "mysql" databaseName: {{ default .Env.VISIBILITY_DBNAME "cadence_visibility" }} connectAddr: "{{ default .Env.MYSQL_SEEDS "" }}:{{ default .Env.DB_PORT "3306" }}" connectProtocol: "tcp" user: {{ default .Env.MYSQL_USER "" }} password: {{ default .Env.MYSQL_PWD "" }} {{- if .Env.MYSQL_TX_ISOLATION_COMPAT }} connectAttributes: tx_isolation: 'READ-COMMITTED' {{- end }} {{- else if eq $db "postgres" }} default: sql: pluginName: "postgres" encodingType: "thriftrw" decodingTypes: ["thriftrw"] databaseName: {{ default .Env.DBNAME "cadence" }} connectAddr: "{{ default .Env.POSTGRES_SEEDS "" }}:{{ default .Env.DB_PORT "5432" }}" connectProtocol: "tcp" user: {{ default .Env.POSTGRES_USER "" }} password: {{ default .Env.POSTGRES_PWD "" }} maxConns: 20 maxIdleConns: 20 maxConnLifetime: "1h" visibility: sql: pluginName: "postgres" encodingType: "thriftrw" decodingTypes: ["thriftrw"] databaseName: {{ default .Env.VISIBILITY_DBNAME "cadence_visibility" }} connectAddr: "{{ default .Env.POSTGRES_SEEDS "" }}:{{ default .Env.DB_PORT "5432" }}" connectProtocol: "tcp" user: {{ default .Env.POSTGRES_USER "" }} password: {{ default .Env.POSTGRES_PWD "" }} maxConns: 20 maxIdleConns: 20 maxConnLifetime: "1h" {{- end }} {{- if eq $es "true" }} es-visibility: elasticsearch: version: {{ default .Env.ES_VERSION "" }} username: {{ default .Env.ES_USER "" }} password: {{ default .Env.ES_PWD "" }} url: scheme: "http" host: "{{ default .Env.ES_SEEDS "" }}:{{ default .Env.ES_PORT "9200" }}" indices: visibility: {{ default .Env.VISIBILITY_NAME "cadence-visibility-dev" }} {{- end }} ringpop: name: cadence bootstrapMode: {{ default .Env.RINGPOP_BOOTSTRAP_MODE "hosts" }} {{- if .Env.RINGPOP_SEEDS }} bootstrapHosts: {{- range $seed := (split .Env.RINGPOP_SEEDS ",") }} - {{ . }} {{- end }} {{- else }} bootstrapHosts: - {{ .Env.HOST_IP }}:{{ default .Env.FRONTEND_PORT "7933" }} - {{ .Env.HOST_IP }}:{{ default .Env.HISTORY_PORT "7934" }} - {{ .Env.HOST_IP }}:{{ default .Env.MATCHING_PORT "7935" }} - {{ .Env.HOST_IP }}:{{ default .Env.WORKER_PORT "7939" }} {{- end }} maxJoinDuration: 30s services: frontend: rpc: port: {{ default .Env.FRONTEND_PORT "7933" }} grpcPort: {{ default .Env.GRPC_FRONTEND_PORT "7833" }} bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }} {{- if .Env.FRONTEND_HTTP_PORT }} http: port: {{ .Env.FRONTEND_HTTP_PORT }} procedures: {{- range $seed := (split .Env.FRONTEND_HTTP_PROCEDURES ",") }} - {{ . }} {{- end }} {{- end }} {{- if .Env.STATSD_ENDPOINT }} metrics: statsd: hostPort: {{ .Env.STATSD_ENDPOINT }} prefix: {{ default .Env.STATSD_FRONTEND_PREFIX "cadence-frontend" }} {{- else if .Env.PROMETHEUS_ENDPOINT }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT }} {{- else if .Env.PROMETHEUS_ENDPOINT_0 }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT_0 }} {{- end }} matching: rpc: port: {{ default .Env.MATCHING_PORT "7935" }} grpcPort: {{ default .Env.GRPC_MATCHING_PORT "7835" }} bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }} {{- if .Env.STATSD_ENDPOINT }} metrics: statsd: hostPort: {{ .Env.STATSD_ENDPOINT }} prefix: {{ default .Env.STATSD_MATCHING_PREFIX "cadence-matching" }} {{- else if .Env.PROMETHEUS_ENDPOINT }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT }} {{- else if .Env.PROMETHEUS_ENDPOINT_1 }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT_1 }} {{- end }} history: rpc: port: {{ default .Env.HISTORY_PORT "7934" }} grpcPort: {{ default .Env.GRPC_HISTORY_PORT "7834" }} bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }} {{- if .Env.STATSD_ENDPOINT }} metrics: statsd: hostPort: {{ .Env.STATSD_ENDPOINT }} prefix: {{ default .Env.STATSD_HISTORY_PREFIX "cadence-history" }} {{- else if .Env.PROMETHEUS_ENDPOINT }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT }} {{- else if .Env.PROMETHEUS_ENDPOINT_2 }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT_2 }} {{- end }} worker: rpc: port: {{ default .Env.WORKER_PORT "7939" }} bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }} {{- if .Env.STATSD_ENDPOINT }} metrics: statsd: hostPort: {{ .Env.STATSD_ENDPOINT }} prefix: {{ default .Env.STATSD_WORKER_PREFIX "cadence-worker" }} {{- else if .Env.PROMETHEUS_ENDPOINT }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT }} {{- else if .Env.PROMETHEUS_ENDPOINT_3 }} metrics: prometheus: timerType: {{ default .Env.PROMETHEUS_TIMER_TYPE "histogram" }} listenAddress: {{ .Env.PROMETHEUS_ENDPOINT_3 }} {{- end }} clusterGroupMetadata: clusterRedirectionPolicy: policy: {{ default .Env.CLUSTER_REDIRECT_POLICY "all-domain-apis-forwarding" }} failoverVersionIncrement: 10 primaryClusterName: "cluster0" {{- if .Env.IS_NOT_PRIMARY }} currentClusterName: "cluster1" {{- else }} currentClusterName: "cluster0" {{- end }} clusterGroup: cluster0: enabled: true initialFailoverVersion: 0 rpcName: "cadence-frontend" rpcAddress: {{ default .Env.PRIMARY_FRONTEND_SERVICE "cadence" }}:{{ default .Env.FRONTEND_PORT "7833" }} rpcTransport: "grpc" authorizationProvider: enable: {{ default .Env.ENABLE_OAUTH "false" }} type: "OAuthAuthorization" privateKey: {{ default .Env.OAUTH_PRIVATE_KEY "" }} {{- if .Env.ENABLE_GLOBAL_DOMAIN }} cluster1: enabled: true initialFailoverVersion: 2 rpcName: "cadence-frontend" rpcAddress: {{ default .Env.SECONDARY_FRONTEND_SERVICE "cadence-secondary" }}:{{ default .Env.FRONTEND_PORT "7833" }} rpcTransport: "grpc" authorizationProvider: enable: {{ default .Env.ENABLE_OAUTH "false" }} type: "OAuthAuthorization" privateKey: {{ default .Env.OAUTH_PRIVATE_KEY "" }} {{- end }} archival: history: status: {{ default .Env.HISTORY_ARCHIVAL_STATUS "disabled" }} enableRead: {{ default .Env.HISTORY_ARCHIVAL_ENABLE_READ "false" }} provider: filestore: fileMode: {{ default .Env.HISTORY_ARCHIVAL_FILE_MODE "" }} dirMode: {{ default .Env.HISTORY_ARCHIVAL_DIR_MODE "" }} visibility: status: {{ default .Env.VISIBILITY_ARCHIVAL_STATUS "disabled" }} enableRead: {{ default .Env.VISIBILITY_ARCHIVAL_ENABLE_READ "false" }} provider: filestore: fileMode: {{ default .Env.VISIBILITY_ARCHIVAL_FILE_MODE "" }} dirMode: {{ default .Env.VISIBILITY_ARCHIVAL_DIR_MODE "" }} domainDefaults: archival: history: status: {{ default .Env.DOMAIN_DEFAULTS_HISTORY_ARCHIVAL_STATUS "disabled" }} URI: {{ default .Env.DOMAIN_DEFAULTS_HISTORY_ARCHIVAL_URI "" }} visibility: status: {{ default .Env.DOMAIN_DEFAULTS_VISIBILITY_ARCHIVAL_STATUS "disabled" }} URI: {{ default .Env.DOMAIN_DEFAULTS_VISIBILITY_ARCHIVAL_URI "" }} kafka: tls: enabled: false clusters: test: brokers: - {{ default .Env.KAFKA_SEEDS "" }}:{{ default .Env.KAFKA_PORT "9092" }} topics: {{ default .Env.VISIBILITY_NAME "cadence-visibility-dev" }}: cluster: test {{ default .Env.VISIBILITY_NAME "cadence-visibility-dev" }}-dlq: cluster: test applications: visibility: topic: {{ default .Env.VISIBILITY_NAME "cadence-visibility-dev" }} dlq-topic: {{ default .Env.VISIBILITY_NAME "cadence-visibility-dev" }}-dlq publicClient: hostPort: {{ default .Env.FRONTEND_SERVICE "cadence" }}:{{ default .Env.FRONTEND_PORT "7933" }} dynamicconfig: client: filebased filebased: filepath: {{ default .Env.DYNAMIC_CONFIG_FILE_PATH "/etc/cadence/config/dynamicconfig/development.yaml" }} pollInterval: "60s" blobstore: filestore: outputDirectory: {{ default .Env.FILE_BLOB_STORE_OUTPUT_DIRECTYORY "" }} authorization: oauthAuthorizer: enable: {{ default .Env.ENABLE_OAUTH "false" }} maxJwtTTL: {{ default .Env.OAUTH_MAX_JWT_TTL "86400" }} jwtCredentials: algorithm: "RS256" publicKey: {{ default .Env.OAUTH_PUBLIC_KEY "" }} {{- if .Env.ASYNC_WF_KAFKA_QUEUE_ENABLED }} asyncWorkflowQueues: queue1: type: "kafka" config: connection: brokers: - {{ default .Env.KAFKA_SEEDS "" }}:{{ default .Env.KAFKA_PORT "9092" }} topic: {{ default .Env.ASYNC_WF_KAFKA_QUEUE_TOPIC "default-topic" }} {{- end }}