50 lines
1.5 KiB
Terraform
50 lines
1.5 KiB
Terraform
resource "terraform_data" "docker_compose_deploy" {
|
|
triggers_replace = [
|
|
filemd5(var.docker_compose_path),
|
|
var.infisical_project_token,
|
|
var.environment,
|
|
var.vm_ssh_key,
|
|
var.vm_ip,
|
|
dirname(var.destination_path),
|
|
var.ssh_user,
|
|
var.start_delay_seconds,
|
|
var.health_check_command
|
|
]
|
|
|
|
connection {
|
|
type = "ssh"
|
|
user = self.triggers_replace[6]
|
|
private_key = self.triggers_replace[3]
|
|
host = self.triggers_replace[4]
|
|
}
|
|
|
|
|
|
provisioner "file" {
|
|
source = var.docker_compose_path
|
|
destination = var.destination_path
|
|
}
|
|
|
|
provisioner "remote-exec" {
|
|
inline = [
|
|
"cd ${dirname(var.destination_path)}",
|
|
"export INFISICAL_TOKEN=\"${self.triggers_replace[1]}\"",
|
|
"export INFISICAL_API_URL=\"https://secrets.itlab-ffeks.dnu.edu.ua\"",
|
|
"export INFISICAL_DISABLE_UPDATE_CHECK=true",
|
|
"infisical run --env=\"${self.triggers_replace[2]}\" -- docker compose up -d",
|
|
"sleep ${self.triggers_replace[7]}",
|
|
self.triggers_replace[8] != "" ? "timeout 60s bash -c 'until ${self.triggers_replace[8]}; do sleep 1; done'" : "true"
|
|
]
|
|
}
|
|
|
|
provisioner "remote-exec" {
|
|
when = destroy
|
|
inline = [
|
|
"cd ${self.triggers_replace[5]}",
|
|
"export INFISICAL_TOKEN=\"${self.triggers_replace[1]}\"",
|
|
"export INFISICAL_API_URL=\"https://secrets.itlab-ffeks.dnu.edu.ua\"",
|
|
"export INFISICAL_DISABLE_UPDATE_CHECK=true",
|
|
"infisical run --env=\"${self.triggers_replace[2]}\" -- docker compose down || true"
|
|
]
|
|
}
|
|
}
|