Skip to content

Commit

Permalink
migrate apko test to imagetest (and more) (#2706)
Browse files Browse the repository at this point in the history
* migrate apko test to imagetest (and more)

Signed-off-by: Jason Hall <jason@chainguard.dev>

* undo main.tf

Signed-off-by: Jason Hall <jason@chainguard.dev>

* review comments

Signed-off-by: Jason Hall <jason@chainguard.dev>

---------

Signed-off-by: Jason Hall <jason@chainguard.dev>
  • Loading branch information
imjasonh authored May 20, 2024
1 parent da39268 commit 5a410dd
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 57 deletions.
5 changes: 0 additions & 5 deletions images/TEMPLATE/tests/EXAMPLE_TEST.sh

This file was deleted.

90 changes: 90 additions & 0 deletions images/TEMPLATE/tests/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
terraform {
required_providers {
imagetest = { source = "chainguard-dev/imagetest" }
oci = { source = "chainguard-dev/oci" }
}
}

variable "digest" {
description = "The image digest to run tests over."
}

data "imagetest_inventory" "inventory" {}

// TODO: Run a simple Docker test to verify the image is working.

resource "imagetest_harness_docker" "docker" {
name = "docker"
inventory = data.imagetest_inventory.inventory

envs = {
IMAGE_NAME : var.digest
}
}

resource "imagetest_feature" "test" {
name = "docker-test"
harness = imagetest_harness_docker.docker

steps = [{
name = "basic test"
cmd = "docker run --rm $IMAGE_NAME version"
}]
}

// TODO: Run a simple K8s test to verify the image is working.

resource "imagetest_harness_k3s" "k3s" {
name = "k3s"
inventory = data.imagetest_inventory.inventory

sandbox = {
mounts = [
{
source = path.module
destination = "/tests"
}
]
}
}

locals { parsed = provider::oci::parse(var.digest) }

module "helm" {
source = "../../../tflib/imagetest/helm"

name = "TODO"
chart = "TODO"

values = {
image = {
repository = local.parsed["console"].registry_repo
tag = local.parsed["console"].pseudo_tag
}
}
}

resource "imagetest_feature" "helm" {
name = "helm-test"
description = "Basic Helm test"
harness = imagetest_harness_k3s.k3s

steps = [
{
name = "Helm install"
cmd = module.helm.install_cmd
},
{
name = "Verify installation"
cmd = <<EOF
TODO: Add a test here to verify the installation.
EOF
}
]

labels = {
type = "k8s"
}
}
40 changes: 0 additions & 40 deletions images/TEMPLATE/tests/main.tf.tpl

This file was deleted.

24 changes: 20 additions & 4 deletions images/apko/tests/main.tf
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
terraform {
required_providers {
oci = { source = "chainguard-dev/oci" }
imagetest = { source = "chainguard-dev/imagetest" }
}
}

variable "digest" {
description = "The image digest to run tests over."
}

data "oci_exec_test" "version" {
digest = var.digest
script = "docker run --rm $IMAGE_NAME version"
data "imagetest_inventory" "inventory" {}

resource "imagetest_harness_docker" "docker" {
name = "docker"
inventory = data.imagetest_inventory.inventory

envs = {
IMAGE_NAME : var.digest
}
}

resource "imagetest_feature" "test" {
name = "test"
harness = imagetest_harness_docker.docker

steps = [{
name = "basic test"
cmd = "docker run --rm $IMAGE_NAME version"
}]
}
13 changes: 5 additions & 8 deletions images/jitsucom-jitsu/tests/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ variable "digests" {
})
}

data "oci_string" "ref" {
for_each = var.digests
input = each.value
}
locals { parsed = { for k, v in var.digests : k => provider::oci::parse(v) } }

data "imagetest_inventory" "this" {}

Expand Down Expand Up @@ -44,14 +41,14 @@ module "helm" {
values = {
console = {
image = {
repository = data.oci_string.ref["console"].registry_repo
tag = data.oci_string.ref["console"].pseudo_tag
repository = local.parsed["console"].registry_repo
tag = local.parsed["console"].pseudo_tag
}
}
rotor = {
image = {
repository = data.oci_string.ref["rotor"].registry_repo
tag = data.oci_string.ref["rotor"].pseudo_tag
repository = local.parsed["rotor"].registry_repo
tag = local.parsed["rotor"].pseudo_tag
}
}
tokenGenerator = {
Expand Down

0 comments on commit 5a410dd

Please sign in to comment.