Skip to content
Closed
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .env.alfajores
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ AZURE_ORACLE_CENTRALUS_FULL_NODES_ROLLING_UPDATE_PARTITION=0
AZURE_ORACLE_CENTRALUS_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
AZURE_ORACLE_CENTRALUS_FULL_NODES_GETH_GC_MODE="full"
AZURE_ORACLE_CENTRALUS_FULL_NODES_USE_GSTORAGE_DATA=false
AZURE_ORACLE_CENTRALUS_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

# Temporarily point to celo-org repository to consume patched image.
GETH_NODE_DOCKER_IMAGE_REPOSITORY="us.gcr.io/celo-org/geth"
Expand Down
3 changes: 3 additions & 0 deletions .env.baklava
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ AZURE_ORACLE_WESTUS2_FULL_NODES_DISK_SIZE=30
AZURE_ORACLE_WESTUS2_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
AZURE_ORACLE_WESTUS2_FULL_NODES_GETH_GC_MODE="full"
AZURE_ORACLE_WESTUS2_FULL_NODES_USE_GSTORAGE_DATA=false
AZURE_ORACLE_WESTUS2_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

AZURE_ORACLE_CENTRALUS_AZURE_SUBSCRIPTION_ID=7a6f5f20-bd43-4267-8c35-a734efca140c
AZURE_ORACLE_CENTRALUS_AZURE_TENANT_ID=7cb7628a-e37c-4afb-8332-2029e418980e
Expand All @@ -90,6 +91,7 @@ AZURE_ORACLE_CENTRALUS_FULL_NODES_DISK_SIZE=30
AZURE_ORACLE_CENTRALUS_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
AZURE_ORACLE_CENTRALUS_FULL_NODES_GETH_GC_MODE="full"
AZURE_ORACLE_CENTRALUS_FULL_NODES_USE_GSTORAGE_DATA=false
AZURE_ORACLE_CENTRALUS_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

# ---- Forno ----

Expand Down Expand Up @@ -118,6 +120,7 @@ GCP_FORNO_EUROPE_WEST1_FULL_NODES_STATIC_NODES_FILE_SUFFIX=gcp-europe-west1
GCP_FORNO_EUROPE_WEST1_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
GCP_FORNO_EUROPE_WEST1_FULL_NODES_GETH_GC_MODE="full"
GCP_FORNO_EUROPE_WEST1_FULL_NODES_USE_GSTORAGE_DATA=false
GCP_FORNO_EUROPE_WEST1_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

TRANSACTION_METRICS_EXPORTER_DOCKER_IMAGE_REPOSITORY="gcr.io/celo-testnet/celo-monorepo"
TRANSACTION_METRICS_EXPORTER_DOCKER_IMAGE_TAG="transaction-metrics-exporter-dc5e5dfa07231a4ff4664816a95eae606293eae9"
Expand Down
17 changes: 11 additions & 6 deletions .env.rc1
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ BLOCKSCOUT_SUBNETWORK_NAME="Celo"
BLOCKSCOUT_METADATA_CRAWLER_IMAGE_REPOSITORY="gcr.io/celo-testnet/celo-monorepo"
BLOCKSCOUT_METADATA_CRAWLER_IMAGE_TAG="metadata-crawler-007f29dc8ebf837543e6e28a14818076e88c69cd"
BLOCKSCOUT_METADATA_CRAWLER_SCHEDULE="0 */2 * * *"
BLOCKSCOUT_OVERRIDE_RPC_ENDPOINT="http://rc1-fullnodes-rpc.rc1.svc.cluster.local:8545"
BLOCKSCOUT_OVERRIDE_WS_ENDPOINT="ws://rc1-fullnodes-rpc.rc1.svc.cluster.local:8546"
BLOCKSCOUT_OVERRIDE_RPC_ENDPOINT="http://rc1-fullnodes-rpc.rc1.svc.cluster.local:3000/rpc"
BLOCKSCOUT_OVERRIDE_WS_ENDPOINT="ws://rc1-fullnodes-rpc.rc1.svc.cluster.local:3000/ws"
METADATA_CRAWLER_DISCORD_CLUSTER_NAME="Mainnet"

