Skip to content
Draft
Show file tree
Hide file tree
Changes from all 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
79 changes: 46 additions & 33 deletions test/e2e/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -42,59 +42,70 @@ resource "lxd_profile" "e2e" {
}

# Images
resource "lxd_cached_image" "ctn" {
count = var.containers_per_host > 0 ? 1 : 0
project = lxd_project.e2e.name
remote = lxd_project.e2e.remote
source_remote = "ubuntu-minimal-daily"
source_image = "24.04"
type = "container"
resource "lxd_image" "ctn" {
count = var.containers_per_host > 0 ? 1 : 0
project = lxd_project.e2e.name
Comment thread
roosterfish marked this conversation as resolved.
remote = lxd_project.e2e.remote
source_image = {
image = "ubuntu-minimal-daily:24.04"
type = "container"
}
}

resource "lxd_cached_image" "vm" {
count = var.vms_per_host > 0 ? 1 : 0
project = lxd_project.e2e.name
remote = lxd_project.e2e.remote
source_remote = "ubuntu-minimal-daily"
source_image = "24.04"
type = "virtual-machine"
resource "lxd_image" "vm" {
count = var.vms_per_host > 0 ? 1 : 0
project = lxd_project.e2e.name
remote = lxd_project.e2e.remote
source_image = {
image = "ubuntu-minimal-daily:24.04"
type = "virtual-machine"
}
}

# Containers
resource "lxd_instance" "e2e-ctn" {
for_each = {
for _, v in local.containers : v.instance => v.target
for _, v in local.containers : v.instance => v
}

name = each.key
target = each.value
type = "container"
remote = lxd_project.e2e.remote
project = lxd_project.e2e.name
profiles = [lxd_profile.e2e.name]
image = lxd_cached_image.ctn[0].fingerprint
wait_for_network = true
name = each.key
target = each.value.target
type = "container"
remote = lxd_project.e2e.remote
project = lxd_project.e2e.name
profiles = [lxd_profile.e2e.name]
image = each.value.image

wait_for {
type = "ipv4"
}
}

# VMs
resource "lxd_instance" "e2e-vm" {
for_each = {
for _, v in local.vms : v.instance => v.target
for _, v in local.vms : v.instance => v
}

name = each.key
target = each.value
type = "virtual-machine"
remote = lxd_project.e2e.remote
project = lxd_project.e2e.name
profiles = [lxd_profile.e2e.name]
image = lxd_cached_image.vm[0].fingerprint
wait_for_network = true
allow_restart = true
name = each.key
target = each.value.target
type = "virtual-machine"
remote = lxd_project.e2e.remote
project = lxd_project.e2e.name
profiles = [lxd_profile.e2e.name]
image = each.value.image
allow_restart = true

config = {
"migration.stateful" = "true"
}

wait_for {
type = "ipv4"
}
wait_for {
type = "agent"
}
}

# Locals
Expand All @@ -106,6 +117,7 @@ locals {
for i in range(var.containers_per_host) : {
instance = "c${format("%02d", var.containers_per_host * index + i + 1)}"
target = cluster_member_name
image = lxd_image.ctn[0].fingerprint
}
]
])
Expand All @@ -114,6 +126,7 @@ locals {
for i in range(var.vms_per_host) : {
instance = "v${format("%02d", var.vms_per_host * index + i + 1)}"
target = cluster_member_name
image = lxd_image.vm[0].fingerprint
}
]
])
Expand Down
9 changes: 8 additions & 1 deletion test/e2e/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,14 @@ terraform {
required_providers {
lxd = {
source = "terraform-lxd/lxd"
version = ">= 2.5.0"
version = ">= 3.0.2"
}
}
}

provider "lxd" {
remote {
name = "local"
address = "unix://"
}
}
Loading