Files
poimen-workflows/k8s/temporal/03-temporal-server-statefulset.yaml
T

209 lines
4.7 KiB
YAML
Raw Normal View History

apiVersion: v1
kind: ConfigMap
metadata:
name: temporal-server-config
namespace: temporal
data:
config.yaml: |
log:
stdout: true
level: info
persistence:
defaultStore: postgres
visibilityStore: postgres
numHistoryShards: 4
storeType: postgres
postgres:
user: "postgres"
password: "temporal-password-changeme"
host: "temporal-postgres.temporal.svc.cluster.local"
port: 5432
maxConns: 20
maxIdleConns: 20
maxConnLifetime: 0
visibilityDbStore: postgres
visibilityPersistencePostgres:
user: "postgres"
password: "temporal-password-changeme"
host: "temporal-postgres.temporal.svc.cluster.local"
port: 5432
dbName: temporal_visibility
maxConns: 10
maxIdleConns: 10
maxConnLifetime: 0
elasticsearch:
url: "http://temporal-elasticsearch.temporal.svc.cluster.local:9200"
version: "7"
indices:
visibility: temporal_visibility_v1
global:
membership:
maxJoinDuration: 30s
broadcastAddress: temporal-server-0.temporal-server.temporal.svc.cluster.local
port: 7946
services:
frontend:
rpc:
grpcPort: 7233
membershipPort: 7946
bindOnLocalHost: false
matching:
rpc:
grpcPort: 7235
membershipPort: 7946
bindOnLocalHost: false
history:
rpc:
grpcPort: 7234
membershipPort: 7946
bindOnLocalHost: false
worker:
rpc:
grpcPort: 7239
membershipPort: 7946
bindOnLocalHost: false
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: temporal-server
namespace: temporal
labels:
app: temporal-server
spec:
serviceName: temporal-server
replicas: 1
selector:
matchLabels:
app: temporal-server
template:
metadata:
labels:
app: temporal-server
spec:
containers:
- name: temporal
image: temporalio/auto-setup:1.20.0
imagePullPolicy: IfNotPresent
ports:
- name: frontend
containerPort: 7233
protocol: TCP
- name: matching
containerPort: 7235
protocol: TCP
- name: history
containerPort: 7234
protocol: TCP
- name: worker
containerPort: 7239
protocol: TCP
- name: metrics
containerPort: 9090
protocol: TCP
env:
- name: TEMPORAL_STORE_ENGINE
value: "postgres"
- name: POSTGRES_USER
value: "postgres"
- name: POSTGRES_PWD
valueFrom:
secretKeyRef:
name: temporal-postgres-secret
key: password
- name: POSTGRES_SEEDS
value: "temporal-postgres.temporal.svc.cluster.local"
- name: POSTGRES_PORT
value: "5432"
- name: DB
value: temporal
- name: VISIBILITY_DB
value: temporal_visibility
- name: ELASTICSEARCH_SEEDS
value: "temporal-elasticsearch.temporal.svc.cluster.local"
- name: ELASTICSEARCH_PORT
value: "9200"
- name: ELASTICSEARCH_VERSION
value: "7"
- name: TEMPORAL_NAMESPACE_DOMAIN
value: "default"
volumeMounts:
- name: temporal-config
mountPath: /etc/temporal
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi
livenessProbe:
tcpSocket:
port: 7233
initialDelaySeconds: 60
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 7233
initialDelaySeconds: 30
periodSeconds: 5
volumes:
- name: temporal-config
configMap:
name: temporal-server-config
---
apiVersion: v1
kind: Service
metadata:
name: temporal-server
namespace: temporal
labels:
app: temporal-server
spec:
type: ClusterIP
clusterIP: None # Headless service for StatefulSet
ports:
- port: 7233
targetPort: 7233
protocol: TCP
name: frontend
- port: 7235
targetPort: 7235
protocol: TCP
name: matching
- port: 7234
targetPort: 7234
protocol: TCP
name: history
- port: 7239
targetPort: 7239
protocol: TCP
name: worker
selector:
app: temporal-server
---
apiVersion: v1
kind: Service
metadata:
name: temporal-frontend
namespace: temporal
labels:
app: temporal-server
spec:
type: ClusterIP
ports:
- port: 7233
targetPort: 7233
protocol: TCP
name: frontend
selector:
app: temporal-server