CELOSTATS_SERVER_DOCKER_IMAGE_REPOSITORY="gcr.io/celo-testnet/celostats-server"
Expand Down Expand Up @@ -93,6 +93,7 @@ AZURE_ORACLE_WESTUS_FULL_NODES_DISK_SIZE=100
AZURE_ORACLE_WESTUS_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
AZURE_ORACLE_WESTUS_FULL_NODES_GETH_GC_MODE="full"
AZURE_ORACLE_WESTUS_FULL_NODES_USE_GSTORAGE_DATA=false
AZURE_ORACLE_WESTUS_DEPLOY_NGINX_SIDECAR=false

AZURE_ORACLE_WESTEUROPE_AZURE_SUBSCRIPTION_ID=7a6f5f20-bd43-4267-8c35-a734efca140c
AZURE_ORACLE_WESTEUROPE_AZURE_TENANT_ID=7cb7628a-e37c-4afb-8332-2029e418980e
Expand All @@ -109,6 +110,7 @@ AZURE_ORACLE_WESTEUROPE_FULL_NODES_DISK_SIZE=100
AZURE_ORACLE_WESTEUROPE_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
AZURE_ORACLE_WESTEUROPE_FULL_NODES_GETH_GC_MODE="full"
AZURE_ORACLE_WESTEUROPE_FULL_NODES_USE_GSTORAGE_DATA=false
AZURE_ORACLE_WESTEUROPE_DEPLOY_NGINX_SIDECAR=false

AZURE_ORACLE_EASTUS2_AZURE_SUBSCRIPTION_ID=7a6f5f20-bd43-4267-8c35-a734efca140c
AZURE_ORACLE_EASTUS2_AZURE_TENANT_ID=7cb7628a-e37c-4afb-8332-2029e418980e
Expand All @@ -125,6 +127,7 @@ AZURE_ORACLE_EASTUS2_FULL_NODES_DISK_SIZE=100
AZURE_ORACLE_EASTUS2_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
AZURE_ORACLE_EASTUS2_FULL_NODES_GETH_GC_MODE="full"
AZURE_ORACLE_EASTUS2_FULL_NODES_USE_GSTORAGE_DATA=false
AZURE_ORACLE_EASTUS2_DEPLOY_NGINX_SIDECAR=false

# ---- Forno ----

Expand Down Expand Up @@ -154,7 +157,7 @@ GCP_FORNO_US_WEST1_FULL_NODES_STATIC_NODES_FILE_SUFFIX=gcp-us-west1
GCP_FORNO_US_WEST1_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
GCP_FORNO_US_WEST1_FULL_NODES_GETH_GC_MODE="full"
GCP_FORNO_US_WEST1_FULL_NODES_USE_GSTORAGE_DATA=true

GCP_FORNO_US_WEST1_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

GCP_FORNO_US_EAST1_GCP_PROJECT_NAME=celo-testnet-production
GCP_FORNO_US_EAST1_GCP_ZONE=us-east1-b
Expand All @@ -170,7 +173,7 @@ GCP_FORNO_US_EAST1_FULL_NODES_STATIC_NODES_FILE_SUFFIX=gcp-us-east1
GCP_FORNO_US_EAST1_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
GCP_FORNO_US_EAST1_FULL_NODES_GETH_GC_MODE="full"
GCP_FORNO_US_EAST1_FULL_NODES_USE_GSTORAGE_DATA=true

GCP_FORNO_US_EAST1_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

GCP_FORNO_ASIA_EAST1_GCP_PROJECT_NAME=celo-testnet-production
GCP_FORNO_ASIA_EAST1_GCP_ZONE=asia-east1-a
Expand All @@ -186,6 +189,7 @@ GCP_FORNO_ASIA_EAST1_FULL_NODES_STATIC_NODES_FILE_SUFFIX=gcp-asia-east1
GCP_FORNO_ASIA_EAST1_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
GCP_FORNO_ASIA_EAST1_FULL_NODES_GETH_GC_MODE="full"
GCP_FORNO_ASIA_EAST1_FULL_NODES_USE_GSTORAGE_DATA=true
GCP_FORNO_ASIA_EAST1_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

GCP_FORNO_EUROPE_WEST1_GCP_PROJECT_NAME=celo-testnet-production
GCP_FORNO_EUROPE_WEST1_GCP_ZONE=europe-west1-b
Expand All @@ -201,7 +205,7 @@ GCP_FORNO_EUROPE_WEST1_FULL_NODES_STATIC_NODES_FILE_SUFFIX=gcp-europe-west1
GCP_FORNO_EUROPE_WEST1_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
GCP_FORNO_EUROPE_WEST1_FULL_NODES_GETH_GC_MODE="full"
GCP_FORNO_EUROPE_WEST1_FULL_NODES_USE_GSTORAGE_DATA=true

