UNPKG

@fairmint/canton-node-sdk

Version:
1,288 lines (1,287 loc) 41.9 kB
[ { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "imagePullSecrets": [ { "name": "docker-reg-cred" } ], "kind": "ServiceAccount", "metadata": { "name": "default", "namespace": "cluster-ingress" } }, "name": "cluster-ingress-default", "provider": "urn:pulumi:test-stack::test-project::pulumi:providers:kubernetes::k8s-imgpull-cluster-ingress-default::undefined_id", "type": "kubernetes:core/v1:ServiceAccountPatch" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "docker-reg-cred", "namespace": "cluster-ingress" }, "stringData": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { ".dockerconfigjson": "{\"auths\":{\"digitalasset-canton-enterprise-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker-dev.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"us-central1-docker.pkg.dev\":{\"auth\":\"X2pzb25fa2V5OnsidHlwZSI6InNlcnZpY2VfYWNjb3VudCIsInByb2plY3RfaWQiOiJmYWtlLXByb2plY3QiLCJwcml2YXRlX2tleV9pZCI6ImZha2VfaWQiLCJwcml2YXRlX2tleSI6Ii0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuZmFrZVxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwiY2xpZW50X2VtYWlsIjoiZmFrZUBmYWtlLXByb2plY3QuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJjbGllbnRfaWQiOiJmYWtlLWNsaWVudC1pZCIsImF1dGhfdXJpIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCJ0b2tlbl91cmkiOiJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiIsImF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybCI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS9jZXJ0cyIsImNsaWVudF94NTA5X2NlcnRfdXJsIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9mYWtlJTQwZmFrZS1wcm9qZWN0LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwidW5pdmVyc2VfZG9tYWluIjoiZ29vZ2xlYXBpcy5jb20ifQ==\",\"username\":\"_json_key\",\"password\":\"{\\\"type\\\":\\\"service_account\\\",\\\"project_id\\\":\\\"fake-project\\\",\\\"private_key_id\\\":\\\"fake_id\\\",\\\"private_key\\\":\\\"-----BEGIN PRIVATE KEY-----\\\\nfake\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\":\\\"fake@fake-project.iam.gserviceaccount.com\\\",\\\"client_id\\\":\\\"fake-client-id\\\",\\\"auth_uri\\\":\\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\":\\\"https://oauth2.googleapis.com/token\\\",\\\"auth_provider_x509_cert_url\\\":\\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\":\\\"https://www.googleapis.com/robot/v1/metadata/x509/fake%40fake-project.iam.gserviceaccount.com\\\",\\\"universe_domain\\\":\\\"googleapis.com\\\"}\"}}}" } }, "type": "kubernetes.io/dockerconfigjson" }, "name": "cluster-ingress-docker-reg-cred", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-cluster-ingress-runbook", "compat": "true", "maxHistory": 10, "name": "cluster-ingress-sv", "namespace": "sv", "timeout": 600, "values": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "cluster": { "hostname": "mock.global.canton.network.digitalasset.com", "svNamespace": "sv" }, "imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker", "ingress": { "decentralizedSynchronizer": { "migrationIds": [ "3", "4" ] } }, "rateLimit": { "scan": { "enable": false } }, "spliceDomainNames": { "nameServiceDomain": "cns" }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] }, "version": "0.3.20" }, "name": "cluster-ingress-sv", "provider": "", "type": "kubernetes:helm.sh/v3:Release" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "postgresPassword": "" } }, "kind": "Secret", "metadata": { "name": "apps-pg-secret", "namespace": "sv" }, "type": "Opaque" }, "name": "cn-app-sv-apps-pg-secret", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "json-credentials": "eyJidWNrZXROYW1lIjoiZGF0YS1leHBvcnQtYnVja2V0LW5hbWUiLCJzZWNyZXROYW1lIjoiZGF0YS1leHBvcnQtYnVja2V0LXNhLWtleS1zZWNyZXQiLCJqc29uQ3JlZGVudGlhbHMiOiJkYXRhLWV4cG9ydC1idWNrZXQtc2Eta2V5LXNlY3JldC1jcmVkcyJ9" } }, "kind": "Secret", "metadata": { "name": "cn-gcp-bucket-da-cn-devnet-da-cn-data-dumps", "namespace": "sv" }, "type": "Opaque" }, "name": "cn-app-sv-cn-gcp-bucket-da-cn-devnet-da-cn-data-dumps", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "data": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "private": "c3YtaWQtcHJpdmF0ZS1rZXk=", "public": "c3YtaWQtcHVibGljLWtleQ==" } }, "kind": "Secret", "metadata": { "name": "splice-app-sv-key", "namespace": "sv" }, "type": "Opaque" }, "name": "cn-app-sv-key", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-info", "compat": "true", "maxHistory": 10, "name": "info", "namespace": "sv", "timeout": 600, "values": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "deploymentDetails": { "configDigest": { "allowedIpRanges": { "type": "md5", "value": "90eedde4a8599204a45dcb972e212c8b" }, "approvedSvIdentities": { "type": "md5", "value": "5871224b744b45122540483fddbd550f" } }, "network": "test", "sv": { "version": "0.3.20" }, "synchronizer": { "active": { "chainIdSuffix": "4", "migrationId": 3 } } }, "imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker", "istioVirtualService": { "gateway": "cluster-ingress/cn-http-gateway", "host": "info.sv.mock.global.canton.network.digitalasset.com" }, "nginxImage": "nginx:latest", "runtimeDetails": { "scanUrl": "http://scan-app.sv:5012" }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] }, "version": "0.3.20" }, "name": "info", "provider": "", "type": "kubernetes:helm.sh/v3:Release" }, { "custom": true, "id": "", "inputs": { "enableServerSideApply": "true" }, "name": "k8s-imgpull-cluster-ingress-default", "provider": "", "type": "pulumi:providers:kubernetes" }, { "custom": true, "id": "", "inputs": { "enableServerSideApply": "true" }, "name": "k8s-imgpull-sv-default", "provider": "", "type": "pulumi:providers:kubernetes" }, { "custom": true, "id": "", "inputs": { "apiVersion": "networking.istio.io/v1alpha3", "kind": "VirtualService", "metadata": { "name": "cometbft-loopback", "namespace": "sv" }, "spec": { "exportTo": [ "." ], "gateways": [ "mesh" ], "hosts": [ "mock.global.canton.network.digitalasset.com" ], "tcp": [ { "match": [ { "gateways": [ "mesh" ] } ], "route": [ { "destination": { "host": "istio-ingress-cometbft.cluster-ingress.svc.cluster.local" } } ] } ] } }, "name": "loopback-cometbft-sv", "provider": "", "type": "kubernetes:networking.istio.io/v1alpha3:VirtualService" }, { "custom": true, "id": "", "inputs": { "apiVersion": "networking.istio.io/v1alpha3", "kind": "ServiceEntry", "metadata": { "name": "loopback", "namespace": "sv" }, "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" }, { "name": "cometbft-0-0-p2p", "number": 26006, "protocol": "TCP" }, { "name": "cometbft-0-1-p2p", "number": 26016, "protocol": "TCP" }, { "name": "cometbft-0-2-p2p", "number": 26026, "protocol": "TCP" }, { "name": "cometbft-1-0-p2p", "number": 26106, "protocol": "TCP" }, { "name": "cometbft-1-1-p2p", "number": 26116, "protocol": "TCP" }, { "name": "cometbft-1-2-p2p", "number": 26126, "protocol": "TCP" }, { "name": "cometbft-2-0-p2p", "number": 26206, "protocol": "TCP" }, { "name": "cometbft-2-1-p2p", "number": 26216, "protocol": "TCP" }, { "name": "cometbft-2-2-p2p", "number": 26226, "protocol": "TCP" }, { "name": "cometbft-3-0-p2p", "number": 26306, "protocol": "TCP" }, { "name": "cometbft-3-1-p2p", "number": 26316, "protocol": "TCP" }, { "name": "cometbft-3-2-p2p", "number": 26326, "protocol": "TCP" }, { "name": "cometbft-4-0-p2p", "number": 26406, "protocol": "TCP" }, { "name": "cometbft-4-1-p2p", "number": 26416, "protocol": "TCP" }, { "name": "cometbft-4-2-p2p", "number": 26426, "protocol": "TCP" } ], "resolution": "DNS" } }, "name": "loopback-service-entry-sv", "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": "sv" }, "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-sv", "provider": "", "type": "kubernetes:networking.istio.io/v1alpha3:VirtualService" }, { "custom": true, "id": "organization/infra/infra.mock", "inputs": { "name": "organization/infra/infra.mock" }, "name": "organization/infra/infra.mock", "provider": "", "type": "pulumi:pulumi:StackReference" }, { "custom": true, "id": "", "inputs": { "chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-scan", "compat": "true", "maxHistory": 10, "name": "scan", "namespace": "sv", "timeout": 600, "values": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "enablePostgresMetrics": true, "imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker", "mediatorAddress": "global-domain-3-mediator", "metrics": { "enable": true }, "migration": { "id": "3" }, "participantAddress": "participant-3", "persistence": { "host": "apps-pg.sv.svc.cluster.local", "postgresName": "apps-pg", "secretName": "apps-pg-secret" }, "resources": { "limits": { "memory": "2048Mi" }, "requests": { "cpu": "0.5", "memory": "1536Mi" } }, "sequencerAddress": "global-domain-3-sequencer", "spliceInstanceNames": { "amuletName": "Amulet", "amuletNameAcronym": "AMT", "nameServiceName": "Amulet Name Service", "nameServiceNameAcronym": "ANS", "networkFaviconUrl": "https://www.hyperledger.org/hubfs/hyperledgerfavicon.png", "networkName": "Splice" }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] }, "version": "0.3.20" }, "name": "scan", "provider": "", "type": "kubernetes:helm.sh/v3:Release" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "splice-app-sv-ledger-api-auth", "namespace": "sv" }, "stringData": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "audience": "https://ledger_api.example.com", "client-id": "sv-client-id", "client-secret": "***", "ledger-api-user": "sv-client-id@clients", "url": "https://canton-network-sv-test.us.auth0.com/.well-known/openid-configuration" } } }, "name": "splice-auth0-secret-sv-sv", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "splice-app-validator-ledger-api-auth", "namespace": "sv" }, "stringData": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "audience": "https://ledger_api.example.com", "client-id": "validator-client-id", "client-secret": "***", "ledger-api-user": "validator-client-id@clients", "url": "https://canton-network-sv-test.us.auth0.com/.well-known/openid-configuration" } } }, "name": "splice-auth0-secret-sv-validator", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "splice-app-cns-ui-auth", "namespace": "sv" }, "stringData": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "client-id": "cns-client-id", "url": "https://canton-network-sv-test.us.auth0.com" } } }, "name": "splice-auth0-ui-secret-sv-cns", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "splice-app-sv-ui-auth", "namespace": "sv" }, "stringData": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "client-id": "sv-client-id", "url": "https://canton-network-sv-test.us.auth0.com" } } }, "name": "splice-auth0-ui-secret-sv-sv", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "splice-app-wallet-ui-auth", "namespace": "sv" }, "stringData": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { "client-id": "wallet-client-id", "url": "https://canton-network-sv-test.us.auth0.com" } } }, "name": "splice-auth0-ui-secret-sv-wallet", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": false, "id": "", "inputs": {}, "name": "splice-sv-scan-app-rate-limit", "provider": "", "type": "splice:RateLimit" }, { "custom": true, "id": "", "inputs": { "length": 16, "overrideSpecial": "_%@", "special": true }, "name": "sv-apps-pg-passwd", "provider": "", "type": "random:index/randomPassword:RandomPassword" }, { "custom": false, "id": "", "inputs": {}, "name": "sv-apps-pg", "provider": "", "type": "canton:network:postgres" }, { "custom": true, "id": "", "inputs": { "chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-postgres", "compat": "true", "maxHistory": 10, "name": "apps-pg", "namespace": "sv", "timeout": 600, "values": { "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "cluster": { "dnsName": "mock.global.canton.network.digitalasset.com", "fixedTokens": false, "hostname": "mock.global.canton.network.digitalasset.com", "name": "cn-mocknet" }, "db": { "volumeSize": "48Gi" }, "imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker", "persistence": { "secretName": "apps-pg-secret" }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] }, "version": "0.3.20" }, "name": "sv-apps-pg", "provider": "", "type": "kubernetes:helm.sh/v3:Release" }, { "custom": true, "id": "", "inputs": { "chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-sv-node", "compat": "true", "maxHistory": 10, "name": "sv-app", "namespace": "sv", "timeout": 600, "values": { "additionalEnvVars": [ { "name": "CUSTOM_MOCK_ENV_VAR_NAME", "value": "CUSTOM_MOCK_ENV_VAR_VALUE" }, { "name": "ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION", "value": "canton.sv-apps.sv.bft-sequencer-connection = false" } ], "additionalJvmOptions": "-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 -DcustomSvAppJvmFlag", "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "approvedSvIdentities": [ { "name": "Digital-Asset-2", "publicKey": "sv1-id-public-key", "rewardWeightBps": 100000 }, { "name": "SV1", "publicKey": "PUBLIC_KEY_1==", "rewardWeightBps": 1000000 }, { "extraBeneficiaries": [ { "beneficiary": "mock-validator-1::123456789012345678901234567890123456789012234567890123456789012345678", "weight": 100000 }, { "beneficiary": "Broadridge-validator-1::1220c89a73e7b47f16dfb48a521eeedfe2a8620ea1b19b815ab427388d9f5427faa5", "weight": 50000 } ], "name": "SV2", "publicKey": "PUBLIC_KEY_2==", "rewardWeightBps": 150000 }, { "name": "Digital-Asset-1", "publicKey": "svda1-mock-id-public-key", "rewardWeightBps": 150000 }, { "name": "DA-Helm-Test-Node", "publicKey": "sv-id-public-key", "rewardWeightBps": 10000 } ], "auth": { "audience": "https://sv.example.com/api", "jwksUrl": "https://canton-network-sv-test.us.auth0.com/.well-known/jwks.json" }, "cometBFT": { "connectionUri": "http://global-domain-3-cometbft-cometbft-rpc:26657", "enabled": true }, "contactPoint": "sv-support@digitalasset.com", "decentralizedSynchronizerUrl": "https://sequencer-3.sv-2.mock.global.canton.network.digitalasset.com", "disableOnboardingParticipantPromotionDelay": false, "domain": { "enableBftSequencer": false, "mediatorAddress": "global-domain-3-mediator", "sequencerAddress": "global-domain-3-sequencer", "sequencerAvailabilityDelay": "60 seconds", "sequencerPruningConfig": { "enabled": true, "pruningInterval": "1 hours", "retentionPeriod": "30 days" }, "sequencerPublicUrl": "https://sequencer-3.sv.mock.global.canton.network.digitalasset.com", "skipInitialization": true }, "enablePostgresMetrics": true, "extraBeneficiaries": [ { "beneficiary": "dummy::partyId", "weight": 3333 } ], "failOnAppVersionMismatch": true, "imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker", "initialAmuletPrice": "0.0517", "joinWithKeyOnboarding": { "sponsorApiUrl": "https://sv.sv-2.mock.global.canton.network.digitalasset.com" }, "logAsyncFlush": false, "logLevel": "WARN", "maxVettingDelay": "1m", "metrics": { "enable": true }, "migration": { "id": "3" }, "nodeIdentifier": "DA-Helm-Test-Node", "onboardingName": "DA-Helm-Test-Node", "participantAddress": "participant-3", "persistence": { "host": "apps-pg.sv.svc.cluster.local", "postgresName": "apps-pg", "secretName": "apps-pg-secret" }, "resources": { "limits": { "memory": "2Gi" }, "requests": { "cpu": "1", "memory": "1Gi" } }, "scan": { "internalUrl": "http://scan-app.sv:5012", "publicUrl": "https://scan.sv.mock.global.canton.network.digitalasset.com" }, "spliceInstanceNames": { "amuletName": "Amulet", "amuletNameAcronym": "AMT", "nameServiceName": "Amulet Name Service", "nameServiceNameAcronym": "ANS", "networkFaviconUrl": "https://www.hyperledger.org/hubfs/hyperledgerfavicon.png", "networkName": "Splice" }, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ] }, "version": "0.3.20" }, "name": "sv-app", "provider": "", "type": "kubernetes:helm.sh/v3:Release" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "imagePullSecrets": [ { "name": "docker-reg-cred" } ], "kind": "ServiceAccount", "metadata": { "name": "default", "namespace": "sv" } }, "name": "sv-default", "provider": "urn:pulumi:test-stack::test-project::pulumi:providers:kubernetes::k8s-imgpull-sv-default::undefined_id", "type": "kubernetes:core/v1:ServiceAccountPatch" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "docker-reg-cred", "namespace": "sv" }, "stringData": { "4dabf18193072939515e22adb298388d": "1b47061264138c4ac30d75fd1eb44270", "value": { ".dockerconfigjson": "{\"auths\":{\"digitalasset-canton-enterprise-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"digitalasset-canton-network-docker-dev.jfrog.io\":{\"auth\":\"YXJ0X3VzZXI6czNjcjN0\",\"username\":\"art_user\",\"password\":\"s3cr3t\"},\"us-central1-docker.pkg.dev\":{\"auth\":\"X2pzb25fa2V5OnsidHlwZSI6InNlcnZpY2VfYWNjb3VudCIsInByb2plY3RfaWQiOiJmYWtlLXByb2plY3QiLCJwcml2YXRlX2tleV9pZCI6ImZha2VfaWQiLCJwcml2YXRlX2tleSI6Ii0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuZmFrZVxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwiY2xpZW50X2VtYWlsIjoiZmFrZUBmYWtlLXByb2plY3QuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJjbGllbnRfaWQiOiJmYWtlLWNsaWVudC1pZCIsImF1dGhfdXJpIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCJ0b2tlbl91cmkiOiJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiIsImF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybCI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS9jZXJ0cyIsImNsaWVudF94NTA5X2NlcnRfdXJsIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vcm9ib3QvdjEvbWV0YWRhdGEveDUwOS9mYWtlJTQwZmFrZS1wcm9qZWN0LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwidW5pdmVyc2VfZG9tYWluIjoiZ29vZ2xlYXBpcy5jb20ifQ==\",\"username\":\"_json_key\",\"password\":\"{\\\"type\\\":\\\"service_account\\\",\\\"project_id\\\":\\\"fake-project\\\",\\\"private_key_id\\\":\\\"fake_id\\\",\\\"private_key\\\":\\\"-----BEGIN PRIVATE KEY-----\\\\nfake\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\":\\\"fake@fake-project.iam.gserviceaccount.com\\\",\\\"client_id\\\":\\\"fake-client-id\\\",\\\"auth_uri\\\":\\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\":\\\"https://oauth2.googleapis.com/token\\\",\\\"auth_provider_x509_cert_url\\\":\\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\":\\\"https://www.googleapis.com/robot/v1/metadata/x509/fake%40fake-project.iam.gserviceaccount.com\\\",\\\"universe_domain\\\":\\\"googleapis.com\\\"}\"}}}" } }, "type": "kubernetes.io/dockerconfigjson" }, "name": "sv-docker-reg-cred", "provider": "", "type": "kubernetes:core/v1:Secret" }, { "custom": true, "id": "", "inputs": { "apiVersion": "networking.istio.io/v1alpha3", "kind": "EnvoyFilter", "metadata": { "annotations": { "proxy.istio.io/config": "proxyStatsMatcher:\n inclusionRegexps:\n - \".*http_local_rate_limit.*\"" }, "name": "scan-app-rate-limit", "namespace": "sv" }, "spec": { "configPatches": [ { "applyTo": "HTTP_FILTER", "match": { "context": "SIDECAR_INBOUND", "listener": { "filterChain": { "filter": { "name": "envoy.filters.network.http_connection_manager" } } } }, "patch": { "operation": "INSERT_BEFORE", "value": { "name": "envoy.filters.http.local_ratelimit", "typed_config": { "@type": "type.googleapis.com/udpa.type.v1.TypedStruct", "type_url": "type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit", "value": { "stat_prefix": "http_local_rate_limiter" } } } } }, { "applyTo": "HTTP_ROUTE", "match": { "context": "SIDECAR_INBOUND", "routeConfiguration": { "vhost": { "name": "inbound|http|5012", "route": { "action": "ANY" } } } }, "patch": { "operation": "MERGE", "value": { "route": { "rate_limits": [ { "actions": [ { "header_value_match": { "descriptor_value": "acs", "expect_match": true, "headers": [ { "name": ":path", "string_match": { "ignore_case": true, "prefix": "/api/scan/v0/acs" } } ] } }, { "request_headers": { "descriptor_key": "client_ip", "header_name": "x-forwarded-for" } } ] } ] }, "typed_per_filter_config": { "envoy.filters.http.local_ratelimit": { "@type": "type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit", "descriptors": [ { "entries": [ { "key": "header_match", "value": "acs" }, { "key": "client_ip" } ], "token_bucket": { "fill_interval": "60s", "max_tokens": 10, "tokens_per_fill": 5 } } ], "filter_enabled": { "default_value": { "denominator": "HUNDRED", "numerator": 100 }, "runtime_key": "local_rate_limit_enabled" }, "filter_enforced": { "default_value": { "denominator": "HUNDRED", "numerator": 100 }, "runtime_key": "local_rate_limit_enforced" }, "response_headers_to_add": [ { "append_action": "OVERWRITE_IF_EXISTS_OR_ADD", "header": { "key": "x-local-rate-limit", "value": "true" } } ], "stat_prefix": "http_local_rate_limiter", "token_bucket": { "fill_interval": "60s", "max_tokens": 2147483647, "tokens_per_fill": 2147483647 } } } } } } ], "workloadSelector": { "labels": { "app": "scan-app" } } } }, "name": "sv-scan-app-rate-limit", "provider": "", "type": "kubernetes:networking.istio.io/v1alpha3:EnvoyFilter" }, { "custom": true, "id": "", "inputs": { "apiVersion": "v1", "kind": "Namespace", "metadata": { "labels": { "istio-injection": "enabled" }, "name": "sv" } }, "name": "sv", "provider": "", "type": "kubernetes:core/v1:Namespace" }, { "custom": true, "id": "", "inputs": { "chart": "oci://ghcr.io/digital-asset/decentralized-canton-sync-dev/helm/splice-validator", "compat": "true", "maxHistory": 10, "name": "validator", "namespace": "sv", "timeout": 600, "values": { "additionalEnvVars": [ { "name": "ADDITIONAL_CONFIG_NO_BFT_SEQUENCER_CONNECTION", "value": "canton.validator-apps.validator_backend.disable-sv-validator-bft-sequencer-connection = true" }, { "name": "ADDITIONAL_CONFIG_TOPOLOGY_METRICS_EXPORT", "value": "canton.validator-apps.validator_backend.automation.topology-metrics-polling-interval = 5m\n" } ], "additionalJvmOptions": "-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", "affinity": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": { "nodeSelectorTerms": [ { "matchExpressions": [ { "key": "cn_apps", "operator": "Exists" } ] } ] } } }, "auth": { "audience": "https://validator.example.com/api", "jwksUrl": "https://canton-network-sv-test.us.auth0.com/.well-known/jwks.json" }, "contactPoint": "sv-support@digitalasset.com", "decentralizedSynchronizerUrl": "https://sequencer-3.sv-2.mock.global.canton.network.digitalasset.com", "enablePostgresMetrics": true, "enableWallet": true, "imageRepo": "us-central1-docker.pkg.dev/da-cn-shared/ghcr/digital-asset/decentralized-canton-sync-dev/docker", "maxVettingDelay": "1m", "metrics": { "enable": true }, "migration": { "id": "3" }, "nodeIdentifier": "DA-Helm-Test-Node", "participantAddress": "participant-3", "participantIdentitiesDumpPeriodicBackup": { "backupInterval": "10m", "location": { "bucket": { "bucketName": "da-cn-data-dumps", "jsonCredentials": "{\"bucketName\":\"data-export-bucket-name\",\"secretName\":\"data-export-bucket-sa-key-secret\",\"jsonCredentials\":\"data-export-bucket-sa-key-secret-creds\"}", "projectId": "da-cn-devnet", "secretName": "cn-gcp-bucket-da-cn-devnet-da-cn-data-dumps" }, "prefix": "mock/sv" } }, "persistence": { "host": "apps-pg.sv.svc.cluster.local", "postgresName": "apps-pg", "secretName": "apps-pg-secret" }, "resources": { "limits": { "memory": "4Gi" }, "requests": { "memory": "2Gi" } }, "scanAddress": "http://scan-app.sv:5012", "spliceInstanceNames": { "amuletName": "Amulet", "amuletNameAcronym": "AMT", "nameServiceName": "Amulet Name Service", "nameServiceNameAcronym": "ANS", "networkFaviconUrl": "https://www.hyperledger.org/hubfs/hyperledgerfavicon.png", "networkName": "Splice" }, "svValidator": true, "tolerations": [ { "effect": "NoSchedule", "key": "cn_apps", "operator": "Exists" } ], "topup": { "enabled": true, "minTopupInterval": "1m", "targetThroughput": 0 }, "useSequencerConnectionsFromScan": false, "validatorWalletUsers": [ "google-oauth2|1234567890", "auth0|64553aa683015a9687d9cc2e" ] }, "version": "0.3.20" }, "name": "validator", "provider": "", "type": "kubernetes:helm.sh/v3:Release" } ]