diff --git a/helm/tableland/values-prod.yaml b/helm/tableland/values-prod.yaml new file mode 100644 index 00000000..d4b5df85 --- /dev/null +++ b/helm/tableland/values-prod.yaml @@ -0,0 +1,217 @@ +fullnameOverride: "" +image: textile/tableland +imageTag: "v1.10.2" +imagePullPolicy: "IfNotPresent" +imagePullSecrets: [] + +podAnnotations: {} +resources: {} + # requests: + # cpu: "1000m" + # memory: "2Gi" + # limits: + # cpu: "1000m" + # memory: "2Gi" +volumeClaimTemplate: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 30Gi + +config: + config.json: |- + { + "Impl": "mesa", + "HTTP": { + "Port": "8080", + "RateLimInterval": "1s", + "MaxRequestPerInterval": 10, + "ApiKey": "${HTTP_RATE_LIMITER_API_KEY}" + }, + "Gateway": { + "ExternalURIPrefix": "https://tableland.network", + "MetadataRendererURI": "https://tables.tableland.xyz", + "AnimationRendererURI": "https://tables.tableland.xyz" + }, + "DB": { + "Port": "5432" + }, + "TableConstraints": { + "MaxRowCount": 500000 + }, + "QueryConstraints": { + "MaxWriteQuerySize": 35000, + "MaxReadQuerySize": 35000 + }, + "Metrics": { + "Port": "9090" + }, + "Log": { + "Human": false, + "Debug": true + }, + "Analytics": { + "FetchExtraBlockInfo": true + }, + "Backup": { + "Enabled": true, + "Dir": "backups", + "Frequency": 240, + "EnableVacuum": true, + "EnableCompression": true, + "Pruning": { + "Enabled": true, + "KeepFiles": 5 + } + }, + "TelemetryPublisher": { + "Enabled": true, + "MetricsHubURL": "https://metricshub-mainnet-mrgr43cf5q-uw.a.run.app", + "MetricsHubApiKey": "${METRICS_HUB_API_KEY}", + "PublishingInterval": "10s", + "ChainStackCollectFrequency": "15m" + }, + "Chains": [ + { + "Name": "Ethereum Mainnet", + "ChainID": 1, + "Registry": { + "EthEndpoint": "wss://eth-mainnet.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_ETHEREUM_MAINNET_API_KEY}", + "ContractAddress": "0x012969f7e3439a9B04025b5a049EB9BAD82A8C12" + }, + "EventFeed": { + "ChainAPIBackoff": "15s", + "NewBlockPollFreq": "10s", + "MinBlockDepth": 1, + "PersistEvents": true + }, + "EventProcessor": { + "BlockFailedExecutionBackoff": "10s", + "DedupExecutedTxns": true, + "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" + }, + "HashCalculationStep": 150 + }, + { + "Name": "Polygon Mainnet", + "ChainID": 137, + "Registry": { + "EthEndpoint": "wss://polygon-mainnet.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_POLYGON_MAINNET_API_KEY}", + "ContractAddress": "0x5c4e6A9e5C1e1BF445A062006faF19EA6c49aFeA" + }, + "EventFeed": { + "ChainAPIBackoff": "15s", + "NewBlockPollFreq": "5s", + "MinBlockDepth": 1, + "PersistEvents": true + }, + "EventProcessor": { + "BlockFailedExecutionBackoff": "10s", + "DedupExecutedTxns": true, + "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" + }, + "HashCalculationStep": 360 + } + ] + } + + +extraEnvs: + - name: VALIDATOR_ALCHEMY_ETHEREUM_MAINNET_API_KEY + value: secret-value + - name: VALIDATOR_ALCHEMY_POLYGON_MAINNET_API_KEY + value: secret-value + - name: HTTP_RATE_LIMITER_API_KEY + value: very-secret + - name: METRICS_HUB_API_KEY + value: api-key + +envFrom: [] +# - secretRef: +# name: env-secret +# - configMapRef: +# name: config-map + +secretMounts: [] +# - name: tls-certificates +# secretName: tls-certificates +# path: /.tableland//certs +# defaultMode: 0755 + +rbac: + create: true + serviceAccountAnnotations: {} + serviceAccountName: "" + automountToken: true + +persistence: + enabled: true + annotations: {} + +extraVolumeMounts: [] +# - name: extras +# mountPath: /usr/share/extras +# readOnly: true + +extraContainers: [] +# - name: do-something +# image: busybox +# command: ['do', 'something'] + +priorityClassName: "" +enableServiceLinks: false + +# Http port of the application +httpPort: 8080 +# Https port of the application +httpsPort: 8443 +# Metrics port of the application +metricsPort: 8888 + +service: + annotations: {} + httpPortName: http + httpsPortName: https + monHttpsPortName: mon-http + +updateStrategy: RollingUpdate + +#if you change this number to 0, rolling upgrades will no longer be possible. +maxUnavailable: 1 + +podSecurityContext: + fsGroup: 1000 + runAsUser: 1000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +terminationGracePeriod: 120 + +nodeSelector: {} + +tolerations: [] + +ingress: + enabled: false + className: nginx + annotations: {} + hosts: + - host: tableland.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + +lifecycle: {} + +serviceMonitor: + enabled: false + path: /metrics + port: mon-http + interval: 30s \ No newline at end of file diff --git a/helm/tableland/values.yaml b/helm/tableland/values.yaml index e28a9ea4..f1ec7070 100644 --- a/helm/tableland/values.yaml +++ b/helm/tableland/values.yaml @@ -1,6 +1,6 @@ fullnameOverride: "" image: textile/tableland -imageTag: "v1.8.1-beta-3" +imageTag: "v1.10.2" imagePullPolicy: "IfNotPresent" imagePullSecrets: [] @@ -29,9 +29,9 @@ config: "ApiKey": "${HTTP_RATE_LIMITER_API_KEY}" }, "Gateway": { - "ExternalURIPrefix": "https://tableland.network", - "MetadataRendererURI": "https://tables.tableland.xyz", - "AnimationRendererURI": "https://tables.tableland.xyz" + "ExternalURIPrefix": "https://testnets.tableland.network", + "MetadataRendererURI": "https://tables.testnets.tableland.xyz", + "AnimationRendererURI": "https://tables.testnets.tableland.xyz" }, "DB": { "Port": "5432" @@ -66,18 +66,18 @@ config: }, "TelemetryPublisher": { "Enabled": true, - "MetricsHubURL": "https://metricshub-mainnet-mrgr43cf5q-uw.a.run.app", + "MetricsHubURL": "https://metricshub-testnet-v2-mrgr43cf5q-uw.a.run.app", "MetricsHubApiKey": "${METRICS_HUB_API_KEY}", "PublishingInterval": "10s", "ChainStackCollectFrequency": "15m" }, "Chains": [ { - "Name": "Ethereum Mainnet", - "ChainID": 1, + "Name": "Ethereum Sepolia", + "ChainID": 11155111, "Registry": { - "EthEndpoint": "wss://eth-mainnet.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_ETHEREUM_MAINNET_API_KEY}", - "ContractAddress": "0x012969f7e3439a9B04025b5a049EB9BAD82A8C12" + "EthEndpoint": "wss://eth-sepolia.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_ETHEREUM_SEPOLIA_API_KEY}", + "ContractAddress": "0xc50C62498448ACc8dBdE43DA77f8D5D2E2c7597D" }, "EventFeed": { "ChainAPIBackoff": "15s", @@ -87,57 +87,16 @@ config: }, "EventProcessor": { "BlockFailedExecutionBackoff": "10s", - "DedupExecutedTxns": true, - "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" + "DedupExecutedTxns": true }, "HashCalculationStep": 150 }, { - "Name": "Arbitrum Mainnet", - "ChainID": 42161, + "Name": "Polygon Amoy", + "ChainID": 80002, "Registry": { - "EthEndpoint": "https://arb-mainnet.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_ARBITRUM_MAINNET_API_KEY}", - "ContractAddress": "0x9aBd75E8640871A5a20d3B4eE6330a04c962aFfd" - }, - "EventFeed": { - "ChainAPIBackoff": "15s", - "NewBlockPollFreq": "5s", - "MinBlockDepth": 0, - "PersistEvents": true - }, - "EventProcessor": { - "BlockFailedExecutionBackoff": "10s", - "DedupExecutedTxns": true, - "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" - }, - "HashCalculationStep": 450 - }, - { - "Name": "Arbitrum Nova Mainnet", - "ChainID": 42170, - "Registry": { - "EthEndpoint": "https://skilled-yolo-mountain.nova-mainnet.discover.quiknode.pro/${VALIDATOR_QUICKNODE_ARBITRUM_NOVA_MAINNET_API_KEY}", - "ContractAddress": "0x1A22854c5b1642760a827f20137a67930AE108d2" - }, - "EventFeed": { - "ChainAPIBackoff": "15s", - "NewBlockPollFreq": "5s", - "MinBlockDepth": 0, - "PersistEvents": true - }, - "EventProcessor": { - "BlockFailedExecutionBackoff": "10s", - "DedupExecutedTxns": true, - "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" - }, - "HashCalculationStep": 450 - }, - { - "Name": "Polygon Mainnet", - "ChainID": 137, - "Registry": { - "EthEndpoint": "wss://polygon-mainnet.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_POLYGON_MAINNET_API_KEY}", - "ContractAddress": "0x5c4e6A9e5C1e1BF445A062006faF19EA6c49aFeA" + "EthEndpoint": "wss://polygon-amoy.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_POLYGON_AMOY_API_KEY}", + "ContractAddress": "0x170fb206132b693e38adFc8727dCfa303546Cec1" }, "EventFeed": { "ChainAPIBackoff": "15s", @@ -147,68 +106,18 @@ config: }, "EventProcessor": { "BlockFailedExecutionBackoff": "10s", - "DedupExecutedTxns": true, - "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" + "DedupExecutedTxns": true }, "HashCalculationStep": 360 - }, - { - "Name": "Optimism Mainnet", - "ChainID": 10, - "Registry": { - "EthEndpoint": "wss://opt-mainnet.g.alchemy.com/v2/${VALIDATOR_ALCHEMY_OPTIMISM_MAINNET_API_KEY}", - "ContractAddress": "0xfad44BF5B843dE943a09D4f3E84949A11d3aa3e6" - }, - "EventFeed": { - "ChainAPIBackoff": "15s", - "NewBlockPollFreq": "5s", - "MinBlockDepth": 0, - "PersistEvents": true - }, - "EventProcessor": { - "BlockFailedExecutionBackoff": "10s", - "DedupExecutedTxns": true, - "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" - }, - "HashCalculationStep": 1800 - }, - { - "Name": "Filecoin Mainnet", - "ChainID": 314, - "Registry": { - "EthEndpoint": "https://node.glif.io/fvm-archive/lotus/rpc/v1", - "ContractAddress": "0x59EF8Bf2d6c102B4c42AEf9189e1a9F0ABfD652d", - "ProviderAuthToken": "${VALIDATOR_GLIF_FILECOIN_MAINNET_API_KEY}" - }, - "EventFeed": { - "ChainAPIBackoff": "15s", - "NewBlockPollFreq": "15s", - "MinBlockDepth": 5, - "PersistEvents": true - }, - "EventProcessor": { - "BlockFailedExecutionBackoff": "10s", - "DedupExecutedTxns": true, - "WebhookURL": "https://discord.com/api/webhooks/${VALIDATOR_DISCORD_WEBHOOK_ID}/${VALIDATOR_DISCORD_WEBHOOK_TOKEN}" - }, - "HashCalculationStep": 60 } ] } extraEnvs: - - name: VALIDATOR_ALCHEMY_ARBITRUM_MAINNET_API_KEY - value: secret-value - - name: VALIDATOR_ALCHEMY_ETHEREUM_MAINNET_API_KEY - value: secret-value - - name: VALIDATOR_ALCHEMY_POLYGON_MAINNET_API_KEY - value: secret-value - - name: VALIDATOR_ALCHEMY_OPTIMISM_MAINNET_API_KEY - value: secret-value - - name: VALIDATOR_GLIF_FILECOIN_MAINNET_API_KEY + - name: VALIDATOR_ALCHEMY_ETHEREUM_SEPOLIA_API_KEY value: secret-value - - name: VALIDATOR_QUICKNODE_ARBITRUM_NOVA_MAINNET_API_KEY + - name: VALIDATOR_ALCHEMY_POLYGON_AMOY_API_KEY value: secret-value - name: HTTP_RATE_LIMITER_API_KEY value: very-secret