From 3d25f7059f518dd8c857dd5e45552ba3ab733aa6 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 7 Jan 2021 23:38:01 +0100 Subject: Working terraform setup. --- .../src/main/resources/io/trygvis/acme/acme.drl | 2 +- .../io/trygvis/rules/terraform/terraform.drl | 25 ++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) (limited to 'module') diff --git a/module/acme/src/main/resources/io/trygvis/acme/acme.drl b/module/acme/src/main/resources/io/trygvis/acme/acme.drl index 66623c3..cb04b09 100644 --- a/module/acme/src/main/resources/io/trygvis/acme/acme.drl +++ b/module/acme/src/main/resources/io/trygvis/acme/acme.drl @@ -27,6 +27,6 @@ when $m : Machine(fqdn == null) $s : AcmeServer(machine == $m) then - $s.machine.fqdn = "%s.machine.acme.com".formatted($s.machine.name); + $s.machine.fqdn = "%s.machine.acme.com.".formatted($s.machine.name); update($s.machine) end diff --git a/module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl b/module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl index b3d176b..c1293fe 100644 --- a/module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl +++ b/module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl @@ -5,6 +5,7 @@ import io.trygvis.rules.dba.Container import io.trygvis.rules.machine.Machine import io.trygvis.rules.dns.DnsEntry import io.trygvis.rules.dns.DnsEntryTerraformExpression +import java.util.ArrayList; import java.util.Map; global io.trygvis.rules.engine.TemplateEngine te; @@ -14,12 +15,15 @@ declare ScalewayMachine key : String end +declare GoogleManagedZoneTerraformExpression + name : String +end + rule "Terraform for Machine" when $machine: Machine() then - ScalewayMachine scw = new ScalewayMachine(); - + var scw = new ScalewayMachine(); scw.setKey($machine.name); scw.setMachine($machine); @@ -38,13 +42,24 @@ then insert(new DnsEntryTerraformExpression(a, $machine.name, ipv4)); end +rule "main-scaleway-machine.tf" + agenda-group "generate" +when + $managedZones : ArrayList() from collect(GoogleManagedZoneTerraformExpression()) +then + var path = "terraform/main-scaleway-machine.tf"; + te.template("terraform-main-scaleway-machine", path, Map.of( + "managedZones", $managedZones + )); +end + rule "TF for TerraformMachine" agenda-group "generate" when $m: Machine() $scw: ScalewayMachine(machine == $m) then - var path = "platform/terraform/%s.tf".formatted($scw.getKey()); + var path = "terraform/scaleway-machine-%s.tf".formatted($scw.getKey()); te.template("terraform-machine", path, Map.of("m", $m, "scw", $scw)); end @@ -53,10 +68,12 @@ rule "Terraform for DNS" when $entry: DnsEntry() $tf : DnsEntryTerraformExpression(entry == $entry) + $managedZone : GoogleManagedZoneTerraformExpression() then - var path = "dns/%s.tf".formatted($tf.key); + var path = "terraform/dns-%s.tf".formatted($tf.key); te.template("terraform-record-set", path, Map.of( "entry", $entry, + "managedZone", $managedZone, "tf", $tf) ); end -- cgit v1.2.3