UNPKG

@fairmint/canton-node-sdk

Version:
1,666 lines 158 kB
[ { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "postgresPassword": "" } }, "kind": "Secret", "metadata": { "name": "postgres-0-secret", "namespace": "multi-validator" }, "type": "Opaque" }, "name": "cn-app-multi-validator-postgres-0-secret", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "postgresPassword": "" } }, "kind": "Secret", "metadata": { "name": "postgres-1-secret", "namespace": "multi-validator" }, "type": "Opaque" }, "name": "cn-app-multi-validator-postgres-1-secret", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "postgresPassword": "" } }, "kind": "Secret", "metadata": { "name": "postgres-2-secret", "namespace": "multi-validator" }, "type": "Opaque" }, "name": "cn-app-multi-validator-postgres-2-secret", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "postgresPassword": "" } }, "kind": "Secret", "metadata": { "name": "postgres-3-secret", "namespace": "multi-validator" }, "type": "Opaque" }, "name": "cn-app-multi-validator-postgres-3-secret", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "postgresPassword": "" } }, "kind": "Secret", "metadata": { "name": "postgres-4-secret", "namespace": "multi-validator" }, "type": "Opaque" }, "name": "cn-app-multi-validator-postgres-4-secret", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "enableServerSideApply": "true" }, "name": "k8s-imgpull-multi-validator-default", "provider": "", "type": "pulumi:providers:kubernetes" }, { "custom": true, "id": "", "inputs": { "apiVersion": "networking.istio.io/v1alpha3", "kind": "ServiceEntry", "metadata": { "name": "loopback", "namespace": "multi-validator" }, "spec": { "exportTo": [ "." ], "hosts": [ "mock.global.canton.network.digitalasset.com" ], "ports": [ { "name": "http-port", "number": 80, "protocol": "HTTP" }, { "name": "tls", "number": 443, "protocol": "TLS" }, { "name": "grpc-domain", "number": 5008, "protocol": "GRPC" } ], "resolution": "DNS" } }, "name": "loopback-service-entry-multi-validator", "provider": "", "type": "kubernetes:networking.istio.io/v1alpha3:ServiceEntry" }, { "custom": true, "id": "", "inputs": { "apiVersion": "networking.istio.io/v1alpha3", "kind": "VirtualService", "metadata": { "name": "direct-loopback-through-ingress-gateway", "namespace": "multi-validator" }, "spec": { "exportTo": [ "." ], "gateways": [ "mesh" ], "hosts": [ "mock.global.canton.network.digitalasset.com", "validator.mock.global.canton.network.digitalasset.com", "*.validator.mock.global.canton.network.digitalasset.com", "validator1.mock.global.canton.network.digitalasset.com", "*.validator1.mock.global.canton.network.digitalasset.com", "splitwell.mock.global.canton.network.digitalasset.com", "*.splitwell.mock.global.canton.network.digitalasset.com", "sv-2.mock.global.canton.network.digitalasset.com", "*.sv-2.mock.global.canton.network.digitalasset.com", "sv-1.mock.global.canton.network.digitalasset.com", "*.sv-1.mock.global.canton.network.digitalasset.com", "sv.mock.global.canton.network.digitalasset.com", "*.sv.mock.global.canton.network.digitalasset.com" ], "http": [ { "match": [ { "gateways": [ "mesh" ] } ], "route": [ { "destination": { "host": "istio-ingress.cluster-ingress.svc.cluster.local" } } ] } ], "tls": [ { "match": [ { "gateways": [ "mesh" ], "sniHosts": [ "mock.global.canton.network.digitalasset.com", "validator.mock.global.canton.network.digitalasset.com", "*.validator.mock.global.canton.network.digitalasset.com", "validator1.mock.global.canton.network.digitalasset.com", "*.validator1.mock.global.canton.network.digitalasset.com", "splitwell.mock.global.canton.network.digitalasset.com", "*.splitwell.mock.global.canton.network.digitalasset.com", "sv-2.mock.global.canton.network.digitalasset.com", "*.sv-2.mock.global.canton.network.digitalasset.com", "sv-1.mock.global.canton.network.digitalasset.com", "*.sv-1.mock.global.canton.network.digitalasset.com", "sv.mock.global.canton.network.digitalasset.com", "*.sv.mock.global.canton.network.digitalasset.com" ] } ], "route": [ { "destination": { "host": "istio-ingress.cluster-ingress.svc.cluster.local" } } ] } ] } }, "name": "loopback-virtual-service-multi-validator", "provider": "", "type": "kubernetes:networking.istio.io/v1alpha3:VirtualService" }, { "custom": true, "id": "", "inputs": { "apiVersion": "monitoring.coreos.com/v1", "kind": "ServiceMonitor", "metadata": { "labels": { "release": "prometheus-grafana-monitoring" }, "name": "multi-participant-0-3-service-monitor", "namespace": "multi-validator" }, "spec": { "endpoints": [ { "honorLabels": true, "port": "metrics" } ], "namespaceSelector": { "any": true }, "selector": { "matchLabels": { "app": "multi-participant-0-3" } } } }, "name": "multi-participant-0-3-service-monitor", "provider": "", "type": "kubernetes:monitoring.coreos.com/v1:ServiceMonitor" }, { "custom": false, "id": "", "inputs": {}, "name": "multi-participant-0-3", "provider": "", "type": "canton:network:Deployment" }, { "custom": true, "id": "", "inputs": { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app": "multi-participant-0-3" }, "namespace": "multi-validator" }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app": "multi-participant-0-3" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "labels": { "app": "multi-participant-0-3" } }, "spec": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "containers": [ { "env": [ { "name": "CANTON_PARTICIPANT_POSTGRES_SERVER", "value": "postgres-0" }, { "name": "CANTON_PARTICIPANT_POSTGRES_DB", "value": "participant_3" }, { "name": "CANTON_PARTICIPANT_POSTGRES_SCHEMA", "value": "cantonnet" }, { "name": "CANTON_PARTICIPANT_POSTGRES_PASSWORD", "valueFrom": { "secretKeyRef": { "key": "postgresPassword", "name": "postgres-0-secret" } } }, { "name": "LOG_LEVEL_CANTON", "value": "INFO" }, { "name": "LOG_LEVEL_STDOUT", "value": "INFO" }, { "name": "NUM_NODES", "value": "10" }, { "name": "VALIDATOR_USERNAME_PREFIX", "value": "validator_user" }, { "name": "AUTH_TARGET_AUDIENCE", "value": "https://canton.network.global" }, { "name": "JAVA_TOOL_OPTIONS", "value": "-XX:MaxRAMPercentage=80 -XX:InitialRAMPercentage=80 -Dscala.concurrent.context.minThreads=16 -XX:+UnlockExperimentalVMOptions -XX:-G1UseAdaptiveIHOP -XX:G1MixedGCLiveThresholdPercent=12 -XX:G1HeapWastePercent=2 -XX:InitiatingHeapOccupancyPercent=10 -XX:GCTimeRatio=6 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1" }, { "name": "MULTI_PARTICIPANT_ADDITIONAL_CONFIG_MAX_CONNECTIONS", "value": "canton.participants.participant_INDEX.storage.parameters.max-connections = 33" } ], "image": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker/multi-participant:0.3.20", "livenessProbe": { "failureThreshold": 5, "grpc": { "port": 5061, "service": "liveness" }, "initialDelaySeconds": 60, "periodSeconds": 60, "timeoutSeconds": 10 }, "name": "multi-participant", "ports": [ { "containerPort": 5001, "name": "lg-0", "protocol": "TCP" }, { "containerPort": 5002, "name": "adm-0", "protocol": "TCP" }, { "containerPort": 5101, "name": "lg-1", "protocol": "TCP" }, { "containerPort": 5102, "name": "adm-1", "protocol": "TCP" }, { "containerPort": 5201, "name": "lg-2", "protocol": "TCP" }, { "containerPort": 5202, "name": "adm-2", "protocol": "TCP" }, { "containerPort": 5301, "name": "lg-3", "protocol": "TCP" }, { "containerPort": 5302, "name": "adm-3", "protocol": "TCP" }, { "containerPort": 5401, "name": "lg-4", "protocol": "TCP" }, { "containerPort": 5402, "name": "adm-4", "protocol": "TCP" }, { "containerPort": 5501, "name": "lg-5", "protocol": "TCP" }, { "containerPort": 5502, "name": "adm-5", "protocol": "TCP" }, { "containerPort": 5601, "name": "lg-6", "protocol": "TCP" }, { "containerPort": 5602, "name": "adm-6", "protocol": "TCP" }, { "containerPort": 5701, "name": "lg-7", "protocol": "TCP" }, { "containerPort": 5702, "name": "adm-7", "protocol": "TCP" }, { "containerPort": 5801, "name": "lg-8", "protocol": "TCP" }, { "containerPort": 5802, "name": "adm-8", "protocol": "TCP" }, { "containerPort": 5901, "name": "lg-9", "protocol": "TCP" }, { "containerPort": 5902, "name": "adm-9", "protocol": "TCP" }, { "containerPort": 10013, "name": "metrics" }, { "containerPort": 9010, "name": "jmx" } ], "readinessProbe": { "failureThreshold": 3, "grpc": { "port": 5061 }, "initialDelaySeconds": 5, "periodSeconds": 5, "timeoutSeconds": 10 }, "resources": { "limits": { "memory": "16Gi" }, "requests": { "cpu": "1", "memory": "8Gi" } } } ], "initContainers": [ { "command": [ "bash", "-c", "\n function createDb() {\n local dbname=\"$1\"\n\n until errmsg=$(psql -h postgres-0 --username=cnadmin --dbname=cantonnet -c \"create database $dbname\" 2>&1); do\n if [[ $errmsg == *\"already exists\"* ]]; then\n echo \"Database $dbname already exists. Done.\"\n break\n fi\n\n echo \"trying to create postgres database $dbname, last error: $errmsg\";\n sleep 2;\n done\n }\n\n createDb participant_3_00\ncreateDb participant_3_01\ncreateDb participant_3_02\ncreateDb participant_3_03\ncreateDb participant_3_04\ncreateDb participant_3_05\ncreateDb participant_3_06\ncreateDb participant_3_07\ncreateDb participant_3_08\ncreateDb participant_3_09\n " ], "env": [ { "name": "PGPASSWORD", "valueFrom": { "secretKeyRef": { "key": "postgresPassword", "name": "postgres-0-secret" } } } ], "image": "postgres:14", "name": "pg-init" } ], "securityContext": { "fsGroup": 1001, "runAsGroup": 1001, "runAsUser": 1001 }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] } } } }, "name": "multi-participant-0-3", "provider": "", "type": "kubernetes:apps/v1:Deployment" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Service", "metadata": { "labels": { "app": "multi-participant-0-3" }, "name": "multi-participant-0-3", "namespace": "multi-validator" }, "spec": { "ports": [ { "name": "lg-0", "port": 5001 }, { "name": "adm-0", "port": 5002 }, { "name": "lg-1", "port": 5101 }, { "name": "adm-1", "port": 5102 }, { "name": "lg-2", "port": 5201 }, { "name": "adm-2", "port": 5202 }, { "name": "lg-3", "port": 5301 }, { "name": "adm-3", "port": 5302 }, { "name": "lg-4", "port": 5401 }, { "name": "adm-4", "port": 5402 }, { "name": "lg-5", "port": 5501 }, { "name": "adm-5", "port": 5502 }, { "name": "lg-6", "port": 5601 }, { "name": "adm-6", "port": 5602 }, { "name": "lg-7", "port": 5701 }, { "name": "adm-7", "port": 5702 }, { "name": "lg-8", "port": 5801 }, { "name": "adm-8", "port": 5802 }, { "name": "lg-9", "port": 5901 }, { "name": "adm-9", "port": 5902 }, { "name": "metrics", "port": 10013 }, { "name": "jmx", "port": 9010 } ], "selector": { "app": "multi-participant-0-3" } } }, "name": "multi-participant-0-3", "provider": "", "type": "kubernetes:core/v1:Service" }, { "custom": true, "id": "", "inputs": { "apiVersion": "monitoring.coreos.com/v1", "kind": "ServiceMonitor", "metadata": { "labels": { "release": "prometheus-grafana-monitoring" }, "name": "multi-participant-1-3-service-monitor", "namespace": "multi-validator" }, "spec": { "endpoints": [ { "honorLabels": true, "port": "metrics" } ], "namespaceSelector": { "any": true }, "selector": { "matchLabels": { "app": "multi-participant-1-3" } } } }, "name": "multi-participant-1-3-service-monitor", "provider": "", "type": "kubernetes:monitoring.coreos.com/v1:ServiceMonitor" }, { "custom": false, "id": "", "inputs": {}, "name": "multi-participant-1-3", "provider": "", "type": "canton:network:Deployment" }, { "custom": true, "id": "", "inputs": { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app": "multi-participant-1-3" }, "namespace": "multi-validator" }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app": "multi-participant-1-3" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "labels": { "app": "multi-participant-1-3" } }, "spec": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "containers": [ { "env": [ { "name": "CANTON_PARTICIPANT_POSTGRES_SERVER", "value": "postgres-1" }, { "name": "CANTON_PARTICIPANT_POSTGRES_DB", "value": "participant_3" }, { "name": "CANTON_PARTICIPANT_POSTGRES_SCHEMA", "value": "cantonnet" }, { "name": "CANTON_PARTICIPANT_POSTGRES_PASSWORD", "valueFrom": { "secretKeyRef": { "key": "postgresPassword", "name": "postgres-1-secret" } } }, { "name": "LOG_LEVEL_CANTON", "value": "INFO" }, { "name": "LOG_LEVEL_STDOUT", "value": "INFO" }, { "name": "NUM_NODES", "value": "10" }, { "name": "VALIDATOR_USERNAME_PREFIX", "value": "validator_user" }, { "name": "AUTH_TARGET_AUDIENCE", "value": "https://canton.network.global" }, { "name": "JAVA_TOOL_OPTIONS", "value": "-XX:MaxRAMPercentage=80 -XX:InitialRAMPercentage=80 -Dscala.concurrent.context.minThreads=16 -XX:+UnlockExperimentalVMOptions -XX:-G1UseAdaptiveIHOP -XX:G1MixedGCLiveThresholdPercent=12 -XX:G1HeapWastePercent=2 -XX:InitiatingHeapOccupancyPercent=10 -XX:GCTimeRatio=6 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1" }, { "name": "MULTI_PARTICIPANT_ADDITIONAL_CONFIG_MAX_CONNECTIONS", "value": "canton.participants.participant_INDEX.storage.parameters.max-connections = 33" } ], "image": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker/multi-participant:0.3.20", "livenessProbe": { "failureThreshold": 5, "grpc": { "port": 5061, "service": "liveness" }, "initialDelaySeconds": 60, "periodSeconds": 60, "timeoutSeconds": 10 }, "name": "multi-participant", "ports": [ { "containerPort": 5001, "name": "lg-0", "protocol": "TCP" }, { "containerPort": 5002, "name": "adm-0", "protocol": "TCP" }, { "containerPort": 5101, "name": "lg-1", "protocol": "TCP" }, { "containerPort": 5102, "name": "adm-1", "protocol": "TCP" }, { "containerPort": 5201, "name": "lg-2", "protocol": "TCP" }, { "containerPort": 5202, "name": "adm-2", "protocol": "TCP" }, { "containerPort": 5301, "name": "lg-3", "protocol": "TCP" }, { "containerPort": 5302, "name": "adm-3", "protocol": "TCP" }, { "containerPort": 5401, "name": "lg-4", "protocol": "TCP" }, { "containerPort": 5402, "name": "adm-4", "protocol": "TCP" }, { "containerPort": 5501, "name": "lg-5", "protocol": "TCP" }, { "containerPort": 5502, "name": "adm-5", "protocol": "TCP" }, { "containerPort": 5601, "name": "lg-6", "protocol": "TCP" }, { "containerPort": 5602, "name": "adm-6", "protocol": "TCP" }, { "containerPort": 5701, "name": "lg-7", "protocol": "TCP" }, { "containerPort": 5702, "name": "adm-7", "protocol": "TCP" }, { "containerPort": 5801, "name": "lg-8", "protocol": "TCP" }, { "containerPort": 5802, "name": "adm-8", "protocol": "TCP" }, { "containerPort": 5901, "name": "lg-9", "protocol": "TCP" }, { "containerPort": 5902, "name": "adm-9", "protocol": "TCP" }, { "containerPort": 10013, "name": "metrics" }, { "containerPort": 9010, "name": "jmx" } ], "readinessProbe": { "failureThreshold": 3, "grpc": { "port": 5061 }, "initialDelaySeconds": 5, "periodSeconds": 5, "timeoutSeconds": 10 }, "resources": { "limits": { "memory": "16Gi" }, "requests": { "cpu": "1", "memory": "8Gi" } } } ], "initContainers": [ { "command": [ "bash", "-c", "\n function createDb() {\n local dbname=\"$1\"\n\n until errmsg=$(psql -h postgres-1 --username=cnadmin --dbname=cantonnet -c \"create database $dbname\" 2>&1); do\n if [[ $errmsg == *\"already exists\"* ]]; then\n echo \"Database $dbname already exists. Done.\"\n break\n fi\n\n echo \"trying to create postgres database $dbname, last error: $errmsg\";\n sleep 2;\n done\n }\n\n createDb participant_3_00\ncreateDb participant_3_01\ncreateDb participant_3_02\ncreateDb participant_3_03\ncreateDb participant_3_04\ncreateDb participant_3_05\ncreateDb participant_3_06\ncreateDb participant_3_07\ncreateDb participant_3_08\ncreateDb participant_3_09\n " ], "env": [ { "name": "PGPASSWORD", "valueFrom": { "secretKeyRef": { "key": "postgresPassword", "name": "postgres-1-secret" } } } ], "image": "postgres:14", "name": "pg-init" } ], "securityContext": { "fsGroup": 1001, "runAsGroup": 1001, "runAsUser": 1001 }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] } } } }, "name": "multi-participant-1-3", "provider": "", "type": "kubernetes:apps/v1:Deployment" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Service", "metadata": { "labels": { "app": "multi-participant-1-3" }, "name": "multi-participant-1-3", "namespace": "multi-validator" }, "spec": { "ports": [ { "name": "lg-0", "port": 5001 }, { "name": "adm-0", "port": 5002 }, { "name": "lg-1", "port": 5101 }, { "name": "adm-1", "port": 5102 }, { "name": "lg-2", "port": 5201 }, { "name": "adm-2", "port": 5202 }, { "name": "lg-3", "port": 5301 }, { "name": "adm-3", "port": 5302 }, { "name": "lg-4", "port": 5401 }, { "name": "adm-4", "port": 5402 }, { "name": "lg-5", "port": 5501 }, { "name": "adm-5", "port": 5502 }, { "name": "lg-6", "port": 5601 }, { "name": "adm-6", "port": 5602 }, { "name": "lg-7", "port": 5701 }, { "name": "adm-7", "port": 5702 }, { "name": "lg-8", "port": 5801 }, { "name": "adm-8", "port": 5802 }, { "name": "lg-9", "port": 5901 }, { "name": "adm-9", "port": 5902 }, { "name": "metrics", "port": 10013 }, { "name": "jmx", "port": 9010 } ], "selector": { "app": "multi-participant-1-3" } } }, "name": "multi-participant-1-3", "provider": "", "type": "kubernetes:core/v1:Service" }, { "custom": true, "id": "", "inputs": { "apiVersion": "monitoring.coreos.com/v1", "kind": "ServiceMonitor", "metadata": { "labels": { "release": "prometheus-grafana-monitoring" }, "name": "multi-participant-2-3-service-monitor", "namespace": "multi-validator" }, "spec": { "endpoints": [ { "honorLabels": true, "port": "metrics" } ], "namespaceSelector": { "any": true }, "selector": { "matchLabels": { "app": "multi-participant-2-3" } } } }, "name": "multi-participant-2-3-service-monitor", "provider": "", "type": "kubernetes:monitoring.coreos.com/v1:ServiceMonitor" }, { "custom": false, "id": "", "inputs": {}, "name": "multi-participant-2-3", "provider": "", "type": "canton:network:Deployment" }, { "custom": true, "id": "", "inputs": { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app": "multi-participant-2-3" }, "namespace": "multi-validator" }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app": "multi-participant-2-3" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "labels": { "app": "multi-participant-2-3" } }, "spec": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "containers": [ { "env": [ { "name": "CANTON_PARTICIPANT_POSTGRES_SERVER", "value": "postgres-2" }, { "name": "CANTON_PARTICIPANT_POSTGRES_DB", "value": "participant_3" }, { "name": "CANTON_PARTICIPANT_POSTGRES_SCHEMA", "value": "cantonnet" }, { "name": "CANTON_PARTICIPANT_POSTGRES_PASSWORD", "valueFrom": { "secretKeyRef": { "key": "postgresPassword", "name": "postgres-2-secret" } } }, { "name": "LOG_LEVEL_CANTON", "value": "INFO" }, { "name": "LOG_LEVEL_STDOUT", "value": "INFO" }, { "name": "NUM_NODES", "value": "10" }, { "name": "VALIDATOR_USERNAME_PREFIX", "value": "validator_user" }, { "name": "AUTH_TARGET_AUDIENCE", "value": "https://canton.network.global" }, { "name": "JAVA_TOOL_OPTIONS", "value": "-XX:MaxRAMPercentage=80 -XX:InitialRAMPercentage=80 -Dscala.concurrent.context.minThreads=16 -XX:+UnlockExperimentalVMOptions -XX:-G1UseAdaptiveIHOP -XX:G1MixedGCLiveThresholdPercent=12 -XX:G1HeapWastePercent=2 -XX:InitiatingHeapOccupancyPercent=10 -XX:GCTimeRatio=6 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1" }, { "name": "MULTI_PARTICIPANT_ADDITIONAL_CONFIG_MAX_CONNECTIONS", "value": "canton.participants.participant_INDEX.storage.parameters.max-connections = 33" } ], "image": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker/multi-participant:0.3.20", "livenessProbe": { "failureThreshold": 5, "grpc": { "port": 5061, "service": "liveness" }, "initialDelaySeconds": 60, "periodSeconds": 60, "timeoutSeconds": 10 }, "name": "multi-participant", "ports": [ { "containerPort": 5001, "name": "lg-0", "protocol": "TCP" }, { "containerPort": 5002, "name": "adm-0", "protocol": "TCP" }, { "containerPort": 5101, "name": "lg-1", "protocol": "TCP" }, { "containerPort": 5102, "name": "adm-1", "protocol": "TCP" }, { "containerPort": 5201, "name": "lg-2", "protocol": "TCP" }, { "containerPort": 5202, "name": "adm-2", "protocol": "TCP" }, { "containerPort": 5301, "name": "lg-3", "protocol": "TCP" }, { "containerPort": 5302, "name": "adm-3", "protocol": "TCP" }, { "containerPort": 5401, "name": "lg-4", "protocol": "TCP" }, { "containerPort": 5402, "name": "adm-4", "protocol": "TCP" }, { "containerPort": 5501, "name": "lg-5", "protocol": "TCP" }, { "containerPort": 5502, "name": "adm-5", "protocol": "TCP" }, { "containerPort": 5601, "name": "lg-6", "protocol": "TCP" }, { "containerPort": 5602, "name": "adm-6", "protocol": "TCP" }, { "containerPort": 5701, "name": "lg-7", "protocol": "TCP" }, { "containerPort": 5702, "name": "adm-7", "protocol": "TCP" }, { "containerPort": 5801, "name": "lg-8", "protocol": "TCP" }, { "containerPort": 5802, "name": "adm-8", "protocol": "TCP" }, { "containerPort": 5901, "name": "lg-9", "protocol": "TCP" }, { "containerPort": 5902, "name": "adm-9", "protocol": "TCP" }, { "containerPort": 10013, "name": "metrics" }, { "containerPort": 9010, "name": "jmx" } ], "readinessProbe": { "failureThreshold": 3, "grpc": { "port": 5061 }, "initialDelaySeconds": 5, "periodSeconds": 5, "timeoutSeconds": 10 }, "resources": { "limits": { "memory": "16Gi" }, "requests": { "cpu": "1", "memory": "8Gi" } } } ], "initContainers": [ { "command": [ "bash", "-c", "\n function createDb() {\n local dbname=\"$1\"\n\n until errmsg=$(psql -h postgres-2 --username=cnadmin --dbname=cantonnet -c \"create database $dbname\" 2>&1); do\n if [[ $errmsg == *\"already exists\"* ]]; then\n echo \"Database $dbname already exists. Done.\"\n break\n fi\n\n echo \"trying to create postgres database $dbname, last error: $errmsg\";\n sleep 2;\n done\n }\n\n createDb participant_3_00\ncreateDb participant_3_01\ncreateDb participant_3_02\ncreateDb participant_3_03\ncreateDb participant_3_04\ncreateDb participant_3_05\ncreateDb participant_3_06\ncreateDb participant_3_07\ncreateDb participant_3_08\ncreateDb participant_3_09\n " ], "env": [ { "name": "PGPASSWORD", "valueFrom": { "secretKeyRef": { "key": "postgresPassword", "name": "postgres-2-secret" } } } ], "image": "postgres:14", "name": "pg-init" } ], "securityContext": { "fsGroup": 1001, "runAsGroup": 1001, "runAsUser": 1001 }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] } } } }, "name": "multi-participant-2-3", "provider": "", "type": "kubernetes:apps/v1:Deployment" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Service", "metadata": { "labels": { "app": "multi-participant-2-3" }, "name": "multi-participant-2-3", "namespace": "multi-validator" }, "spec": { "ports": [ { "name": "lg-0", "port": 5001 }, { "name": "adm-0", "port": 5002 }, { "name": "lg-1", "port": 5101 }, { "name": "adm-1", "port": 5102 }, { "name": "lg-2", "port": 5201 }, { "name": "adm-2", "port": 5202 }, { "name": "lg-3", "port": 5301 }, { "name": "adm-3", "port": 5302 }, { "name": "lg-4", "port": 5401 }, { "name": "adm-4", "port": 5402 }, { "name": "lg-5", "port": 5501 }, { "name": "adm-5", "port": 5502 }, { "name": "lg-6", "port": 5601 }, { "name": "adm-6", "port": 5602 }, { "name": "lg-7", "port": 5701 }, { "name": "adm-7", "port": 5702 }, { "name": "lg-8", "port": 5801 }, { "name": "adm-8", "port": 5802 }, { "name": "lg-9", "port": 5901 }, { "name": "adm-9", "port": 5902 }, { "name": "metrics", "port": 10013 }, { "name": "jmx", "port": 9010 } ], "selector": { "app": "multi-participant-2-3" } } }, "name": "multi-participant-2-3", "provider": "", "type": "kubernetes:core/v1:Service" }, { "custom": true, "id": "", "inputs": { "apiVersion": "monitoring.coreos.com/v1", "kind": "ServiceMonitor", "metadata": { "labels": { "release": "prometheus-grafana-monitoring" }, "name": "multi-participant-3-3-service-monitor", "namespace": "multi-validator" }, "spec": { "endpoints": [ { "honorLabels": true, "port": "metrics" } ], "namespaceSelector": { "any": true }, "selector": { "matchLabels": { "app": "multi-participant-3-3" } } } }, "name": "multi-participant-3-3-service-monitor", "provider": "", "type": "kubernetes:monitoring.coreos.com/v1:ServiceMonitor" }, { "custom": false, "id": "", "inputs": {}, "name": "multi-participant-3-3", "provider": "", "type": "canton:network:Deployment" }, { "custom": true, "id": "", "inputs": { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app": "multi-participant-3-3" }, "namespace": "multi-validator" }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app": "multi-participant-3-3" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "labels": { "app": "multi-participant-3-3" } }, "spec": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "containers": [ { "env": [ { "name": "CANTON_PARTICIPANT_POSTGRES_SERVER", "value": "postgres-3" }, { "name": "CANTON_PARTICIPANT_POSTGRES_DB", "value": "participant_3" }, { "name": "CANTON_PARTICIPANT_POSTGRES_SCHEMA", "value": "cantonnet" }, { "name": "CANTON_PARTICIPANT