From b66eedbc42e6102a702bcace3724536e6987c3f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKevin=E2=80=9D?= Date: Fri, 5 Dec 2025 13:48:29 -0800 Subject: [PATCH 1/2] feat(docker): add docker-compose configuration for OpenSearch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add docker-compose-opensearch.yml to support deploying Cadence with OpenSearch as the advanced visibility store. This configuration mirrors the existing Elasticsearch setups but uses OpenSearch 2.13.0 and includes OpenSearch Dashboards for visualization. Signed-off-by: “Kevin” --- docker/docker-compose-opensearch.yml | 110 +++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 docker/docker-compose-opensearch.yml diff --git a/docker/docker-compose-opensearch.yml b/docker/docker-compose-opensearch.yml new file mode 100644 index 00000000000..fae625cce5f --- /dev/null +++ b/docker/docker-compose-opensearch.yml @@ -0,0 +1,110 @@ +services: + cassandra: + image: cassandra:4.1.1 + ports: + - "9042:9042" + environment: + - "MAX_HEAP_SIZE=256M" + - "HEAP_NEWSIZE=128M" + healthcheck: + test: ["CMD", "cqlsh", "-u cassandra", "-p cassandra" ,"-e describe keyspaces"] + interval: 15s + timeout: 30s + retries: 10 + prometheus: + image: prom/prometheus:latest + volumes: + - ./prometheus:/etc/prometheus + command: + - '--config.file=/etc/prometheus/prometheus.yml' + ports: + - '9090:9090' + kafka: + image: docker.io/bitnamilegacy/kafka:3.7 + hostname: kafka + container_name: kafka + ports: + - "9092:9092" + environment: + # KRaft settings + - "KAFKA_CFG_NODE_ID=0" + - "KAFKA_CFG_PROCESS_ROLES=controller,broker" + - "KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093" + # Listeners + - "KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093" + - "KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092" + - "KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT" + - "KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER" + - "KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT" + # Topic settings + - "KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true" + opensearch: + image: opensearchproject/opensearch:2.13.0 + ports: + - "9200:9200" + - "9600:9600" + environment: + - discovery.type=single-node + - OPENSEARCH_SECURITY_SSL_HTTP_ENABLED=false + - DISABLE_SECURITY_PLUGIN=true + - cluster.name=opensearch-cluster + - bootstrap.memory_lock=true + - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" + opensearch-dashboards: + image: opensearchproject/opensearch-dashboards:2.13.0 + ports: + - "5601:5601" + environment: + OPENSEARCH_HOSTS: '["http://opensearch:9200"]' + depends_on: + - opensearch + cadence: + image: ubercadence/server:master-auto-setup + ports: + - "8000:8000" + - "8001:8001" + - "8002:8002" + - "8003:8003" + - "7933:7933" + - "7934:7934" + - "7935:7935" + - "7939:7939" + - "7833:7833" + environment: + - "CASSANDRA_SEEDS=cassandra" + - "PROMETHEUS_ENDPOINT_0=0.0.0.0:8000" + - "PROMETHEUS_ENDPOINT_1=0.0.0.0:8001" + - "PROMETHEUS_ENDPOINT_2=0.0.0.0:8002" + - "PROMETHEUS_ENDPOINT_3=0.0.0.0:8003" + - "DYNAMIC_CONFIG_FILE_PATH=config/dynamicconfig/development_es.yaml" + - "ENABLE_ES=true" + - "ES_SEEDS=opensearch" + - "ES_VERSION=os2" + - "KAFKA_SEEDS=kafka" + depends_on: + cassandra: + condition: service_healthy + prometheus: + condition: service_started + kafka: + condition: service_started + opensearch: + condition: service_started + cadence-web: + image: ubercadence/web:latest + environment: + - "CADENCE_GRPC_PEERS=cadence:7833" + ports: + - "8088:8088" + depends_on: + - cadence + grafana: + image: grafana/grafana + volumes: + - ./grafana:/etc/grafana + user: "1000" + depends_on: + - prometheus + ports: + - '3000:3000' + From 5385e68317f11f52677e95e999ddfdfe795c93a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CKevin=E2=80=9D?= Date: Fri, 5 Dec 2025 17:03:55 -0800 Subject: [PATCH 2/2] fix(docker): disable security plugin for OpenSearch Dashboards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add DISABLE_SECURITY_DASHBOARDS_PLUGIN to allow access to OpenSearch Dashboards without authentication in local development environment. Signed-off-by: “Kevin” --- docker/docker-compose-opensearch.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/docker-compose-opensearch.yml b/docker/docker-compose-opensearch.yml index fae625cce5f..8f2e6d0a0bf 100644 --- a/docker/docker-compose-opensearch.yml +++ b/docker/docker-compose-opensearch.yml @@ -56,6 +56,7 @@ services: - "5601:5601" environment: OPENSEARCH_HOSTS: '["http://opensearch:9200"]' + DISABLE_SECURITY_DASHBOARDS_PLUGIN: "true" depends_on: - opensearch cadence: