Skip to content

Commit 1053ba9

Browse files
authored
chore: deploy staging-ignition and testnet from CI (#16843)
Deploy staging-public, staging-ignition, and testnet as part of deploy-staging-networks.yml. Also the network-names within the aztec node to reflect these names of networks, and sets their configuration. Fixes the loadbalancer configuration for the rpc node, but comments it out since we don’t need it currently. Allows specifying a custom bootstrap node enr in spite of using a network name. Note that the chain config for `testnet` and `staging-ignition` in `chain_l2_config.ts` are wrong. See - https://linear.app/aztec-labs/issue/TMNT-298/update-chain-l2-config-with-testnet-addresses - https://linear.app/aztec-labs/issue/TMNT-297/need-to-update-chain-l2-config-with-staging-ignition-addresses
2 parents f3eab02 + 5a5b0e0 commit 1053ba9

File tree

21 files changed

+410
-110
lines changed

21 files changed

+410
-110
lines changed

.github/workflows/deploy-staging-networks.yml

Lines changed: 106 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,22 @@ jobs:
8484
printf '%s' "$GCP_SA_KEY" > "$GOOGLE_APPLICATION_CREDENTIALS"
8585
jq -e . "$GOOGLE_APPLICATION_CREDENTIALS" >/dev/null
8686
87-
# note: it is fine to log the mnemonic here. this is an internal,
88-
# throwaway test network.
87+
#############
88+
# Deploy staging-public network
89+
# We don't need to deploy rollup contracts for this network
90+
# because they're already deployed.
91+
#############
8992
- name: Write staging-public network env file
9093
if: env.SEMVER != '' && env.MAJOR_VERSION == '2'
9194
run: |
92-
NAMESPACE="v${MAJOR_VERSION}-staging-public"
95+
NAMESPACE="staging-public"
9396
cat > ${{ env.NETWORK_ENV_FILE }} <<EOF
9497
CREATE_ETH_DEVNET=false
9598
GCP_PROJECT_ID=${{ secrets.GCP_PROJECT_ID }}
9699
GCP_REGION=us-west1-a
97100
CLUSTER=aztec-gke-private
98-
SALT=1757186075
101+
SALT=1757265513
102+
NETWORK=staging-public
99103
NAMESPACE=${NAMESPACE}
100104
AZTEC_DOCKER_IMAGE="aztecprotocol/aztec:${SEMVER}"
101105
ETHEREUM_CHAIN_ID=11155111
@@ -108,14 +112,110 @@ jobs:
108112
OTEL_COLLECTOR_ENDPOINT=${{ secrets.OTEL_COLLECTOR_URL }}
109113
VERIFY_CONTRACTS=true
110114
ETHERSCAN_API_KEY=${{ secrets.ETHERSCAN_API_KEY }}
115+
DEPLOY_INTERNAL_BOOTNODE=false
111116
EOF
112117
echo "NAMESPACE=$NAMESPACE" >> $GITHUB_ENV
113118
119+
- name: Run
120+
if: env.SEMVER != '' && env.MAJOR_VERSION == '2'
121+
env:
122+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
123+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
124+
GITHUB_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
125+
RUN_ID: ${{ github.run_id }}
126+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
127+
# Pass the base64 encoded strings, and where they should be decoded to
128+
NETWORK_ENV_FILE: ${{ env.NETWORK_ENV_FILE }}
129+
GOOGLE_APPLICATION_CREDENTIALS: ${{ env.GOOGLE_APPLICATION_CREDENTIALS }}
130+
NAMESPACE: ${{ env.NAMESPACE }}
131+
REF_NAME: "v${{ env.SEMVER }}"
132+
run: |
133+
# the network env file and gcp credentials file are mounted into the ec2 instance
134+
# see ci3/bootstrap_ec2
135+
exec ./ci.sh network-deploy
136+
114137
#############
115-
# Run
138+
# Deploy staging-ignition network
116139
#############
140+
- name: Write staging-ignition network env file
141+
if: env.SEMVER != '' && env.MAJOR_VERSION == '2'
142+
run: |
143+
NAMESPACE="v${MAJOR_VERSION}-staging-ignition"
144+
cat > ${{ env.NETWORK_ENV_FILE }} <<EOF
145+
CREATE_ETH_DEVNET=false
146+
GCP_PROJECT_ID=${{ secrets.GCP_PROJECT_ID }}
147+
GCP_REGION=us-west1-a
148+
CLUSTER=aztec-gke-private
149+
SALT=1757252408
150+
NAMESPACE=${NAMESPACE}
151+
AZTEC_DOCKER_IMAGE="aztecprotocol/aztec:${SEMVER}"
152+
TRANSACTIONS_DISABLED=true
153+
AZTEC_MANA_TARGET=0
154+
155+
ETHEREUM_CHAIN_ID=11155111
156+
ETHEREUM_RPC_URLS=${{ secrets.SEPOLIA_RPC_URLS }}
157+
ETHEREUM_CONSENSUS_HOST_URLS=${{ secrets.SEPOLIA_CONSENSUS_HOST_URLS }}
158+
ETHEREUM_CONSENSUS_HOST_API_KEYS=${{ secrets.SEPOLIA_CONSENSUS_HOST_API_KEYS }}
159+
ETHEREUM_CONSENSUS_HOST_API_KEY_HEADERS=${{ secrets.SEPOLIA_CONSENSUS_HOST_API_KEY_HEADERS }}
160+
FUNDING_PRIVATE_KEY=${{ secrets.SEPOLIA_FUNDING_PRIVATE_KEY }}
161+
LABS_INFRA_MNEMONIC=${{ secrets.SEPOLIA_LABS_INFRA_MNEMONIC }}
162+
OTEL_COLLECTOR_ENDPOINT=${{ secrets.OTEL_COLLECTOR_URL }}
163+
VERIFY_CONTRACTS=true
164+
ETHERSCAN_API_KEY=${{ secrets.ETHERSCAN_API_KEY }}
165+
166+
DEPLOY_INTERNAL_BOOTNODE=false
167+
EOF
168+
echo "NAMESPACE=$NAMESPACE" >> $GITHUB_ENV
169+
170+
- name: Run
171+
if: env.SEMVER != '' && env.MAJOR_VERSION == '2'
172+
env:
173+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
174+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
175+
GITHUB_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
176+
RUN_ID: ${{ github.run_id }}
177+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
178+
# Pass the base64 encoded strings, and where they should be decoded to
179+
NETWORK_ENV_FILE: ${{ env.NETWORK_ENV_FILE }}
180+
GOOGLE_APPLICATION_CREDENTIALS: ${{ env.GOOGLE_APPLICATION_CREDENTIALS }}
181+
NAMESPACE: ${{ env.NAMESPACE }}
182+
REF_NAME: "v${{ env.SEMVER }}"
183+
run: |
184+
# the network env file and gcp credentials file are mounted into the ec2 instance
185+
# see ci3/bootstrap_ec2
186+
exec ./ci.sh network-deploy
187+
188+
#############
189+
# Deploy testnet if we are not a pre-release (i.e. semver does not contain a hyphen)
190+
#############
191+
- name: Write testnet network env file
192+
if: env.SEMVER != '' && env.MAJOR_VERSION == '2' && !contains(env.SEMVER, '-')
193+
run: |
194+
NAMESPACE="v${MAJOR_VERSION}-testnet"
195+
cat > ${{ env.NETWORK_ENV_FILE }} <<EOF
196+
CREATE_ETH_DEVNET=false
197+
GCP_PROJECT_ID=${{ secrets.GCP_PROJECT_ID }}
198+
GCP_REGION=us-west1-a
199+
CLUSTER=aztec-gke-public
200+
SALT=1757252783
201+
NAMESPACE=${NAMESPACE}
202+
AZTEC_DOCKER_IMAGE="aztecprotocol/aztec:${SEMVER}"
203+
204+
ETHEREUM_CHAIN_ID=11155111
205+
ETHEREUM_RPC_URLS=${{ secrets.SEPOLIA_RPC_URLS }}
206+
ETHEREUM_CONSENSUS_HOST_URLS=${{ secrets.SEPOLIA_CONSENSUS_HOST_URLS }}
207+
ETHEREUM_CONSENSUS_HOST_API_KEYS=${{ secrets.SEPOLIA_CONSENSUS_HOST_API_KEYS }}
208+
ETHEREUM_CONSENSUS_HOST_API_KEY_HEADERS=${{ secrets.SEPOLIA_CONSENSUS_HOST_API_KEY_HEADERS }}
209+
FUNDING_PRIVATE_KEY=${{ secrets.SEPOLIA_FUNDING_PRIVATE_KEY }}
210+
LABS_INFRA_MNEMONIC=${{ secrets.SEPOLIA_LABS_INFRA_MNEMONIC }}
211+
OTEL_COLLECTOR_ENDPOINT=${{ secrets.OTEL_COLLECTOR_URL }}
212+
VERIFY_CONTRACTS=true
213+
ETHERSCAN_API_KEY=${{ secrets.ETHERSCAN_API_KEY }}
214+
EOF
215+
echo "NAMESPACE=$NAMESPACE" >> $GITHUB_ENV
216+
117217
- name: Run
118-
if: env.SEMVER != '' && env.MAJOR_VERSION == '2' && (steps.ci_cache.outputs.cache-hit != 'true' || true)
218+
if: env.SEMVER != '' && env.MAJOR_VERSION == '2' && !contains(env.SEMVER, '-')
119219
env:
120220
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
121221
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

.github/workflows/test-network-scenarios.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ jobs:
104104
SALT=1757186002
105105
NAMESPACE=${NAMESPACE}
106106
AZTEC_DOCKER_IMAGE="aztecprotocol/aztec:${SEMVER}"
107+
AZTEC_EPOCH_DURATION=8
107108
ETHEREUM_CHAIN_ID=1337
108109
LABS_INFRA_MNEMONIC="test test test test test test test test test test test junk"
109110
OTEL_COLLECTOR_ENDPOINT=${{ secrets.OTEL_COLLECTOR_URL }}

aztec-up/bin/.aztec-run

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ VERSION=${VERSION:-"latest"}
2222
# We default to colored logs.
2323
FORCE_COLOR=${FORCE_COLOR:-1}
2424

25+
DOCKER_REPO=${DOCKER_REPO:-"aztecprotocol/aztec"}
26+
2527
function warn {
2628
y="\033[33m"
2729
r="\033[0m"
@@ -144,7 +146,7 @@ function run {
144146
${arg_host_binds:-} \
145147
${arg_user:-} \
146148
--entrypoint "" \
147-
aztecprotocol/aztec:$VERSION "${args[@]}"
149+
$DOCKER_REPO:$VERSION "${args[@]}"
148150
}
149151

150152
if [ -t 0 ]; then

aztec-up/bin/aztec

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ set -euo pipefail
44
NETWORK=${NETWORK:-}
55
VERSION=${VERSION:-${NETWORK:-"latest"}}
66

7+
DOCKER_REPO=${DOCKER_REPO:-"aztecprotocol/aztec"}
78
# Take copy of command-line arguments, so we can mutate to parse.
89
if [ $# -eq 0 ]; then
910
args=("--help")
@@ -55,7 +56,7 @@ done
5556
set -- "${args[@]}"
5657

5758
function get_env_vars {
58-
docker run --rm --entrypoint /bin/bash aztecprotocol/aztec:$VERSION -c "cat /usr/src/yarn-project/foundation/src/config/env_var.ts" |
59+
docker run --rm --entrypoint /bin/bash $DOCKER_REPO:$VERSION -c "cat /usr/src/yarn-project/foundation/src/config/env_var.ts" |
5960
awk -F"'" '{for(i=2;i<=NF;i+=2) printf $i " "}'
6061
}
6162

@@ -95,7 +96,7 @@ case ${1:-} in
9596
export CONTAINER_NAME=aztec-start-$(printf "%08x" $((RANDOM * RANDOM)))
9697

9798
if [ "${1:-}" == "--sandbox" ]; then
98-
if [ "$SUPERVISED" == "1" ]; then
99+
if [ "$SUPERVISED" == "1" ]; then
99100
echo "supervised-start is not compatible with --sandbox. Please use regular start command"
100101
exit 1
101102
fi
@@ -209,7 +210,7 @@ case ${1:-} in
209210
--env SERVE=${SERVE:-0} \
210211
$([ "${SERVE:-0}" == "1" ] && echo "-p 8000:8000" || echo "") \
211212
-v $(realpath $(dirname $2))/:/tmp \
212-
aztecprotocol/aztec:$VERSION /tmp/$(basename $2) $3
213+
$DOCKER_REPO:$VERSION /tmp/$(basename $2) $3
213214
;;
214215
*)
215216
export ENV_VARS_TO_INJECT="SECRET_KEY"

docs/docs/developers/reference/environment_reference/cli_reference.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ description: Comprehensive reference for the Aztec command-line interface (CLI).
44
tags: [sandbox]
55
sidebar_position: 2
66
---
7+
78
import { AztecTestnetVersion } from '@site/src/components/Snippets/general_snippets';
89

910
This reference guide provides documentation for the Aztec CLI commands (`aztec`) and their options. The CLI is a powerful tool for interacting with the Aztec network, managing accounts, deploying contracts, and more.
@@ -131,7 +132,7 @@ export BLOB_SINK_URL=<blob-sink-url>
131132
export LOG_LEVEL=info
132133
export IP=Your_IP_address_here
133134

134-
aztec start --node --network alpha-testnet
135+
aztec start --node --network testnet
135136
--l1-rpc-urls ...
136137
--l1-consensus-host-urls ...
137138
--l1-consensus-host-api-keys ...
@@ -301,7 +302,7 @@ aztec start --port 8081 --pxe --pxe.nodeUrl=$BOOTNODE --pxe.proverEnabled true -
301302
#### Example Usage
302303

303304
```bash
304-
aztec start --network alpha-testnet --l1-rpc-urls https://example.com --l1-consensus-host-urls https://example.com --sequencer.blobSinkUrl http://34.82.117.158:5052 --sequencer.validatorPrivateKeys 0xYourPrivateKey --sequencer.coinbase 0xYourAddress --p2p.p2pIp 999.99.999.99
305+
aztec start --network testnet --l1-rpc-urls https://example.com --l1-consensus-host-urls https://example.com --sequencer.blobSinkUrl http://34.82.117.158:5052 --sequencer.validatorPrivateKeys 0xYourPrivateKey --sequencer.coinbase 0xYourAddress --p2p.p2pIp 999.99.999.99
305306
```
306307

307308
#### Blob Sink Options

docs/docs/the_aztec_network/guides/run_nodes/how_to_run_sequencer.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@ The following variable names are specific to the `aztec start` command, set them
7171

7272
Now in a terminal start your node as a sequencer and archiver:
7373

74-
If the above variables are set you can simply use: `aztec start --node --archiver --sequencer --network alpha-testnet`
74+
If the above variables are set you can simply use: `aztec start --node --archiver --sequencer --network testnet`
7575

7676
Otherwise you can specify values via the CLI flags (using values in place of the variable names):
7777

7878
```bash
7979
aztec start --node --archiver --sequencer \
80-
--network alpha-testnet \
80+
--network testnet \
8181
--l1-rpc-urls $ETHEREUM_HOSTS \
8282
--l1-consensus-host-urls $L1_CONSENSUS_HOST_URLS \
8383
--sequencer.validatorPrivateKeys $VALIDATOR_PRIVATE_KEY \
@@ -172,7 +172,7 @@ To boot up a sequencer using `aztec start`, run the following command:
172172

173173
```bash
174174
aztec start --node --archiver --sequencer \
175-
--network alpha-testnet \
175+
--network testnet \
176176
--l1-rpc-urls https://example.com \
177177
--l1-consensus-host-urls https://example.com \
178178
--sequencer.validatorPrivateKeys 0xYourPrivateKey \
@@ -234,7 +234,7 @@ Then source this file before running your command:
234234

235235
```bash
236236
source .env
237-
aztec start --network alpha-testnet --archiver --node --sequencer # other flags...
237+
aztec start --network testnet --archiver --node --sequencer # other flags...
238238
```
239239

240240
### Using a Docker Compose
@@ -255,7 +255,7 @@ services:
255255
P2P_IP: $P2P_IP
256256
LOG_LEVEL: debug
257257
entrypoint: >
258-
sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js start --network alpha-testnet start --node --archiver --sequencer'
258+
sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js start --network testnet start --node --archiver --sequencer'
259259
ports:
260260
- 40400:40400/tcp
261261
- 40400:40400/udp

spartan/scripts/deploy_network.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ PROVER_MNEMONIC_START_INDEX=${PROVER_MNEMONIC_START_INDEX:-1000}
6262
PROVER_REAL_PROOFS=${REAL_VERIFIER:-true}
6363

6464
OTEL_COLLECTOR_ENDPOINT=${OTEL_COLLECTOR_ENDPOINT:-}
65+
DEPLOY_INTERNAL_BOOTNODE=${DEPLOY_INTERNAL_BOOTNODE:-}
6566

6667
########################
6768
# CHAOS MESH VARIABLES
@@ -144,8 +145,9 @@ EOF
144145
CSV_RPC_URLS="${L1_RPC_URL}"
145146
L1_RPC_URLS_JSON="[\"${L1_RPC_URL}\"]"
146147
L1_CONSENSUS_HOST_URLS_JSON="[\"${L1_CONSENSUS_HOST_URL}\"]"
147-
L1_CONSENSUS_HOST_API_KEYS_JSON='[""]'
148-
L1_CONSENSUS_HOST_API_KEY_HEADERS_JSON='[""]'
148+
# These can be null
149+
# L1_CONSENSUS_HOST_API_KEYS_JSON=
150+
# L1_CONSENSUS_HOST_API_KEY_HEADERS_JSON=
149151
else
150152
log "CREATE_ETH_DEVNET=false - using environment-provided Ethereum endpoints"
151153

@@ -199,6 +201,7 @@ AZTEC_GOVERNANCE_PROPOSER_QUORUM = ${AZTEC_GOVERNANCE_PROPOSER_QUORUM:-null}
199201
AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE = ${AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE:-null}
200202
AZTEC_MANA_TARGET = ${AZTEC_MANA_TARGET:-null}
201203
AZTEC_PROVING_COST_PER_MANA = ${AZTEC_PROVING_COST_PER_MANA:-null}
204+
AZTEC_EXIT_DELAY_SECONDS = ${AZTEC_EXIT_DELAY_SECONDS:-null}
202205
JOB_NAME = "deploy-rollup-contracts"
203206
JOB_BACKOFF_LIMIT = 3
204207
JOB_TTL_SECONDS_AFTER_FINISHED = 3600
@@ -240,8 +243,8 @@ AZTEC_DOCKER_IMAGE = "${AZTEC_DOCKER_IMAGE}"
240243
L1_CHAIN_ID = "${ETHEREUM_CHAIN_ID}"
241244
L1_RPC_URLS = ${L1_RPC_URLS_JSON}
242245
L1_CONSENSUS_HOST_URLS = ${L1_CONSENSUS_HOST_URLS_JSON}
243-
L1_CONSENSUS_HOST_API_KEYS = ${L1_CONSENSUS_HOST_API_KEYS_JSON}
244-
L1_CONSENSUS_HOST_API_KEY_HEADERS = ${L1_CONSENSUS_HOST_API_KEY_HEADERS_JSON}
246+
L1_CONSENSUS_HOST_API_KEYS = ${L1_CONSENSUS_HOST_API_KEYS_JSON:-null}
247+
L1_CONSENSUS_HOST_API_KEY_HEADERS = ${L1_CONSENSUS_HOST_API_KEY_HEADERS_JSON:-null}
245248
REGISTRY_CONTRACT_ADDRESS = "${REGISTRY_ADDRESS}"
246249
SLASH_FACTORY_CONTRACT_ADDRESS = "${SLASH_FACTORY_ADDRESS}"
247250
FEE_ASSET_HANDLER_CONTRACT_ADDRESS = "${FEE_ASSET_HANDLER_ADDRESS}"
@@ -265,7 +268,9 @@ SLASH_INVALID_BLOCK_PENALTY = ${SLASH_INVALID_BLOCK_PENALTY:-null}
265268
SLASH_OFFENSE_EXPIRATION_ROUNDS = ${SLASH_OFFENSE_EXPIRATION_ROUNDS:-null}
266269
SLASH_MAX_PAYLOAD_SIZE = ${SLASH_MAX_PAYLOAD_SIZE:-null}
267270
OTEL_COLLECTOR_ENDPOINT = "${OTEL_COLLECTOR_ENDPOINT}"
271+
DEPLOY_INTERNAL_BOOTNODE = ${DEPLOY_INTERNAL_BOOTNODE:-true}
268272
PROVER_REAL_PROOFS = ${PROVER_REAL_PROOFS}
273+
TRANSACTIONS_DISABLED = ${TRANSACTIONS_DISABLED:-null}
269274
EOF
270275

271276
tf_run "${DEPLOY_AZTEC_INFRA_DIR}" "${DESTROY_AZTEC_INFRA}" "${CREATE_AZTEC_INFRA}"

spartan/terraform/deploy-aztec-infra/main.tf

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ locals {
4141
tag = split(":", var.AZTEC_DOCKER_IMAGE)[1]
4242
}
4343

44-
boot_node_url = "http://${var.RELEASE_PREFIX}-p2p-bootstrap-node.${var.NAMESPACE}.svc.cluster.local:8080"
44+
internal_boot_node_url = var.DEPLOY_INTERNAL_BOOTNODE ? "http://${var.RELEASE_PREFIX}-p2p-bootstrap-node.${var.NAMESPACE}.svc.cluster.local:8080" : ""
4545

4646
# Common settings for all releases
4747
common_settings = {
@@ -64,7 +64,7 @@ locals {
6464

6565
# Define all releases in a map
6666
helm_releases = {
67-
p2p_bootstrap = {
67+
p2p_bootstrap = var.DEPLOY_INTERNAL_BOOTNODE ? {
6868
name = "${var.RELEASE_PREFIX}-p2p-bootstrap"
6969
chart = "aztec-node"
7070
values = [
@@ -76,7 +76,7 @@ locals {
7676
"nodeType" = "p2p-bootstrap"
7777
}
7878
boot_node_path = ""
79-
}
79+
} : null
8080

8181
validators = {
8282
name = "${var.RELEASE_PREFIX}-validator"
@@ -105,8 +105,10 @@ locals {
105105
"validator.slash.invalidBlockPenalty" = var.SLASH_INVALID_BLOCK_PENALTY
106106
"validator.slash.offenseExpirationRounds" = var.SLASH_OFFENSE_EXPIRATION_ROUNDS
107107
"validator.slash.maxPayloadSize" = var.SLASH_MAX_PAYLOAD_SIZE
108+
"validator.node.env.TRANSACTIONS_DISABLED" = var.TRANSACTIONS_DISABLED
108109
}
109-
boot_node_path = "validator.node.env.BOOT_NODE_HOST"
110+
boot_node_host_path = "validator.node.env.BOOT_NODE_HOST"
111+
bootstrap_nodes_path = "validator.node.env.BOOTSTRAP_NODES"
110112
}
111113

112114
prover = {
@@ -124,7 +126,8 @@ locals {
124126
"broker.node.proverRealProofs" = var.PROVER_REAL_PROOFS
125127
"agent.node.proverRealProofs" = var.PROVER_REAL_PROOFS
126128
}
127-
boot_node_path = "node.node.env.BOOT_NODE_HOST"
129+
boot_node_host_path = "node.node.env.BOOT_NODE_HOST"
130+
bootstrap_nodes_path = "node.node.env.BOOTSTRAP_NODES"
128131
}
129132

130133
rpc = {
@@ -138,14 +141,15 @@ locals {
138141
custom_settings = {
139142
"nodeType" = "rpc"
140143
}
141-
boot_node_path = "node.env.BOOT_NODE_HOST"
144+
boot_node_host_path = "node.env.BOOT_NODE_HOST"
145+
bootstrap_nodes_path = "node.env.BOOTSTRAP_NODES"
142146
}
143147
}
144148
}
145149

146150
# Create all helm releases using for_each
147151
resource "helm_release" "releases" {
148-
for_each = local.helm_releases
152+
for_each = { for k, v in local.helm_releases : k => v if v != null }
149153

150154
provider = helm.gke-cluster
151155
name = each.value.name
@@ -169,8 +173,11 @@ resource "helm_release" "releases" {
169173
local.common_settings,
170174
each.value.custom_settings,
171175
# Add boot node if needed
172-
each.value.boot_node_path != "" ? {
173-
(each.value.boot_node_path) = local.boot_node_url
176+
each.value.boot_node_host_path != "" && local.internal_boot_node_url != "" ? {
177+
(each.value.boot_node_host_path) = local.internal_boot_node_url
178+
} : {},
179+
each.value.bootstrap_nodes_path != "" && len(var.EXTERNAL_BOOTNODES) > 0 ? {
180+
(each.value.bootstrap_nodes_path) = join(",", var.EXTERNAL_BOOTNODES)
174181
} : {}
175182
) : k => v if v != null }
176183
content {

0 commit comments

Comments
 (0)