GCP_FORNO_EUROPE_WEST1_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

GCP_FORNO_SOUTHAMERICA_EAST1_GCP_PROJECT_NAME=celo-testnet-production
GCP_FORNO_SOUTHAMERICA_EAST1_GCP_ZONE=southamerica-east1-a
Expand All @@ -217,7 +221,7 @@ GCP_FORNO_SOUTHAMERICA_EAST1_FULL_NODES_STATIC_NODES_FILE_SUFFIX=gcp-southameric
GCP_FORNO_SOUTHAMERICA_EAST1_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3"
GCP_FORNO_SOUTHAMERICA_EAST1_FULL_NODES_GETH_GC_MODE="full"
GCP_FORNO_SOUTHAMERICA_EAST1_FULL_NODES_USE_GSTORAGE_DATA=true

GCP_FORNO_SOUTHAMERICA_EAST1_FULL_NODES_DEPLOY_NGINX_SIDECAR=false

# ---- Private txnodes context ----

Expand All @@ -230,6 +234,7 @@ GCP_PRIVATE_TXNODES_FULL_NODES_DISK_SIZE=300
GCP_PRIVATE_TXNODES_FULL_NODES_RPC_API_METHODS="eth,net,rpc,web3,txpool,debug"
GCP_PRIVATE_TXNODES_FULL_NODES_GETH_GC_MODE="archive"
GCP_PRIVATE_TXNODES_FULL_NODES_USE_GSTORAGE_DATA=false
GCP_PRIVATE_TXNODES_FULL_NODES_DEPLOY_NGINX_SIDECAR=true

