Skip to content

Commit 5a5b0e0

Browse files
committed
mitch/tmnt-288-update-network-names
1 parent f3eab02 commit 5a5b0e0

21 files changed

Lines changed: 410 additions & 110 deletions

File tree

.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)