-
Notifications
You must be signed in to change notification settings - Fork 310
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: terraform for testnet deployments
- Loading branch information
1 parent
ec34442
commit 25bff8c
Showing
8 changed files
with
265 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,8 +25,6 @@ terraform.tfstate* | |
.secret | ||
.bb_tmp | ||
|
||
# Terraform | ||
*.tfvars | ||
|
||
# tmux | ||
tmux-client-*.log | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
network: | ||
public: true | ||
|
||
images: | ||
aztec: | ||
pullPolicy: Always | ||
|
||
telemetry: | ||
enabled: true | ||
otelCollectorEndpoint: http://34.150.160.154:4318 | ||
|
||
validator: | ||
replicas: 4 | ||
realProofs: true | ||
validatorKeys: | ||
- 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 | ||
- 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d | ||
- 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a | ||
- 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6 | ||
validatorAddresses: | ||
- 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 | ||
- 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 | ||
- 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC | ||
- 0x90F79bf6EB2c4f870365E785982E1f101E93b906 | ||
|
||
resources: | ||
requests: | ||
memory: "512Mi" | ||
validator: | ||
disabled: false | ||
|
||
bootNode: | ||
realProofs: true | ||
validator: | ||
disabled: true | ||
|
||
proverNode: | ||
realProofs: true | ||
|
||
proverAgent: | ||
replicas: 4 | ||
realProofs: true | ||
bb: | ||
hardwareConcurrency: 16 | ||
resources: | ||
requests: | ||
memory: "64Gi" | ||
cpu: "16" | ||
limits: | ||
memory: "96Gi" | ||
cpu: "16" | ||
|
||
pxe: | ||
proverEnabled: true | ||
|
||
bot: | ||
followChain: "PENDING" | ||
enabled: true | ||
pxeProverEnabled: true | ||
txIntervalSeconds: 200 | ||
|
||
jobs: | ||
deployL1Verifier: | ||
enable: true | ||
|
||
aztec: | ||
slotDuration: 36 | ||
epochDuration: 32 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Get the LoadBalancer DNS names using a data source | ||
data "kubernetes_service" "lb_ethereum_tcp" { | ||
provider = kubernetes.eks-cluster | ||
metadata { | ||
name = "ethereum-lb" | ||
namespace = var.testnet_name | ||
} | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
data "kubernetes_service" "lb_boot_node_tcp" { | ||
provider = kubernetes.eks-cluster | ||
metadata { | ||
name = "boot-node-lb-tcp" | ||
namespace = var.testnet_name | ||
} | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
data "kubernetes_service" "lb_boot_node_udp" { | ||
provider = kubernetes.eks-cluster | ||
metadata { | ||
name = "boot-node-lb-udp" | ||
namespace = var.testnet_name | ||
} | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
data "kubernetes_service" "lb_validator_tcp" { | ||
provider = kubernetes.eks-cluster | ||
metadata { | ||
name = "validator-0-lb-tcp" | ||
namespace = var.testnet_name | ||
} | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
data "kubernetes_service" "lb_validator_udp" { | ||
provider = kubernetes.eks-cluster | ||
metadata { | ||
name = "validator-0-lb-udp" | ||
namespace = var.testnet_name | ||
} | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
data "kubernetes_service" "lb_pxe_tcp" { | ||
provider = kubernetes.eks-cluster | ||
metadata { | ||
name = "pxe-lb" | ||
namespace = var.testnet_name | ||
} | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/bin/bash | ||
|
||
TESTNET_NAME="testnet-2" | ||
terraform init -backend-config="key=deploy-network/${TESTNET_NAME}/terraform.tfstate" | ||
terraform apply -var-file="testnet.tfvars" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
terraform { | ||
backend "s3" { | ||
bucket = "aztec-terraform" | ||
region = "eu-west-2" | ||
} | ||
required_providers { | ||
helm = { | ||
source = "hashicorp/helm" | ||
version = "~> 2.12.1" | ||
} | ||
kubernetes = { | ||
source = "hashicorp/kubernetes" | ||
version = "~> 2.24.0" | ||
} | ||
} | ||
} | ||
|
||
provider "kubernetes" { | ||
alias = "gke-cluster" | ||
config_path = "~/.kube/config" | ||
config_context = var.gke_cluster_context | ||
} | ||
|
||
provider "helm" { | ||
alias = "gke-cluster" | ||
kubernetes { | ||
config_path = "~/.kube/config" | ||
config_context = var.gke_cluster_context | ||
} | ||
} | ||
|
||
# Aztec Helm release for gke-cluster | ||
resource "helm_release" "aztec-gke-cluster" { | ||
provider = helm.gke-cluster | ||
name = var.testnet_name | ||
repository = "../../" | ||
chart = "aztec-network" | ||
namespace = var.testnet_name | ||
create_namespace = true | ||
|
||
# base values file | ||
values = [file("../../aztec-network/values/${var.values_file}")] | ||
|
||
set { | ||
name = "images.aztec.image" | ||
value = var.aztec_docker_image | ||
} | ||
|
||
# Setting timeout and wait conditions | ||
timeout = 1200 # 20 minutes in seconds | ||
wait = true | ||
wait_for_jobs = true | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
output "eks_cluster_deployment" { | ||
description = "Details of the EKS cluster Helm deployment" | ||
value = { | ||
name = helm_release.aztec-eks-cluster.name | ||
namespace = helm_release.aztec-eks-cluster.namespace | ||
chart = helm_release.aztec-eks-cluster.chart | ||
version = helm_release.aztec-eks-cluster.version | ||
status = helm_release.aztec-eks-cluster.status | ||
values_file = var.values-file | ||
cluster = var.eks_cluster_context | ||
} | ||
} | ||
|
||
# output "gke_cluster_deployment" { | ||
# description = "Details of the GKE cluster Helm deployment" | ||
# value = { | ||
# name = helm_release.aztec-gke-cluster.name | ||
# namespace = helm_release.aztec-gke-cluster.namespace | ||
# chart = helm_release.aztec-gke-cluster.chart | ||
# version = helm_release.aztec-gke-cluster.version | ||
# status = helm_release.aztec-gke-cluster.status | ||
# values_file = var.values-file | ||
# cluster = var.gke_cluster_context | ||
# } | ||
# } | ||
|
||
output "external_ethereum_tcp" { | ||
description = "DNS hostname of the EKS Ethereum LoadBalancer" | ||
value = data.kubernetes_service.lb_ethereum_tcp.status.0.load_balancer.0.ingress.0.hostname | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
output "external_boot_node_tcp" { | ||
description = "DNS hostname of the EKS boot node LoadBalancer" | ||
value = data.kubernetes_service.lb_boot_node_tcp.status.0.load_balancer.0.ingress.0.hostname | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
output "external_boot_node_udp" { | ||
description = "DNS hostname of the EKS boot node LoadBalancer" | ||
value = data.kubernetes_service.lb_boot_node_udp.status.0.load_balancer.0.ingress.0.hostname | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
output "external_validator_tcp" { | ||
description = "DNS hostname of the EKS validator LoadBalancer" | ||
value = data.kubernetes_service.lb_validator_tcp.status.0.load_balancer.0.ingress.0.hostname | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
output "external_validator_udp" { | ||
description = "DNS hostname of the EKS validator LoadBalancer" | ||
value = data.kubernetes_service.lb_validator_udp.status.0.load_balancer.0.ingress.0.hostname | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} | ||
|
||
output "external_pxe_tcp" { | ||
description = "DNS hostname of the EKS PXE LoadBalancer" | ||
value = data.kubernetes_service.lb_pxe_tcp.status.0.load_balancer.0.ingress.0.hostname | ||
depends_on = [helm_release.aztec-eks-cluster] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
testnet_name = "testnet-2" | ||
values_file = "testnet.yaml" | ||
aztec_docker_image = "iamjustmitch/aztec:701380ba5e48bfc286adb13a875e890754c4db32" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
variable "gke_cluster_context" { | ||
description = "GKE cluster context" | ||
type = string | ||
default = "gke_testnet-440309_us-east4-a_spartan-gke" | ||
} | ||
|
||
variable "testnet_name" { | ||
description = "Name of helm deployment and k8s namespace" | ||
type = string | ||
} | ||
|
||
variable "values_file" { | ||
description = "Name of the values file to use for deployment" | ||
type = string | ||
} | ||
|
||
variable "aztec_docker_image" { | ||
description = "Docker image to use for the aztec network" | ||
type = string | ||
} |