summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2021-02-01 16:45:47 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2021-02-01 16:45:47 +0100
commit2957c76e4027f47959f79354b07cdaa4b04da8c6 (patch)
tree0c7ddcada1549a2db7d3e4d09e2be9bd5442ae9d
parent2726bd8739b78738745a462a4950b39cbfe4c1d7 (diff)
downloadrules-sandbox-2957c76e4027f47959f79354b07cdaa4b04da8c6.tar.gz
rules-sandbox-2957c76e4027f47959f79354b07cdaa4b04da8c6.tar.bz2
rules-sandbox-2957c76e4027f47959f79354b07cdaa4b04da8c6.tar.xz
rules-sandbox-2957c76e4027f47959f79354b07cdaa4b04da8c6.zip
Updating files.
-rw-r--r--.run/acme-apps.run.xml (renamed from .run/AcmeAppsTestMain.run.xml)2
-rw-r--r--.run/acme-wireguard.run.xml (renamed from .run/AcmeWireguardTestMain.run.xml)2
-rw-r--r--acme-apps/ansible/dba/acme-myapp-ci.yml28
-rw-r--r--acme-apps/terraform/acme-1-instance.tf8
-rw-r--r--acme-apps/terraform/acme-1-ip.tf4
-rw-r--r--acme-apps/terraform/acme-2-instance.tf8
-rw-r--r--acme-apps/terraform/acme-2-ip.tf4
-rw-r--r--acme-apps/terraform/acme-3-instance.tf8
-rw-r--r--acme-apps/terraform/acme-3-ip.tf4
-rw-r--r--acme-apps/terraform/dns-acme-1.tf8
-rw-r--r--acme-apps/terraform/dns-acme-2.tf8
-rw-r--r--acme-apps/terraform/dns-acme-3.tf8
-rw-r--r--acme-apps/terraform/main-scaleway-machine.tf16
-rw-r--r--acme-apps/terraform/main.tf9
-rw-r--r--acme-apps/terraform/scaleway-machine-acme-1.tf19
-rw-r--r--acme-apps/terraform/scaleway-machine-acme-2.tf19
-rw-r--r--acme-apps/terraform/scaleway-machine-acme-3.tf19
-rw-r--r--acme-apps/terraform/vars.tf1
-rw-r--r--acme-wireguard/host_vars/acme-1/wireguard.yml5
-rw-r--r--acme-wireguard/host_vars/acme-2/wireguard.yml5
-rw-r--r--acme-wireguard/host_vars/acme-3/wireguard.yml5
-rw-r--r--acme-wireguard/host_vars/ws-1/wireguard.yml7
-rw-r--r--acme-wireguard/host_vars/ws-2/wireguard.yml7
-rw-r--r--acme-wireguard/inventory.yml8
-rw-r--r--acme-wireguard/wireguard-vpn0.yml4
-rw-r--r--module/acme/src/main/resources/io/trygvis/acme/acme.drl49
-rw-r--r--module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java17
-rw-r--r--out/acme/apps.yaml159
-rw-r--r--out/acme/wireguard.yaml74
29 files changed, 290 insertions, 225 deletions
diff --git a/.run/AcmeAppsTestMain.run.xml b/.run/acme-apps.run.xml
index e491ce8..292aad9 100644
--- a/.run/AcmeAppsTestMain.run.xml
+++ b/.run/acme-apps.run.xml
@@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="AcmeAppsTestMain" type="Application" factoryName="Application" nameIsGenerated="true">
+ <configuration default="false" name="acme-apps" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" value="io.trygvis.rules.engine.AcmeAppsTestMain" />
<module name="ri-engine" />
<option name="VM_PARAMETERS" value="--add-opens java.base/java.lang=ALL-UNNAMED" />
diff --git a/.run/AcmeWireguardTestMain.run.xml b/.run/acme-wireguard.run.xml
index c2fbd12..9b107a1 100644
--- a/.run/AcmeWireguardTestMain.run.xml
+++ b/.run/acme-wireguard.run.xml
@@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager">
- <configuration default="false" name="AcmeWireguardTestMain" type="Application" factoryName="Application" nameIsGenerated="true">
+ <configuration default="false" name="acme-wireguard" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" value="io.trygvis.rules.engine.AcmeWireguardTestMain" />
<module name="ri-engine" />
<option name="VM_PARAMETERS" value="--add-opens java.base/java.lang=ALL-UNNAMED" />
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