TRANSACTION_METRICS_EXPORTER_DOCKER_IMAGE_REPOSITORY="gcr.io/celo-testnet/celo-monorepo"
TRANSACTION_METRICS_EXPORTER_DOCKER_IMAGE_TAG="transaction-metrics-exporter-f4a55e143932ea559cf4bcbd9bcccc14da43d6ed"
Expand Down
5 changes: 3 additions & 2 deletions packages/celotool/src/lib/blockscout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,12 +140,13 @@ async function helmParameters(
`--set blockscout.jsonrpc_ws_url=${fetchEnv(envVar.BLOCKSCOUT_OVERRIDE_WS_ENDPOINT)}`
)
} else if (isVmBased()) {
// TODO: Deprecated. Remove soon.
const txNodeLbIp = await getInternalTxNodeLoadBalancerIP(celoEnv)
params.push(`--set blockscout.jsonrpc_http_url=http://${txNodeLbIp}:8545`)
params.push(`--set blockscout.jsonrpc_ws_url=ws://${txNodeLbIp}:8546`)
} else if (privateNodes > 0) {
params.push(`--set blockscout.jsonrpc_http_url=http://tx-nodes-private:8545`)
params.push(`--set blockscout.jsonrpc_ws_url=ws://tx-nodes-private:8546`)
params.push(`--set blockscout.jsonrpc_http_url=http://tx-nodes-private:3000/rpc`)
params.push(`--set blockscout.jsonrpc_ws_url=ws://tx-nodes-private:3000/ws`)
Comment on lines +148 to +149

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a way to read these parameters from the environment variables instead of hardcoding them, so that there is a single source of truth for the configuration?

} else {
params.push(`--set blockscout.jsonrpc_http_url=http://tx-nodes:8545`)
params.push(`--set blockscout.jsonrpc_ws_url=ws://tx-nodes:8546`)
Expand Down
1 change: 1 addition & 0 deletions packages/celotool/src/lib/env-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ export enum DynamicEnvVar {
AZURE_REGION_NAME = '{{ context }}_AZURE_REGION_NAME',
AZURE_TENANT_ID = '{{ context }}_AZURE_TENANT_ID',
FULL_NODES_COUNT = '{{ context }}_FULL_NODES_COUNT',
FULL_NODES_DEPLOY_NGINX = '{{ context }}_FULL_NODES_DEPLOY_NGINX',
FULL_NODES_DISK_SIZE = '{{ context }}_FULL_NODES_DISK_SIZE',
FULL_NODES_GETH_GC_MODE = '{{ context }}_FULL_NODES_GETH_GC_MODE',
FULL_NODES_NODEKEY_DERIVATION_STRING = '{{ context }}_FULL_NODES_NODEKEY_DERIVATION_STRING',
Expand Down
2 changes: 2 additions & 0 deletions packages/celotool/src/lib/fullnodes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ const contextFullNodeDeploymentEnvVars: {
rpcApis: DynamicEnvVar.FULL_NODES_RPC_API_METHODS,
gcMode: DynamicEnvVar.FULL_NODES_GETH_GC_MODE,
useGstoreData: DynamicEnvVar.FULL_NODES_USE_GSTORAGE_DATA,
deployNginxSidecar: DynamicEnvVar.FULL_NODES_DEPLOY_NGINX,
}

/**
Expand Down Expand Up @@ -156,6 +157,7 @@ function getFullNodeDeploymentConfig(context: string): BaseFullNodeDeploymentCon
rpcApis: fullNodeDeploymentEnvVarValues.rpcApis,
gcMode: fullNodeDeploymentEnvVarValues.gcMode,
useGstoreData: fullNodeDeploymentEnvVarValues.useGstoreData,
deployNginxSidecar: fullNodeDeploymentEnvVarValues.deployNginxSidecar,
}
return fullNodeDeploymentConfig
}
Expand Down
2 changes: 2 additions & 0 deletions packages/celotool/src/lib/k8s-fullnode/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export interface BaseFullNodeDeploymentConfig {
rpcApis: string
gcMode: string
useGstoreData: string
deployNginxSidecar: string
// If undefined, node keys will not be predetermined and will be random
nodeKeyGenerationInfo?: NodeKeyGenerationInfo
}
Expand Down Expand Up @@ -117,6 +118,7 @@ export abstract class BaseFullNodeDeployer {
`--set genesis.epoch_size=${fetchEnv(envVar.EPOCH)}`,
`--set geth.use_gstorage_data=${this._deploymentConfig.useGstoreData}`,
`--set geth.gstorage_data_bucket=${fetchEnvOrFallback('GSTORAGE_DATA_BUCKET', '')}`,
`--set geth.enable_nginx=${this._deploymentConfig.deployNginxSidecar}`,
// Disable by default block age check in fullnode readinessProbe except for production envs
`--set geth.fullnodeCheckBlockAge=${fetchEnvOrFallback(
envVar.FULL_NODE_READINESS_CHECK_BLOCK_AGE,
Expand Down
6 changes: 6 additions & 0 deletions packages/helm-charts/celo-fullnode/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ Create chart name and version as used by the chart label.
targetPort: ws
protocol: TCP
name: ws
{{- if .Values.geth.enable_nginx | default false }}
- port: 3000
targetPort: nginx
protocol: TCP
name: nginx
{{- end }}
{{- end -}}

{{/*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{{- if .Values.geth.enable_nginx | default false }}
{{ include "common.nginx-geth-configmap" . }}
{{- end }}
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ spec:
{{ include "celo-fullnode.health-checker-server" (dict "protocol_name" "http" "tcp_check_port" 8545 "server_port" 6000) | indent 6 }}
{{ include "celo-fullnode.health-checker-server" (dict "protocol_name" "ws" "tcp_check_port" 8546 "server_port" 6001) | indent 6 }}
{{ end }}
{{- if .Values.geth.enable_nginx | default false }}
{{ include "common.nginx-geth-sidecar" . | indent 6 }}
{{- end }}
terminationGracePeriodSeconds: 120 # 2 mins
volumes:
- name: data
Expand All @@ -93,3 +96,6 @@ spec:
configMap:
name: {{ template "common.fullname" . }}-health-check
defaultMode: 0555
{{- if .Values.geth.enable_nginx | default false }}
{{ include "common.nginx-geth-sidecar-volume" . | indent 6 }}
{{- end }}
1 change: 1 addition & 0 deletions packages/helm-charts/celo-fullnode/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ geth:
maxpeers: 1000
serve: 90
fullnodeCheckBlockAge: true
enable_nginx: true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a comment for future readers of the file to explain why nginx is added by default?


genesis:
networkId: 31418
Expand Down
94 changes: 94 additions & 0 deletions packages/helm-charts/common/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -530,3 +530,97 @@ prometheus.io/port: "{{ $pprof.port | default 6060 }}"
- name: data
mountPath: /root/.celo
{{- end -}}

{{- define "common.nginx-geth-sidecar" -}}
- name: nginx
image: nginx:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
name: nginx
protocol: TCP
volumeMounts:
- name: nginx-geth-config
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
{{- end -}}

{{- define "common.nginx-geth-sidecar-volume" -}}
- name: nginx-geth-config
configMap:
name: {{ template "common.fullname" . }}-nginx-geth-config
{{- end -}}

{{- define "common.nginx-geth-configmap" -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "common.fullname" . }}-nginx-geth-config
labels:
{{ include "common.standard.labels" . | indent 4 }}
data:
nginx.conf: |-
# /etc/nginx/nginx.conf
user nginx;
# Set number of worker processes automatically based on number of CPU cores.
worker_processes auto;
# Enables the use of JIT for regular expressions to speed-up their processing.
pcre_jit on;
# Configures default error logger.
error_log /var/log/nginx/error.log warn;
# Includes files with directives to load dynamic modules.
include /etc/nginx/modules/*.conf;
events {
# The maximum number of simultaneous connections that can be opened by
# a worker process.
worker_connections 1024;
}
http {
server {
listen 3000;
server_name tx-nodes-private;

location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;

proxy_pass http://ws-backend;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

location /rpc {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;

proxy_pass http://rpc-backend;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

location /ws {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;

proxy_pass http://ws-backend;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
upstream rpc-backend {
server localhost:8545;
}

upstream ws-backend {
server localhost:8546;
}
}
# TIP: Uncomment if you use stream module.
#include /etc/nginx/stream.conf;
{{- end -}}
10 changes: 10 additions & 0 deletions packages/helm-charts/testnet/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ spec:
name: rpc
- port: 8546
name: ws
{{- if .enable_nginx_geth | default false }}
- port: 3000
name: nginx
{{- end }}
selector:
{{- if .proxy | default false }}
{{- $validatorProxied := printf "%s-validators-%d" .Release.Namespace .validator_index }}
Expand Down Expand Up @@ -151,6 +155,9 @@ spec:
{{ end }}
containers:
{{ include "common.full-node-container" (dict "Values" .Values "Release" .Release "Chart" .Chart "proxy" .proxy "proxy_allow_private_ip_flag" .proxy_allow_private_ip_flag "unlock" .unlock "expose" .expose "syncmode" .syncmode "gcmode" .gcmode "pprof" (or (.Values.metrics) (.Values.pprof.enabled)) "pprof_port" (.Values.pprof.port) "metrics" .Values.metrics "public_ips" .public_ips "ethstats" (printf "%s-ethstats.%s" (include "common.fullname" .) .Release.Namespace)) | indent 6 }}
{{- if .enable_nginx_geth | default false }}
{{ include "common.nginx-geth-sidecar" . | indent 6 }}
{{- end }}
terminationGracePeriodSeconds: 120 # 2 mins
volumes:
- name: data
Expand All @@ -161,6 +168,9 @@ spec:
- name: account
secret:
secretName: {{ template "common.fullname" . }}-geth-account
{{- if .enable_nginx_geth | default false }}
{{ include "common.nginx-geth-sidecar-volume" . | indent 6 }}
{{- end }}
{{- end -}}

{{- /* This template puts a semicolon-separated pair of proxy enodes into $PROXY_ENODE_URL_PAIR. */ -}}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{{- if .Values.geth.enable_nginx | default false }}
{{ include "common.nginx-geth-configmap" . }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{ include "celo.full-node-statefulset" (dict "Values" $.Values "Release" $.Release "Chart" $.Chart "name" "tx-nodes-private" "component_label" "tx_nodes_private" "replicas" .Values.geth.private_tx_nodes "mnemonic_account_type" "tx_node_private" "expose" true "syncmode" "full" "gcmode" "archive" "rpc_apis" "eth,net,web3,debug,txpool" "ip_addresses" (join "/" .Values.geth.private_tx_node_ip_addresses)) }}
{{ include "celo.full-node-statefulset" (dict "Values" $.Values "Release" $.Release "Chart" $.Chart "name" "tx-nodes-private" "component_label" "tx_nodes_private" "replicas" .Values.geth.private_tx_nodes "mnemonic_account_type" "tx_node_private" "expose" true "syncmode" "full" "gcmode" "archive" "rpc_apis" "eth,net,web3,debug,txpool" "ip_addresses" (join "/" .Values.geth.private_tx_node_ip_addresses) "enable_nginx_geth" true) }}