diff options
author | Florian Klink <flokli@flokli.de> | 2023-03-01T14·11+0100 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2023-03-03T14·53+0000 |
commit | 774194652b57f47197e270c62dabf863e7aa8241 (patch) | |
tree | b340d55686e092aa0dd17f653d3779b2a1beb0c7 /ops/terraform | |
parent | c3750079f75662a6d01a79c0a1c6335456b2d40a (diff) |
feat(ops/terraform): add trigger to deploy-nixos, remove target_name r/5872
This allows passing in custom triggers to trigger a (re)deploy. For example, a caller can put an AWS instance ID into the triggers to cause a redeploy whenever the instance ID has changed. The `target_name` terraform variable was doing something similar, but `triggers` is more generic, allowing multiple triggers, without having to stringify them. We also don't need to trigger on the attrpath - it can be changed, and as long as it still evaluates to the same `data.external.nixos_system.result.drv` (which is checked on every plan), no redeploy needs to be made. Change-Id: I94ce787a50830b87b6f53c08e042e4abe4036bdd Reviewed-on: https://cl.tvl.fyi/c/depot/+/8191 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de>
Diffstat (limited to 'ops/terraform')
-rw-r--r-- | ops/terraform/deploy-nixos/README.md | 1 | ||||
-rw-r--r-- | ops/terraform/deploy-nixos/main.tf | 17 |
2 files changed, 8 insertions, 10 deletions
diff --git a/ops/terraform/deploy-nixos/README.md b/ops/terraform/deploy-nixos/README.md index a51e6bdb5f1e..ae876b45b93a 100644 --- a/ops/terraform/deploy-nixos/README.md +++ b/ops/terraform/deploy-nixos/README.md @@ -21,7 +21,6 @@ deploy is necessary. module "deploy_somehost" { source = "git::https://code.tvl.fyi/depot.git:/ops/terraform/deploy-nixos.git" attrpath = "ops.nixos.somehost" - target_name = "somehost" target_host = "somehost.tvl.su" target_user = "someone" target_user_ssh_key = tls_private_key.somehost.private_key_pem diff --git a/ops/terraform/deploy-nixos/main.tf b/ops/terraform/deploy-nixos/main.tf index d39610327a0e..4a3dc08f6c85 100644 --- a/ops/terraform/deploy-nixos/main.tf +++ b/ops/terraform/deploy-nixos/main.tf @@ -14,11 +14,6 @@ variable "attrpath" { type = string } -variable "target_name" { - description = "unique name of the target machine" - type = string -} - variable "target_host" { description = "address (IP or hostname) at which the target is reachable" type = string @@ -45,6 +40,12 @@ variable "target_user_ssh_key" { sensitive = true } +variable "triggers" { + type = map(string) + description = "Triggers for deploy" + default = {} +} + # Fetch the derivation hash for the NixOS system. data "external" "nixos_system" { program = ["${path.module}/nixos-eval.sh"] @@ -96,12 +97,10 @@ resource "null_resource" "nixos_deploy" { ] } - triggers = { + triggers = merge({ nixos_drv = data.external.nixos_system.result.drv - attrpath = var.attrpath target_host = var.target_host - target_name = var.target_name - } + }, var.triggers) } output "nixos_drv" { |