Skip to content

Commit

Permalink
Add testbed-equinx-metal blueprint
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Berendt <berendt@osism.tech>
  • Loading branch information
berendt committed Oct 3, 2024
1 parent 66577a9 commit fb1d635
Show file tree
Hide file tree
Showing 13 changed files with 113 additions and 0 deletions.
8 changes: 8 additions & 0 deletions .zuul.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@
vars:
name: testbed-default

- job:
name: terraform-base-validate-testbed-equinix-metal
parent: terraform-base-validate
vars:
name: testbed-equinix-metal

- job:
name: terraform-base-validate-testbed-managerless
parent: terraform-base-validate
Expand All @@ -21,10 +27,12 @@
check:
jobs:
- terraform-base-validate-testbed-default
- terraform-base-validate-testbed-equinix-metal
- terraform-base-validate-testbed-managerless
- yamllint
periodic-daily:
jobs:
- terraform-base-validate-testbed-default
- terraform-base-validate-testbed-equinix-metal
- terraform-base-validate-testbed-managerless
- yamllint
Empty file.
Empty file added testbed-equinx-metal/data.tf
Empty file.
Empty file.
19 changes: 19 additions & 0 deletions testbed-equinx-metal/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
terraform {
required_version = ">= 1.6.0"

required_providers {
local = {
source = "hashicorp/local"
version = ">= 2.2"
}

null = {
source = "hashicorp/null"
}

equinix = {
source = "equinix/equinix"
version = ">= 2.6.0"
}
}
}
9 changes: 9 additions & 0 deletions testbed-equinx-metal/manager.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
resource "tls_private_key" "key" {
algorithm = "RSA"
rsa_bits = 4096
}

resource "equinix_metal_ssh_key" "key" {
name = "${var.prefix}-key"
public_key = tls_private_key.key.public_key_openssh
}
5 changes: 5 additions & 0 deletions testbed-equinx-metal/network.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
resource "equinix_metal_vlan" "net_management" {
metro = var.metro
project_id = var.project_id
vxlan = 42
}
20 changes: 20 additions & 0 deletions testbed-equinx-metal/nodes.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
resource "equinix_metal_device" "node0" {
hostname = "testbed-node-0"
plan = var.plan
metro = var.metro
operating_system = var.operating_system
billing_cycle = "hourly"
project_id = var.project_id
depends_on = ["equinix_metal_ssh_key.key"]
}

resource "equinix_metal_device_network_type" "node0" {
device_id = equinix_metal_device.node0.id
type = "hybrid"
}

resource "equinix_metal_port_vlan_attachment" "node0" {
device_id = equinix_metal_device_network_type.node0.id
port_name = "eth1"
vlan_vnid = equinix_metal_vlan.net_management.vxlan
}
20 changes: 20 additions & 0 deletions testbed-equinx-metal/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
output "public_key" {
value = tls_private_key.key.public_key_openssh
}

output "private_key" {
value = tls_private_key.key.private_key_openssh
sensitive = true
}

resource "local_sensitive_file" "id_rsa" {
filename = ".id_rsa.equinix_metal"
file_permission = "0600"
content = tls_private_key.key.private_key_openssh
}

resource "local_file" "id_rsa_pub" {
filename = ".id_rsa.equinix_metal.pub"
file_permission = "0644"
content = "${tls_private_key.key.public_key_openssh}\n"
}
Empty file.
3 changes: 3 additions & 0 deletions testbed-equinx-metal/provider.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
provider "equinix" {
auth_token = var.auth_token
}
2 changes: 2 additions & 0 deletions testbed-equinx-metal/terragrunt.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
retryable_errors = [
]
27 changes: 27 additions & 0 deletions testbed-equinx-metal/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
variable "auth_token" {
type = string
}

variable "project_id" {
type = string
}

variable "prefix" {
type = string
default = "testbed"
}

variable "operating_system" {
type = string
default = "ubuntu_24_04"
}

variable "plan" {
type = string
default = "c3.small.x86"
}

variable "metro" {
type = string
default = "FR"
}

0 comments on commit fb1d635

Please sign in to comment.