diff --git a/charts/cadence/Chart.lock b/charts/cadence/Chart.lock index 6c84e55..1b73625 100644 --- a/charts/cadence/Chart.lock +++ b/charts/cadence/Chart.lock @@ -8,5 +8,11 @@ dependencies: - name: mysql repository: oci://registry-1.docker.io/bitnamicharts version: 12.3.5 -digest: sha256:9d2bdf5e27b9fedc3a32d7abcf6c3ff569818e2756240f94977b1047efafe4b0 -generated: "2025-09-17T16:04:57.7251556+02:00" +- name: elasticsearch + repository: oci://registry-1.docker.io/bitnamicharts + version: 21.6.3 +- name: kafka + repository: oci://registry-1.docker.io/bitnamicharts + version: 30.1.8 +digest: sha256:794d39e9345acfb117730c963e7818fa388613b2cbb2becef8c3ce43d1e15206 +generated: "2025-11-03T14:00:44.205655-08:00" diff --git a/charts/cadence/Chart.yaml b/charts/cadence/Chart.yaml index 1a612b7..1f85423 100644 --- a/charts/cadence/Chart.yaml +++ b/charts/cadence/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: cadence -version: 1.0.10 +version: 1.1.0 appVersion: v1.3.6 description: | @@ -40,3 +40,11 @@ dependencies: version: 12.x.x repository: oci://registry-1.docker.io/bitnamicharts condition: mysql.enabled + - name: elasticsearch + version: 21.6.x + repository: oci://registry-1.docker.io/bitnamicharts + condition: elasticsearch.enabled + - name: kafka + version: 30.x.x + repository: oci://registry-1.docker.io/bitnamicharts + condition: kafka.enabled diff --git a/charts/cadence/README.md b/charts/cadence/README.md index dc8869e..0d2eebf 100644 --- a/charts/cadence/README.md +++ b/charts/cadence/README.md @@ -1,6 +1,6 @@ # cadence -![Version: 1.0.10](https://img.shields.io/badge/Version-1.0.10-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.3.6](https://img.shields.io/badge/AppVersion-v1.3.6-informational?style=flat-square) +![Version: 1.1.0](https://img.shields.io/badge/Version-1.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.3.6](https://img.shields.io/badge/AppVersion-v1.3.6-informational?style=flat-square) Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way. @@ -24,6 +24,8 @@ This chart deploys Uber Cadence server components and web UI. | Repository | Name | Version | |------------|------|---------| | oci://registry-1.docker.io/bitnamicharts | cassandra | 11.x.x | +| oci://registry-1.docker.io/bitnamicharts | elasticsearch | 21.6.x | +| oci://registry-1.docker.io/bitnamicharts | kafka | 30.x.x | | oci://registry-1.docker.io/bitnamicharts | mysql | 12.x.x | | oci://registry-1.docker.io/bitnamicharts | postgresql | 16.x.x | diff --git a/charts/cadence/examples/values.postgres-es7.yaml b/charts/cadence/examples/values.postgres-es7.yaml new file mode 100644 index 0000000..6bb48e8 --- /dev/null +++ b/charts/cadence/examples/values.postgres-es7.yaml @@ -0,0 +1,203 @@ +# Namespace note: install into namespace: cadence-postgres-es7 + +# Allow Bitnami charts to use legacy repository images +global: + image: + tag: "v1.3.6" # Default version + security: + allowInsecureImages: true + +# Force Cadence to use PostgreSQL for main DB +config: + persistence: + # Name of the default datastore (PostgreSQL) + defaultStore: "default" + # Disable basic SQL visibility (we're using ES-only via Kafka) + visibilityStore: "" + # Name of the advanced visibility datastore (Elasticsearch) + # Note: This defines the datastore, but dynamic config controls how it's used + advancedVisibilityStore: "es-visibility" + database: + driver: "postgres" + sql: + hosts: "cadence-release-postgresql.cadence-postgres-es7.svc.cluster.local" + port: 5432 + dbname: "cadence" + user: "cadence" + password: "changeme-strong" + tls: + enabled: false + sslMode: "" + elasticsearch: + enabled: true + version: "v7" + user: "" + password: "" + protocol: "http" + hosts: "cadence-release-elasticsearch.cadence-postgres-es7.svc.cluster.local" + port: 9200 + visibilityIndex: "cadence-visibility-es7" + tls: + enabled: false + kafka: # needed by elasticsearch integration + enabled: true + brokers: "cadence-release-kafka.cadence-postgres-es7.svc.cluster.local" + +# Enable Cadence schema jobs +schema: + serverJob: + enabled: true + elasticSearchJob: + enabled: true + +# Ensure Cadence uses Elasticsearch for advanced visibility +# Note: "es" is a special keyword for advanced visibility, not the datastore name +dynamicConfig: + values: + system.writeVisibilityStoreName: + - value: "es" + system.readVisibilityStoreName: + - value: "es" + +### subcharts values which can be omited if user has their own deployment + +# Deploy Postgres within the same release (Bitnami subchart) +postgresql: + enabled: true + image: + registry: docker.io + repository: bitnamilegacy/postgresql + tag: "16.4.0" + pullPolicy: IfNotPresent + auth: + username: cadence + password: "changeme-strong" + database: cadence + primary: + persistence: + enabled: true + size: 8Gi + +# Deploy Elasticsearch with single node mode +elasticsearch: + enabled: true + master: + masterOnly: false + replicaCount: 1 + resources: + requests: + cpu: 1 + memory: 1024Mi + limits: + cpu: 2 + memory: 2048Mi + data: + replicaCount: 0 + coordinating: + replicaCount: 0 + ingest: + replicaCount: 0 + sysctlImage: + enabled: false + image: + tag: 7.17.23 + repository: bitnamilegacy/elasticsearch + +kafka: + enabled: true + image: + registry: docker.io + repository: bitnamilegacy/kafka + tag: "3.8.0" + pullPolicy: IfNotPresent + # KRaft mode configuration (Kafka without ZooKeeper) + kraft: + enabled: true + # Disable ZooKeeper since we're using KRaft + zookeeper: + enabled: false + # Controller and broker configuration for KRaft + controller: + replicaCount: 1 + persistence: + enabled: true + size: 8Gi + resources: + requests: + cpu: 500m + memory: 1Gi + limits: + cpu: 1 + memory: 2Gi + # GKE Autopilot compatibility + podSecurityContext: + fsGroup: 1001 + runAsUser: 1001 + containerSecurityContext: + runAsNonRoot: true + allowPrivilegeEscalation: false + broker: + replicaCount: 1 + persistence: + enabled: true + size: 8Gi + resources: + requests: + cpu: 500m + memory: 1Gi + limits: + cpu: 1 + memory: 2Gi + # GKE Autopilot compatibility + podSecurityContext: + fsGroup: 1001 + runAsUser: 1001 + containerSecurityContext: + runAsNonRoot: true + allowPrivilegeEscalation: false + # GKE Autopilot compatibility: disable privileged init container + sysctlImage: + enabled: false + # Kafka topic configuration for Cadence visibility + autoCreateTopicsEnable: true + numPartitions: 4 + defaultReplicationFactor: 1 + # Configure replication factors for internal topics (demo/single-node setup) + offsetsTopicReplicationFactor: 1 + transactionStateLogReplicationFactor: 1 + transactionStateLogMinIsr: 1 + # Provision topics at startup to avoid race conditions + provisioning: + enabled: true + topics: + - name: __consumer_offsets + partitions: 50 + replicationFactor: 1 + config: + cleanup.policy: compact + compression.type: producer + - name: cadence-visibility + partitions: 4 + replicationFactor: 1 + - name: cadence-visibility-dlq + partitions: 4 + replicationFactor: 1 + # Listener configuration + listeners: + client: + protocol: PLAINTEXT + controller: + protocol: PLAINTEXT + interbroker: + protocol: PLAINTEXT + # Service configuration + service: + type: ClusterIP + ports: + client: 9092 + +# Do NOT deploy Cassandra or MySQL +cassandra: + enabled: false +mysql: + enabled: false diff --git a/charts/cadence/examples/values.postgres.yaml b/charts/cadence/examples/values.postgres.yaml index eb13fc6..296734a 100644 --- a/charts/cadence/examples/values.postgres.yaml +++ b/charts/cadence/examples/values.postgres.yaml @@ -41,9 +41,11 @@ postgresql: enabled: true size: 8Gi -# Do NOT deploy ES, Cassandra or MySQL +# Do NOT deploy ES, Kafka, Cassandra or MySQL elasticsearch: enabled: false +kafka: + enabled: false cassandra: enabled: false mysql: diff --git a/charts/cadence/templates/server-configmap.yaml b/charts/cadence/templates/server-configmap.yaml index b74e765..bb45ee3 100644 --- a/charts/cadence/templates/server-configmap.yaml +++ b/charts/cadence/templates/server-configmap.yaml @@ -42,7 +42,7 @@ data: persistence: numHistoryShards: {{ .Values.config.persistence.numHistoryShards | default 4 }} defaultStore: {{ .Values.config.persistence.defaultStore | default "default" | quote }} - {{- if and .Values.config.persistence.visibilityStore (not .Values.config.persistence.elasticsearch.enabled) }} + {{- if .Values.config.persistence.visibilityStore }} visibilityStore: {{ .Values.config.persistence.visibilityStore | quote }} {{- end }} {{- if and .Values.config.persistence.advancedVisibilityStore .Values.config.persistence.elasticsearch.enabled }} @@ -219,10 +219,9 @@ data: {{- end }} {{- end }} {{- end }} - {{- if ne .Values.config.persistence.elasticsearch.enabled true }} + {{- if .Values.config.persistence.visibilityStore }} # Visibility datastore - {{ if .Values.config.persistence.visibilityStore -}} - {{ .Values.config.persistence.visibilityStore | default "visibility" }}: + {{ .Values.config.persistence.visibilityStore }}: {{- if eq .Values.config.persistence.database.driver "cassandra" }} nosql: pluginName: "cassandra" @@ -385,7 +384,6 @@ data: {{- end }} {{- if .Values.config.persistence.database.sql.tls.serverName }} serverName: {{ .Values.config.persistence.database.sql.tls.serverName | quote }} - {{- end }} {{- end }} {{- end }} {{- end }}