From e11762a6f881adeb3c63cf781c05d589735bf49a Mon Sep 17 00:00:00 2001 From: samkitshah1262 Date: Tue, 14 Jan 2025 18:36:29 +0530 Subject: [PATCH 1/4] default domain registration using docker image --- Dockerfile | 1 + docker/domain/cassandra.cql | 55 +++++++++++++++++++++++++++++++++++++ docker/domain/mysql.sql | 25 +++++++++++++++++ docker/domain/postgres.sql | 32 +++++++++++++++++++++ docker/start.sh | 6 ++++ 5 files changed, 119 insertions(+) create mode 100644 docker/domain/cassandra.cql create mode 100644 docker/domain/mysql.sql create mode 100644 docker/domain/postgres.sql diff --git a/Dockerfile b/Dockerfile index b0e16fd892f..6ec02f4e958 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,6 +75,7 @@ COPY config/dynamicconfig /etc/cadence/config/dynamicconfig COPY config/credentials /etc/cadence/config/credentials COPY docker/config_template.yaml /etc/cadence/config COPY docker/start-cadence.sh /start-cadence.sh +COPY docker/domain /domain WORKDIR /etc/cadence diff --git a/docker/domain/cassandra.cql b/docker/domain/cassandra.cql new file mode 100644 index 00000000000..7065ac44ffd --- /dev/null +++ b/docker/domain/cassandra.cql @@ -0,0 +1,55 @@ +-- Insert into domains table +INSERT INTO domains ( + id, + domain +) VALUES ( + 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID + { + id: 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID + name: 'example-domain', + status: 0, -- Registered + description: 'This is an example domain.', + data: {'key1': 'value1', 'key2': 'value2'}, + owner_email: 'owner@example.com' + } +) IF NOT EXISTS; + +-- Insert into domains_by_name_v2 table +INSERT INTO domains_by_name_v2 ( + domains_partition, + name, + domain, + config, + replication_config, + is_global_domain, + config_version, + failover_version, + failover_notification_version, + notification_version +) VALUES ( + 0, + 'example-domain', + { + id: 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID + name: 'example-domain', + status: 0, -- Registered + description: 'This is an example domain.', + data: {'key1': 'value1', 'key2': 'value2'}, + owner_email: 'owner@example.com' + }, + { + retention: 7, + emit_metric: True, + history_archival_status: 0, -- Default to disabled + visibility_archival_status: 0 -- Default to disabled + }, + { + active_cluster_name: 'active-cluster', + clusters: [{cluster_name: 'active-cluster'}, {cluster_name: 'standby-cluster'}] + }, + True, -- is_global_domain + 1, -- config_version + 0, -- failover_version + 0, -- failover_notification_version + 0 -- notification_version +) IF NOT EXISTS; \ No newline at end of file diff --git a/docker/domain/mysql.sql b/docker/domain/mysql.sql new file mode 100644 index 00000000000..3df411a2097 --- /dev/null +++ b/docker/domain/mysql.sql @@ -0,0 +1,25 @@ +-- Insert into domains table +INSERT INTO domains ( + shard_id, + id, + name, + data, + data_encoding, + is_global +) VALUES ( + 54321, -- Default shard_id + UNHEX(REPLACE(UUID(), '-', '')), -- Generate a 16-byte UUID + 'example-domain', -- Domain name + '{"key1":"value1","key2":"value2"}', -- Example data as JSON + 'json', -- Encoding type + 1 -- Set to 1 for a global domain +) ON DUPLICATE KEY UPDATE + name = VALUES(name); + +-- Insert into domain_metadata table +INSERT INTO domain_metadata ( + notification_version +) VALUES ( + 1 +) ON DUPLICATE KEY UPDATE + notification_version = VALUES(notification_version); \ No newline at end of file diff --git a/docker/domain/postgres.sql b/docker/domain/postgres.sql new file mode 100644 index 00000000000..f72d632acdf --- /dev/null +++ b/docker/domain/postgres.sql @@ -0,0 +1,32 @@ +-- Insert into domains table +INSERT INTO domains ( + shard_id, + id, + name, + data, + data_encoding, + is_global +) VALUES ( + 54321, -- Default shard_id + gen_random_uuid(), -- Generate a UUID for the domain ID + 'example-domain', -- Domain name + '{"key1":"value1","key2":"value2"}', -- Example JSON data + 'json', -- Encoding type + TRUE -- Set to TRUE for a global domain +) ON CONFLICT (shard_id, id) DO UPDATE +SET + name = EXCLUDED.name, + data = EXCLUDED.data, + data_encoding = EXCLUDED.data_encoding, + is_global = EXCLUDED.is_global; + +-- Insert into domain_metadata table +INSERT INTO domain_metadata ( + id, + notification_version +) VALUES ( + 1, -- Default ID + 1 -- Notification version +) ON CONFLICT (id) DO UPDATE +SET + notification_version = EXCLUDED.notification_version; \ No newline at end of file diff --git a/docker/start.sh b/docker/start.sh index d92567a00a3..d231d3f744a 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -32,6 +32,8 @@ setup_cassandra_schema() { cadence-cassandra-tool --ep $CASSANDRA_SEEDS create -k $VISIBILITY_KEYSPACE --rf $RF cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $VISIBILITY_KEYSPACE setup-schema -v 0.0 cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $VISIBILITY_KEYSPACE update-schema -d $VISIBILITY_SCHEMA_DIR + echo "Registering domain for Cassandra..." + cqlsh $CASSANDRA_SEEDS -k $KEYSPACE -f /etc/cadence/domain/cassandra.cql } setup_mysql_schema() { @@ -46,6 +48,8 @@ setup_mysql_schema() { cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD $CONNECT_ATTR create --db $VISIBILITY_DBNAME cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME $CONNECT_ATTR setup-schema -v 0.0 cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME $CONNECT_ATTR update-schema -d $VISIBILITY_SCHEMA_DIR + echo "Registering domain for MySQL..." + mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE < /etc/cadence/domain/mysql.sql } setup_postgres_schema() { @@ -57,6 +61,8 @@ setup_postgres_schema() { cadence-sql-tool --plugin postgres --ep $POSTGRES_SEEDS -u $POSTGRES_USER --pw "$POSTGRES_PWD" -p $DB_PORT create --db $VISIBILITY_DBNAME cadence-sql-tool --plugin postgres --ep $POSTGRES_SEEDS -u $POSTGRES_USER --pw "$POSTGRES_PWD" -p $DB_PORT --db $VISIBILITY_DBNAME setup-schema -v 0.0 cadence-sql-tool --plugin postgres --ep $POSTGRES_SEEDS -u $POSTGRES_USER --pw "$POSTGRES_PWD" -p $DB_PORT --db $VISIBILITY_DBNAME update-schema -d $VISIBILITY_SCHEMA_DIR + echo "Registering domain for PostgreSQL..." + PGPASSWORD=$POSTGRES_PASSWORD psql -h $POSTGRES_HOST -U $POSTGRES_USER -d $POSTGRES_DATABASE -f /etc/cadence/domain/postgres.sql } From 4cb5fc31f013016f39955bcd523b468ae1e95509 Mon Sep 17 00:00:00 2001 From: samkitshah1262 Date: Tue, 28 Jan 2025 19:51:22 +0530 Subject: [PATCH 2/4] tested example domain registration --- Dockerfile | 2 +- docker/domain/cassandra.cql | 10 +++++----- docker/domain/mysql.sql | 2 +- docker/domain/postgres.sql | 2 +- docker/start.sh | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6ec02f4e958..b1e9f750514 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,7 +75,7 @@ COPY config/dynamicconfig /etc/cadence/config/dynamicconfig COPY config/credentials /etc/cadence/config/credentials COPY docker/config_template.yaml /etc/cadence/config COPY docker/start-cadence.sh /start-cadence.sh -COPY docker/domain /domain +COPY docker/domain /etc/cadence/domain WORKDIR /etc/cadence diff --git a/docker/domain/cassandra.cql b/docker/domain/cassandra.cql index 7065ac44ffd..d66d07266c9 100644 --- a/docker/domain/cassandra.cql +++ b/docker/domain/cassandra.cql @@ -6,7 +6,7 @@ INSERT INTO domains ( 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID { id: 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID - name: 'example-domain', + name: 'samkit_domain', status: 0, -- Registered description: 'This is an example domain.', data: {'key1': 'value1', 'key2': 'value2'}, @@ -28,10 +28,10 @@ INSERT INTO domains_by_name_v2 ( notification_version ) VALUES ( 0, - 'example-domain', + 'default', { id: 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID - name: 'example-domain', + name: 'default', status: 0, -- Registered description: 'This is an example domain.', data: {'key1': 'value1', 'key2': 'value2'}, @@ -44,8 +44,8 @@ INSERT INTO domains_by_name_v2 ( visibility_archival_status: 0 -- Default to disabled }, { - active_cluster_name: 'active-cluster', - clusters: [{cluster_name: 'active-cluster'}, {cluster_name: 'standby-cluster'}] + active_cluster_name: 'cluster0', + clusters: [{cluster_name: 'cluster0'}] }, True, -- is_global_domain 1, -- config_version diff --git a/docker/domain/mysql.sql b/docker/domain/mysql.sql index 3df411a2097..2613c6eda12 100644 --- a/docker/domain/mysql.sql +++ b/docker/domain/mysql.sql @@ -9,7 +9,7 @@ INSERT INTO domains ( ) VALUES ( 54321, -- Default shard_id UNHEX(REPLACE(UUID(), '-', '')), -- Generate a 16-byte UUID - 'example-domain', -- Domain name + 'default', -- Domain name '{"key1":"value1","key2":"value2"}', -- Example data as JSON 'json', -- Encoding type 1 -- Set to 1 for a global domain diff --git a/docker/domain/postgres.sql b/docker/domain/postgres.sql index f72d632acdf..073da21a445 100644 --- a/docker/domain/postgres.sql +++ b/docker/domain/postgres.sql @@ -9,7 +9,7 @@ INSERT INTO domains ( ) VALUES ( 54321, -- Default shard_id gen_random_uuid(), -- Generate a UUID for the domain ID - 'example-domain', -- Domain name + 'default', -- Domain name '{"key1":"value1","key2":"value2"}', -- Example JSON data 'json', -- Encoding type TRUE -- Set to TRUE for a global domain diff --git a/docker/start.sh b/docker/start.sh index d231d3f744a..8213cbf8737 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -49,7 +49,7 @@ setup_mysql_schema() { cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME $CONNECT_ATTR setup-schema -v 0.0 cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME $CONNECT_ATTR update-schema -d $VISIBILITY_SCHEMA_DIR echo "Registering domain for MySQL..." - mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE < /etc/cadence/domain/mysql.sql + mysql -h $MYSQL_HOST -u $MYSQL_USER -p $MYSQL_PASSWORD $MYSQL_DATABASE < /etc/cadence/domain/mysql.sql } setup_postgres_schema() { From 65b1c8873c68f86a063584f9146ab5bde2f6f5fe Mon Sep 17 00:00:00 2001 From: samkitshah1262 Date: Tue, 4 Feb 2025 18:40:05 +0530 Subject: [PATCH 3/4] copy folder for auto-setup only --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b1e9f750514..216078d066b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,7 +75,6 @@ COPY config/dynamicconfig /etc/cadence/config/dynamicconfig COPY config/credentials /etc/cadence/config/credentials COPY docker/config_template.yaml /etc/cadence/config COPY docker/start-cadence.sh /start-cadence.sh -COPY docker/domain /etc/cadence/domain WORKDIR /etc/cadence @@ -93,6 +92,7 @@ RUN apk add --update --no-cache ca-certificates py3-pip mysql-client RUN pip3 install cqlsh && cqlsh --version COPY docker/start.sh /start.sh +COPY docker/domain /etc/cadence/domain CMD /start.sh From f7ab2e93ba6a5411064e67fcbb63b36a7410cf98 Mon Sep 17 00:00:00 2001 From: Samkit Shah <83649264+samkitshah1262@users.noreply.github.com> Date: Thu, 6 Feb 2025 13:14:02 +0530 Subject: [PATCH 4/4] domain name changed --- docker/domain/cassandra.cql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/domain/cassandra.cql b/docker/domain/cassandra.cql index d66d07266c9..83b44ce59a5 100644 --- a/docker/domain/cassandra.cql +++ b/docker/domain/cassandra.cql @@ -6,7 +6,7 @@ INSERT INTO domains ( 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID { id: 123e4567-e89b-12d3-a456-426614174000, -- Replace with your UUID - name: 'samkit_domain', + name: 'default', status: 0, -- Registered description: 'This is an example domain.', data: {'key1': 'value1', 'key2': 'value2'}, @@ -52,4 +52,4 @@ INSERT INTO domains_by_name_v2 ( 0, -- failover_version 0, -- failover_notification_version 0 -- notification_version -) IF NOT EXISTS; \ No newline at end of file +) IF NOT EXISTS;