locals { toad_source_hash = md5(join("", [ for f in fileset("${path.root}/services/toad", "**") : filesha256("${path.root}/services/toad/${f}") ])) toad_quadlets_hash = md5(join("", [ for f in concat( tolist(fileset("${path.root}/services/toad/deploy", "*.container")), tolist(fileset("${path.root}/services/toad/deploy", "*.network")), ) : filesha256("${path.root}/services/toad/deploy/${f}") ])) toad_enrollment_hash = filesha256("${path.module}/toad/enrollment.json") toad_gateway_hash = md5(join("", [ filesha256("${path.root}/services/toad/deploy/gateway.Caddyfile"), filesha256("${path.module}/toad/ingress.env"), filesha256("${path.root}/assets/nugu.css"), ])) toad_deployment_hash = md5(join("", [ filesha256("${path.root}/scripts/local/deploy-toad.sh"), filesha256("${path.root}/scripts/local/build-remote-image.sh"), filesha256("${path.root}/scripts/local/klops.sh"), filesha256("${path.root}/scripts/remote/build-rootless-image.sh"), filesha256("${path.root}/services/toad/deploy/setup-user.sh"), filesha256("${path.root}/services/toad/deploy/start.sh"), ])) } resource "null_resource" "klops_toad" { count = var.klops_ssh_host != "" ? 1 : 0 depends_on = [null_resource.klops_setup] triggers = { source_hash = local.toad_source_hash quadlets_hash = local.toad_quadlets_hash enrollment_hash = local.toad_enrollment_hash gateway_hash = local.toad_gateway_hash deployment_hash = local.toad_deployment_hash deployment_logic = filesha256("${path.module}/toad.tf") } provisioner "local-exec" { interpreter = ["/bin/bash", "-c"] command = "${abspath(path.root)}/scripts/local/deploy-toad.sh ${var.klops_ssh_host} ${var.klops_ssh_port} ${var.klops_ssh_user} ${abspath(path.root)}/services/toad/deploy ${abspath(path.module)}/toad/enrollment.json ${abspath(path.root)}/services/toad/deploy/gateway.Caddyfile ${abspath(path.module)}/toad/ingress.env ${abspath(path.root)}/assets/nugu.css ${abspath(path.root)}/services/toad" } }