@fairmint/canton-node-sdk
Version:
Canton Node SDK
1,666 lines • 158 kB
JSON
[
{
"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