package io.trygvis.acme; import io.trygvis.rules.machine.Machine; import io.trygvis.rules.dba.Cluster; import io.trygvis.rules.dba.Container; dialect "mvel" declare AcmeServer name : String machine : Machine end rule "Create Acme servers" when $m : Machine(name.startsWith("acme-")) not(AcmeServer(name == $m.name)) then var s = new AcmeServer(); s.name = $m.name; s.machine = $m; insert(s); end rule "Set public domain for ACME servers" when $m : Machine(fqdn == null) $s : AcmeServer(machine == $m) then $s.machine.fqdn = "%s.machine.acme.com".formatted($s.machine.name); update($s.machine) end