diff --git a/k8s/applications/temporal/temporal-values.yaml b/k8s/applications/temporal/temporal-values.yaml index 6c93688..e55c456 100644 --- a/k8s/applications/temporal/temporal-values.yaml +++ b/k8s/applications/temporal/temporal-values.yaml @@ -1,39 +1,20 @@ # k8s/temporal/temporal-values.yaml # Temporal — workflow engine for story-crater backend async task orchestration. -# Chart: temporal/temporal from https://go.temporal.io/helm-charts +# Chart: temporal/temporal v1.6.0 from https://go.temporal.io/helm-charts # # Uses Cassandra for default store (workflow history/events) # Uses Elasticsearch for visibility store (namespace/workflow queries) # This is the chart's native, well-tested configuration. -# ── Datastores configuration ──── -# Disable auto-deployed PostgreSQL (we use external ddb for other services) -postgresql: - enabled: false - -# Enable Elasticsearch for visibility store (deployed to worker node, 2Gi/4Gi memory) -elasticsearch: - enabled: true - scheme: http - host: temporal-elasticsearch - port: 9200 - version: v7 - logLevel: error - auth: - enabled: false - indices: - visibility: temporal_visibility_v1 - -# Cassandra enabled for template validation; server.config overrides with actual hosts -# Schema job template requires cassandra config to exist at top level +# ── Sub-charts ──── +# Cassandra and Elasticsearch deployed as dependencies cassandra: enabled: true replicas: 3 cluster: seedSize: 1 port: 9042 - # Was landing 2 of 3 replicas on talos-cp-1 -- spread across nodes so a - # single overloaded node can't stall gossip/join for the whole ring. + # Spread replicas across nodes to avoid single-node bottleneck affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: @@ -45,6 +26,25 @@ cassandra: release: temporal topologyKey: kubernetes.io/hostname +elasticsearch: + enabled: true + replicas: 1 + auth: + enabled: false + env: + cluster.name: temporal + discovery.type: single-node + resources: + requests: + memory: "512Mi" + cpu: "250m" + limits: + memory: "1Gi" + cpu: "500m" + +postgresql: + enabled: false + # ── Disable schema auto-setup (will initialize manually) ───────── jobs: autoSetup: @@ -76,19 +76,27 @@ server: numHistoryShards: 512 datastores: default: - # Cassandra for workflow history and events - driver: cassandra + # Cassandra for workflow history/events cassandra: - hosts: "temporal-cassandra" + hosts: "temporal-cassandra-0.temporal-cassandra.temporal.svc.cluster.local,temporal-cassandra-1.temporal-cassandra.temporal.svc.cluster.local,temporal-cassandra-2.temporal-cassandra.temporal.svc.cluster.local" port: 9042 keyspace: temporal - user: user - password: "" # Cassandra auth disabled in deployment + user: cassandra + password: "" replicationFactor: 3 consistency: default: - consistency: local_quorum - serialConsistency: local_serial + consistency: LOCAL_QUORUM + serialConsistency: LOCAL_SERIAL + maxConnsPerHost: 32 + visibility: + # Elasticsearch for visibility store (workflow queries) + elasticsearch: + url: "http://elasticsearch.temporal.svc.cluster.local:9200" + scheme: http + logLevel: info + bulkProcessor: + bulkActions: 1000 service: type: ClusterIP diff --git a/k8s/argocd/apps/60-applications.yaml b/k8s/argocd/apps/60-applications.yaml index bcb116c..9b8b66b 100644 --- a/k8s/argocd/apps/60-applications.yaml +++ b/k8s/argocd/apps/60-applications.yaml @@ -14,7 +14,7 @@ spec: sources: - repoURL: https://go.temporal.io/helm-charts chart: temporal - targetRevision: "*" + targetRevision: "0.74.0" helm: valueFiles: - $values/k8s/applications/temporal/temporal-values.yaml