From 2957c76e4027f47959f79354b07cdaa4b04da8c6 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Mon, 1 Feb 2021 16:45:47 +0100 Subject: Updating files. --- .run/AcmeAppsTestMain.run.xml | 16 --- .run/AcmeWireguardTestMain.run.xml | 16 --- .run/acme-apps.run.xml | 16 +++ .run/acme-wireguard.run.xml | 16 +++ acme-apps/ansible/dba/acme-myapp-ci.yml | 28 ++-- acme-apps/terraform/acme-1-instance.tf | 8 ++ acme-apps/terraform/acme-1-ip.tf | 4 + acme-apps/terraform/acme-2-instance.tf | 8 ++ acme-apps/terraform/acme-2-ip.tf | 4 + acme-apps/terraform/acme-3-instance.tf | 8 ++ acme-apps/terraform/acme-3-ip.tf | 4 + acme-apps/terraform/dns-acme-1.tf | 8 -- acme-apps/terraform/dns-acme-2.tf | 8 -- acme-apps/terraform/dns-acme-3.tf | 8 -- acme-apps/terraform/main-scaleway-machine.tf | 16 --- acme-apps/terraform/main.tf | 9 ++ acme-apps/terraform/scaleway-machine-acme-1.tf | 19 --- acme-apps/terraform/scaleway-machine-acme-2.tf | 19 --- acme-apps/terraform/scaleway-machine-acme-3.tf | 19 --- acme-apps/terraform/vars.tf | 1 + acme-wireguard/host_vars/acme-1/wireguard.yml | 5 +- acme-wireguard/host_vars/acme-2/wireguard.yml | 5 +- acme-wireguard/host_vars/acme-3/wireguard.yml | 5 +- acme-wireguard/host_vars/ws-1/wireguard.yml | 7 +- acme-wireguard/host_vars/ws-2/wireguard.yml | 7 +- acme-wireguard/inventory.yml | 8 ++ acme-wireguard/wireguard-vpn0.yml | 4 +- .../src/main/resources/io/trygvis/acme/acme.drl | 49 ++++++- .../trygvis/rules/terraform/TerraformResource.java | 17 ++- out/acme/apps.yaml | 159 +++++++++++++-------- out/acme/wireguard.yaml | 74 ++++++---- 31 files changed, 320 insertions(+), 255 deletions(-) delete mode 100644 .run/AcmeAppsTestMain.run.xml delete mode 100644 .run/AcmeWireguardTestMain.run.xml create mode 100644 .run/acme-apps.run.xml create mode 100644 .run/acme-wireguard.run.xml create mode 100644 acme-apps/terraform/acme-1-instance.tf create mode 100644 acme-apps/terraform/acme-1-ip.tf create mode 100644 acme-apps/terraform/acme-2-instance.tf create mode 100644 acme-apps/terraform/acme-2-ip.tf create mode 100644 acme-apps/terraform/acme-3-instance.tf create mode 100644 acme-apps/terraform/acme-3-ip.tf delete mode 100644 acme-apps/terraform/dns-acme-1.tf delete mode 100644 acme-apps/terraform/dns-acme-2.tf delete mode 100644 acme-apps/terraform/dns-acme-3.tf delete mode 100644 acme-apps/terraform/main-scaleway-machine.tf create mode 100644 acme-apps/terraform/main.tf delete mode 100644 acme-apps/terraform/scaleway-machine-acme-1.tf delete mode 100644 acme-apps/terraform/scaleway-machine-acme-2.tf delete mode 100644 acme-apps/terraform/scaleway-machine-acme-3.tf create mode 100644 acme-apps/terraform/vars.tf diff --git a/.run/AcmeAppsTestMain.run.xml b/.run/AcmeAppsTestMain.run.xml deleted file mode 100644 index e491ce8..0000000 --- a/.run/AcmeAppsTestMain.run.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/.run/AcmeWireguardTestMain.run.xml b/.run/AcmeWireguardTestMain.run.xml deleted file mode 100644 index c2fbd12..0000000 --- a/.run/AcmeWireguardTestMain.run.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/.run/acme-apps.run.xml b/.run/acme-apps.run.xml new file mode 100644 index 0000000..292aad9 --- /dev/null +++ b/.run/acme-apps.run.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/.run/acme-wireguard.run.xml b/.run/acme-wireguard.run.xml new file mode 100644 index 0000000..9b107a1 --- /dev/null +++ b/.run/acme-wireguard.run.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/acme-apps/ansible/dba/acme-myapp-ci.yml b/acme-apps/ansible/dba/acme-myapp-ci.yml index e73360d..584ddf3 100644 --- a/acme-apps/ansible/dba/acme-myapp-ci.yml +++ b/acme-apps/ansible/dba/acme-myapp-ci.yml @@ -3,7 +3,7 @@ # cluster: --- - host: - - acme-2 + - acme-1 tasks: import_role: name: docker-service @@ -11,14 +11,18 @@ template: | version: "3" services: - mdb: - image: mongodb:3.2 - pdb: - image: postgresql:13 + 4tune-api: + image: 4tune-api:development + 4tune-web: + image: 4tune-web:development + statera-console: + image: statera-console:development + statera: + image: statera:development --- - host: - - acme-1 + - acme-2 tasks: import_role: name: docker-service @@ -26,12 +30,8 @@ template: | version: "3" services: - 4tune-api: - image: 4tune-api:development - 4tune-web: - image: 4tune-web:development - statera-console: - image: statera-console:development - statera: - image: statera:development + mdb: + image: mongodb:3.2 + pdb: + image: postgresql:13 diff --git a/acme-apps/terraform/acme-1-instance.tf b/acme-apps/terraform/acme-1-instance.tf new file mode 100644 index 0000000..e1aed14 --- /dev/null +++ b/acme-apps/terraform/acme-1-instance.tf @@ -0,0 +1,8 @@ +resource "scaleway_server_instance" "acme-1" { + name = "acme-1" + type = "DEV1-S" + image = "b3042271-d2b1-4f87-b407-aedd3bbd1663" + ip_id = scaleway_instance_ip.acme-1.ip + enable_dynamic_ip = false + enable_ipv6 = true +} diff --git a/acme-apps/terraform/acme-1-ip.tf b/acme-apps/terraform/acme-1-ip.tf new file mode 100644 index 0000000..283eb55 --- /dev/null +++ b/acme-apps/terraform/acme-1-ip.tf @@ -0,0 +1,4 @@ +resource "scaleway_instance_reverse_dns" "acme-1" { + reverse = "acme-1.machine.acme.com." + ip_id = scaleway_instance_ip.acme-1.id +} diff --git a/acme-apps/terraform/acme-2-instance.tf b/acme-apps/terraform/acme-2-instance.tf new file mode 100644 index 0000000..4ae0fe5 --- /dev/null +++ b/acme-apps/terraform/acme-2-instance.tf @@ -0,0 +1,8 @@ +resource "scaleway_server_instance" "acme-2" { + name = "acme-1" + type = "DEV1-S" + image = "b3042271-d2b1-4f87-b407-aedd3bbd1663" + ip_id = scaleway_instance_ip.acme-2.ip + enable_dynamic_ip = false + enable_ipv6 = true +} diff --git a/acme-apps/terraform/acme-2-ip.tf b/acme-apps/terraform/acme-2-ip.tf new file mode 100644 index 0000000..f72fe88 --- /dev/null +++ b/acme-apps/terraform/acme-2-ip.tf @@ -0,0 +1,4 @@ +resource "scaleway_instance_reverse_dns" "acme-2" { + reverse = "acme-2.machine.acme.com." + ip_id = scaleway_instance_ip.acme-2.id +} diff --git a/acme-apps/terraform/acme-3-instance.tf b/acme-apps/terraform/acme-3-instance.tf new file mode 100644 index 0000000..389b39b --- /dev/null +++ b/acme-apps/terraform/acme-3-instance.tf @@ -0,0 +1,8 @@ +resource "scaleway_server_instance" "acme-3" { + name = "acme-1" + type = "DEV1-S" + image = "b3042271-d2b1-4f87-b407-aedd3bbd1663" + ip_id = scaleway_instance_ip.acme-3.ip + enable_dynamic_ip = false + enable_ipv6 = true +} diff --git a/acme-apps/terraform/acme-3-ip.tf b/acme-apps/terraform/acme-3-ip.tf new file mode 100644 index 0000000..7d07eb9 --- /dev/null +++ b/acme-apps/terraform/acme-3-ip.tf @@ -0,0 +1,4 @@ +resource "scaleway_instance_reverse_dns" "acme-3" { + reverse = "acme-3.machine.acme.com." + ip_id = scaleway_instance_ip.acme-3.id +} diff --git a/acme-apps/terraform/dns-acme-1.tf b/acme-apps/terraform/dns-acme-1.tf deleted file mode 100644 index bc8c127..0000000 --- a/acme-apps/terraform/dns-acme-1.tf +++ /dev/null @@ -1,8 +0,0 @@ -resource "google_dns_record_set" "acme-1" { - name = "acme-1.machine.acme.com" - managed_zone = var.acme_zone - type = "A" - ttl = 300 - - rrdatas = [scaleway_instance_ip.acme-1.address] -} diff --git a/acme-apps/terraform/dns-acme-2.tf b/acme-apps/terraform/dns-acme-2.tf deleted file mode 100644 index 5fb616f..0000000 --- a/acme-apps/terraform/dns-acme-2.tf +++ /dev/null @@ -1,8 +0,0 @@ -resource "google_dns_record_set" "acme-2" { - name = "acme-2.machine.acme.com" - managed_zone = var.acme_zone - type = "A" - ttl = 300 - - rrdatas = [scaleway_instance_ip.acme-2.address] -} diff --git a/acme-apps/terraform/dns-acme-3.tf b/acme-apps/terraform/dns-acme-3.tf deleted file mode 100644 index 539ba44..0000000 --- a/acme-apps/terraform/dns-acme-3.tf +++ /dev/null @@ -1,8 +0,0 @@ -resource "google_dns_record_set" "acme-3" { - name = "acme-3.machine.acme.com" - managed_zone = var.acme_zone - type = "A" - ttl = 300 - - rrdatas = [scaleway_instance_ip.acme-3.address] -} diff --git a/acme-apps/terraform/main-scaleway-machine.tf b/acme-apps/terraform/main-scaleway-machine.tf deleted file mode 100644 index ef74c6e..0000000 --- a/acme-apps/terraform/main-scaleway-machine.tf +++ /dev/null @@ -1,16 +0,0 @@ -# Generated - -terraform { - required_providers { - scaleway = { - source = "scaleway/scaleway" - version = "1.17.2" - } - } -} - -provider "scaleway" { -} -variable "acme_zone" { - type = string -} diff --git a/acme-apps/terraform/main.tf b/acme-apps/terraform/main.tf new file mode 100644 index 0000000..74efe05 --- /dev/null +++ b/acme-apps/terraform/main.tf @@ -0,0 +1,9 @@ +terraform { + required_providers { + + scaleway = { + version = "2.0.0-rc1" + source = "scaleway" + } + } +} diff --git a/acme-apps/terraform/scaleway-machine-acme-1.tf b/acme-apps/terraform/scaleway-machine-acme-1.tf deleted file mode 100644 index 46fc0dd..0000000 --- a/acme-apps/terraform/scaleway-machine-acme-1.tf +++ /dev/null @@ -1,19 +0,0 @@ -resource "scaleway_instance_server" "acme-1" { - name = "acme-1" - type = "DEV1-S" - image = "b3042271-d2b1-4f87-b407-aedd3bbd1663" - ip_id = scaleway_instance_ip.acme-1.id - enable_dynamic_ip = false - enable_ipv6 = true -} - -resource "scaleway_instance_ip" "acme-1" {} - -resource "scaleway_instance_ip_reverse_dns" "acme-1" { - ip_id = scaleway_instance_ip.acme-1.id - reverse = "acme-1.machine.acme.com." -} - -output "acme-1_public_ip" { - value = scaleway_instance_server.acme-1.public_ip -} diff --git a/acme-apps/terraform/scaleway-machine-acme-2.tf b/acme-apps/terraform/scaleway-machine-acme-2.tf deleted file mode 100644 index aa9387e..0000000 --- a/acme-apps/terraform/scaleway-machine-acme-2.tf +++ /dev/null @@ -1,19 +0,0 @@ -resource "scaleway_instance_server" "acme-2" { - name = "acme-1" - type = "DEV1-S" - image = "b3042271-d2b1-4f87-b407-aedd3bbd1663" - ip_id = scaleway_instance_ip.acme-2.id - enable_dynamic_ip = false - enable_ipv6 = true -} - -resource "scaleway_instance_ip" "acme-2" {} - -resource "scaleway_instance_ip_reverse_dns" "acme-2" { - ip_id = scaleway_instance_ip.acme-2.id - reverse = "acme-2.machine.acme.com." -} - -output "acme-2_public_ip" { - value = scaleway_instance_server.acme-2.public_ip -} diff --git a/acme-apps/terraform/scaleway-machine-acme-3.tf b/acme-apps/terraform/scaleway-machine-acme-3.tf deleted file mode 100644 index 61971ab..0000000 --- a/acme-apps/terraform/scaleway-machine-acme-3.tf +++ /dev/null @@ -1,19 +0,0 @@ -resource "scaleway_instance_server" "acme-3" { - name = "acme-1" - type = "DEV1-S" - image = "b3042271-d2b1-4f87-b407-aedd3bbd1663" - ip_id = scaleway_instance_ip.acme-3.id - enable_dynamic_ip = false - enable_ipv6 = true -} - -resource "scaleway_instance_ip" "acme-3" {} - -resource "scaleway_instance_ip_reverse_dns" "acme-3" { - ip_id = scaleway_instance_ip.acme-3.id - reverse = "acme-3.machine.acme.com." -} - -output "acme-3_public_ip" { - value = scaleway_instance_server.acme-3.public_ip -} diff --git a/acme-apps/terraform/vars.tf b/acme-apps/terraform/vars.tf new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/acme-apps/terraform/vars.tf @@ -0,0 +1 @@ + diff --git a/acme-wireguard/host_vars/acme-1/wireguard.yml b/acme-wireguard/host_vars/acme-1/wireguard.yml index d044f69..e36d298 100644 --- a/acme-wireguard/host_vars/acme-1/wireguard.yml +++ b/acme-wireguard/host_vars/acme-1/wireguard.yml @@ -2,6 +2,5 @@ link_address: 192.168.10.3 network_cidr: 10.55.255.0/24 wireguard_peers: - acme-1: - - acme-2.machine.acme.com - - acme-3.machine.acme.com + - acme-2.machine.acme.com + - acme-3.machine.acme.com diff --git a/acme-wireguard/host_vars/acme-2/wireguard.yml b/acme-wireguard/host_vars/acme-2/wireguard.yml index a69f2cc..3c58546 100644 --- a/acme-wireguard/host_vars/acme-2/wireguard.yml +++ b/acme-wireguard/host_vars/acme-2/wireguard.yml @@ -2,6 +2,5 @@ link_address: 192.168.10.4 network_cidr: 10.55.254.0/24 wireguard_peers: - acme-2: - - acme-1.machine.acme.com - - acme-3.machine.acme.com + - acme-1.machine.acme.com + - acme-3.machine.acme.com diff --git a/acme-wireguard/host_vars/acme-3/wireguard.yml b/acme-wireguard/host_vars/acme-3/wireguard.yml index 9c2c1eb..7f26fe1 100644 --- a/acme-wireguard/host_vars/acme-3/wireguard.yml +++ b/acme-wireguard/host_vars/acme-3/wireguard.yml @@ -2,6 +2,5 @@ link_address: 192.168.10.5 network_cidr: 10.55.253.0/24 wireguard_peers: - acme-3: - - acme-1.machine.acme.com - - acme-2.machine.acme.com + - acme-1.machine.acme.com + - acme-2.machine.acme.com diff --git a/acme-wireguard/host_vars/ws-1/wireguard.yml b/acme-wireguard/host_vars/ws-1/wireguard.yml index 26c1259..b917fbb 100644 --- a/acme-wireguard/host_vars/ws-1/wireguard.yml +++ b/acme-wireguard/host_vars/ws-1/wireguard.yml @@ -2,7 +2,6 @@ link_address: 192.168.10.6 network_cidr: 10.55.252.0/24 wireguard_peers: - ws-1: - - acme-1.machine.acme.com - - acme-2.machine.acme.com - - acme-3.machine.acme.com + - acme-1.machine.acme.com + - acme-2.machine.acme.com + - acme-3.machine.acme.com diff --git a/acme-wireguard/host_vars/ws-2/wireguard.yml b/acme-wireguard/host_vars/ws-2/wireguard.yml index 0958829..f56b320 100644 --- a/acme-wireguard/host_vars/ws-2/wireguard.yml +++ b/acme-wireguard/host_vars/ws-2/wireguard.yml @@ -2,7 +2,6 @@ link_address: 192.168.10.7 network_cidr: 10.55.251.0/24 wireguard_peers: - ws-2: - - acme-1.machine.acme.com - - acme-2.machine.acme.com - - acme-3.machine.acme.com + - acme-1.machine.acme.com + - acme-2.machine.acme.com + - acme-3.machine.acme.com diff --git a/acme-wireguard/inventory.yml b/acme-wireguard/inventory.yml index 364d472..de54c64 100644 --- a/acme-wireguard/inventory.yml +++ b/acme-wireguard/inventory.yml @@ -11,3 +11,11 @@ all: ansible_host: ws-2: ansible_host: + children: + wireguard_vpn0: + hosts: + acme-1: + acme-2: + acme-3: + ws-1: + ws-2: diff --git a/acme-wireguard/wireguard-vpn0.yml b/acme-wireguard/wireguard-vpn0.yml index a81485d..655fe19 100644 --- a/acme-wireguard/wireguard-vpn0.yml +++ b/acme-wireguard/wireguard-vpn0.yml @@ -1,6 +1,6 @@ -- hosts: vpn0 +- hosts: wireguard_vpn0 roles: - name: wireguard wireguard_if: vpn0 wireguard_listen_port: 45364 - wireguard_address4: "{{ link_addresses[ansible_hostname] }}" + wireguard_address4: "{{ link_address }}" 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 76bad0a..6a2f33b 100644 --- a/module/acme/src/main/resources/io/trygvis/acme/acme.drl +++ b/module/acme/src/main/resources/io/trygvis/acme/acme.drl @@ -2,7 +2,10 @@ package io.trygvis.acme; import io.trygvis.rules.machine.Machine; import io.trygvis.rules.dba.Cluster; -import io.trygvis.rules.dba.Container; +import io.trygvis.rules.dba.Container +import io.trygvis.rules.terraform.TerraformResource; +import io.trygvis.rules.terraform.TerraformMain +import io.trygvis.rules.terraform.TerraformProvider; dialect "mvel" @@ -32,3 +35,47 @@ then fqdn = fqdn } end + +rule "Make Terraform module for machines" +when + not TerraformMain(module == "terraform") +then + var module = new TerraformMain("terraform"); + + var scaleway = new TerraformProvider("scaleway", "2.0.0-rc1"); + module.getProviders().put("scaleway", scaleway); + + insert(module) +end + +rule "Make Scaleway Terraform resources for Machine" +when + $m : Machine() + $s : AcmeServer(machine == $m) +then + var ip = new TerraformResource("terraform/" + $m.name + "-ip.tf", "scaleway_instance_ip", $m.name); + var instance = new TerraformResource("terraform/" + $m.name + "-instance.tf", "scaleway_server_instance", $m.name) + .set("name", "acme-1") + .set("type", "DEV1-S") + .set("image", "b3042271-d2b1-4f87-b407-aedd3bbd1663") + .setExpression("ip_id", ip.name + ".ip") + .set("enable_dynamic_ip", false) + .set("enable_ipv6", true); + + + var rev = new TerraformResource("terraform/" + $m.name + "-ip.tf", "scaleway_instance_reverse_dns", $m.name) + .set("reverse", $m.fqdn + ".") + .setExpression("ip_id", ip.name + ".id"); + var dns = new TerraformResource("terraform/" + $m.name + "-dns.tf", "google_dns_record_set", $m.name) + .set("name", $m.fqdn) + .setExpression("managed_zone", "var.dns_zone") + .set("type", "A") + .set("ttl", 300) + .array("rrdatas") + .addExpression(ip.name + ".id"); + + insert(instance) + insert(ip) + insert(rev) + insert(dns) +end diff --git a/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java b/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java index 2615dde..351a3e1 100644 --- a/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java +++ b/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java @@ -22,6 +22,10 @@ public class TerraformResource { return output; } + public String getName() { + return kind + "." + instance; + } + public String getKind() { return kind; } @@ -34,20 +38,24 @@ public class TerraformResource { return values; } - public void set(String key, String value) { + public TerraformResource set(String key, String value) { values.put(key, new StringTerraformValue(value)); + return this; } - public void set(String key, boolean value) { + public TerraformResource set(String key, boolean value) { values.put(key, new BooleanTerraformValue(value)); + return this; } - public void set(String key, int value) { + public TerraformResource set(String key, int value) { values.put(key, new IntegerTerraformValue(value)); + return this; } - public void setExpression(String key, String value) { + public TerraformResource setExpression(String key, String value) { values.put(key, new ExpressionTerraformValue(value)); + return this; } public ArrayTerraformValue array(String key) { @@ -75,7 +83,6 @@ public class TerraformResource { } buf.append("}"); - buf.append(EOL); return buf.toString(); } diff --git a/out/acme/apps.yaml b/out/acme/apps.yaml index e0e9e88..61a0673 100644 --- a/out/acme/apps.yaml +++ b/out/acme/apps.yaml @@ -19,39 +19,6 @@ data: &ws-2 name: "ws-2" fqdn: null -- type: "io.trygvis.rules.dns.DnsEntry" - data: - fqdn: "acme-1.machine.acme.com" - type: "A" -- type: "io.trygvis.rules.dns.DnsEntry" - data: - fqdn: "acme-2.machine.acme.com" - type: "A" -- type: "io.trygvis.rules.dns.DnsEntry" - data: - fqdn: "acme-3.machine.acme.com" - type: "A" -- type: "io.trygvis.rules.dns.DnsEntryTerraformExpression" - data: - entry: - fqdn: "acme-1.machine.acme.com" - type: "A" - key: "acme-1" - expression: "scaleway_instance_ip.acme-1.address" -- type: "io.trygvis.rules.dns.DnsEntryTerraformExpression" - data: - entry: - fqdn: "acme-2.machine.acme.com" - type: "A" - key: "acme-2" - expression: "scaleway_instance_ip.acme-2.address" -- type: "io.trygvis.rules.dns.DnsEntryTerraformExpression" - data: - entry: - fqdn: "acme-3.machine.acme.com" - type: "A" - key: "acme-3" - expression: "scaleway_instance_ip.acme-3.address" - type: "io.trygvis.rules.dns.DnsZone" data: name: "ci.acme.com" @@ -248,33 +215,113 @@ roles: - "production-app" - "production-db" -- type: "io.trygvis.rules.terraform.ScalewayMachine" - data: - &acme-1 key: "acme-1" - machine: *acme-1 -- type: "io.trygvis.rules.terraform.ScalewayMachine" - data: - &acme-2 key: "acme-2" - machine: *acme-2 -- type: "io.trygvis.rules.terraform.ScalewayMachine" - data: - &acme-3 key: "acme-3" - machine: *acme-3 -- type: "io.trygvis.rules.terraform.ScalewayMachine" - data: - &ws-1 key: "ws-1" - machine: *ws-1 -- type: "io.trygvis.rules.terraform.ScalewayMachine" - data: - &ws-2 key: "ws-2" - machine: *ws-2 +- type: "io.trygvis.rules.terraform.TerraformResource$ArrayTerraformValue" + data: + - "scaleway_instance_ip.acme-1.id" +- type: "io.trygvis.rules.terraform.TerraformResource$ArrayTerraformValue" + data: + - "scaleway_instance_ip.acme-3.id" +- type: "io.trygvis.rules.terraform.TerraformResource$ArrayTerraformValue" + data: + - "scaleway_instance_ip.acme-2.id" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-1-instance.tf" + kind: "scaleway_server_instance" + instance: "acme-1" + values: + name: "acme-1" + type: "DEV1-S" + image: "b3042271-d2b1-4f87-b407-aedd3bbd1663" + ip_id: "scaleway_instance_ip.acme-1.ip" + enable_dynamic_ip: false + enable_ipv6: true + name: "scaleway_server_instance.acme-1" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-1-ip.tf" + kind: "scaleway_instance_ip" + instance: "acme-1" + values: {} + name: "scaleway_instance_ip.acme-1" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-1-ip.tf" + kind: "scaleway_instance_reverse_dns" + instance: "acme-1" + values: + reverse: "acme-1.machine.acme.com." + ip_id: "scaleway_instance_ip.acme-1.id" + name: "scaleway_instance_reverse_dns.acme-1" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-2-instance.tf" + kind: "scaleway_server_instance" + instance: "acme-2" + values: + name: "acme-1" + type: "DEV1-S" + image: "b3042271-d2b1-4f87-b407-aedd3bbd1663" + ip_id: "scaleway_instance_ip.acme-2.ip" + enable_dynamic_ip: false + enable_ipv6: true + name: "scaleway_server_instance.acme-2" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-2-ip.tf" + kind: "scaleway_instance_ip" + instance: "acme-2" + values: {} + name: "scaleway_instance_ip.acme-2" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-2-ip.tf" + kind: "scaleway_instance_reverse_dns" + instance: "acme-2" + values: + reverse: "acme-2.machine.acme.com." + ip_id: "scaleway_instance_ip.acme-2.id" + name: "scaleway_instance_reverse_dns.acme-2" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-3-instance.tf" + kind: "scaleway_server_instance" + instance: "acme-3" + values: + name: "acme-1" + type: "DEV1-S" + image: "b3042271-d2b1-4f87-b407-aedd3bbd1663" + ip_id: "scaleway_instance_ip.acme-3.ip" + enable_dynamic_ip: false + enable_ipv6: true + name: "scaleway_server_instance.acme-3" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-3-ip.tf" + kind: "scaleway_instance_ip" + instance: "acme-3" + values: {} + name: "scaleway_instance_ip.acme-3" +- type: "io.trygvis.rules.terraform.TerraformResource" + data: + output: "terraform/acme-3-ip.tf" + kind: "scaleway_instance_reverse_dns" + instance: "acme-3" + values: + reverse: "acme-3.machine.acme.com." + ip_id: "scaleway_instance_ip.acme-3.id" + name: "scaleway_instance_reverse_dns.acme-3" +- type: "io.trygvis.rules.terraform.TerraformMain" + data: + module: "terraform" + providers: + scaleway: + source: "scaleway" + version: "2.0.0-rc1" - type: "io.trygvis.rules.engine.KeyValue" data: key: "rm-gen" value: null -- type: "io.trygvis.rules.terraform.GoogleManagedZoneTerraformExpression" - data: - &acme_zone name: "acme_zone" - type: "io.trygvis.acme.AcmeServer" data: &acme-1 name: "acme-1" diff --git a/out/acme/wireguard.yaml b/out/acme/wireguard.yaml index 522d9ee..91a7963 100644 --- a/out/acme/wireguard.yaml +++ b/out/acme/wireguard.yaml @@ -48,96 +48,108 @@ networkBits: 24 - type: "io.trygvis.rules.wireguard.WgIpPool" data: - &4 net: *vpn0 + &1 net: *vpn0 role: "link" cidr: value: "192.168.10.0/29" - type: "io.trygvis.rules.wireguard.WgIpPool" data: - &5 net: *vpn0 + &2 net: *vpn0 role: "networks" cidr: value: "10.55.0.0/16" - type: "io.trygvis.rules.wireguard.WgHost" data: - &6 machine: *ws-1 + &3 machine: *ws-1 net: *vpn0 publicName: null ip: "192.168.10.6" networkCidr: "10.55.252.0/24" - type: "io.trygvis.rules.wireguard.WgHost" data: - &7 machine: *ws-2 + &4 machine: *ws-2 net: *vpn0 publicName: null ip: "192.168.10.7" networkCidr: "10.55.251.0/24" - type: "io.trygvis.rules.wireguard.WgHost" data: - &8 machine: *acme-1 + &5 machine: *acme-1 net: *vpn0 publicName: "acme-1.machine.acme.com" ip: "192.168.10.3" networkCidr: "10.55.255.0/24" - type: "io.trygvis.rules.wireguard.WgHost" data: - &9 machine: *acme-2 + &6 machine: *acme-2 net: *vpn0 publicName: "acme-2.machine.acme.com" ip: "192.168.10.4" networkCidr: "10.55.254.0/24" - type: "io.trygvis.rules.wireguard.WgHost" data: - &10 machine: *acme-3 + &7 machine: *acme-3 net: *vpn0 publicName: "acme-3.machine.acme.com" ip: "192.168.10.5" networkCidr: "10.55.253.0/24" - type: "io.trygvis.rules.wireguard.WgConnection" data: - &11 host: *8 - to: *9 + &acme-1_x_acme-2 name: "acme-1_x_acme-2" + host: *5 + to: *6 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &12 host: *8 - to: *10 + &acme-1_x_acme-3 name: "acme-1_x_acme-3" + host: *5 + to: *7 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &13 host: *9 - to: *8 + &acme-2_x_acme-1 name: "acme-2_x_acme-1" + host: *6 + to: *5 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &14 host: *9 - to: *10 + &acme-2_x_acme-3 name: "acme-2_x_acme-3" + host: *6 + to: *7 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &15 host: *7 - to: *8 + &acme-3_x_acme-1 name: "acme-3_x_acme-1" + host: *7 + to: *5 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &16 host: *7 - to: *9 + &acme-3_x_acme-2 name: "acme-3_x_acme-2" + host: *7 + to: *6 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &17 host: *7 - to: *10 + &ws-1_x_acme-1 name: "ws-1_x_acme-1" + host: *3 + to: *5 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &18 host: *10 - to: *8 + &ws-1_x_acme-2 name: "ws-1_x_acme-2" + host: *3 + to: *6 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &19 host: *10 - to: *9 + &ws-1_x_acme-3 name: "ws-1_x_acme-3" + host: *3 + to: *7 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &20 host: *6 - to: *8 + &ws-2_x_acme-1 name: "ws-2_x_acme-1" + host: *4 + to: *5 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &21 host: *6 - to: *9 + &ws-2_x_acme-2 name: "ws-2_x_acme-2" + host: *4 + to: *6 - type: "io.trygvis.rules.wireguard.WgConnection" data: - &22 host: *6 - to: *10 + &ws-2_x_acme-3 name: "ws-2_x_acme-3" + host: *4 + to: *7 -- cgit v1.2.3