diff options
Diffstat (limited to 'py/acme/rai/acme.py')
-rw-r--r-- | py/acme/rai/acme.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/py/acme/rai/acme.py b/py/acme/rai/acme.py new file mode 100644 index 0000000..e75d492 --- /dev/null +++ b/py/acme/rai/acme.py @@ -0,0 +1,39 @@ +from durable.lang import * + +from . import dba + +class Acme: + @staticmethod + def make(env: str, tag: str): + return {"type": "acme-application", "key": env, "env": env, "tag": tag} + + @staticmethod + def declare_rules(): + @when_all((m.type == "acme-application")) + def acmeApp(c): + cluster = f"acme-{c.m.env}" + tag = f"{c.m.tag}" + # c.assert_fact(dba.cluster(cluster)) + for f in [ + dba.container(cluster, "app", "statera", "statera", tag), + dba.container(cluster, "app", "statera-console", "statera-console", tag), + dba.container(cluster, "app", "4tune-web", "4tune-web", tag), + dba.container(cluster, "app", "4tune-api", "4tune-api", tag), + dba.container(cluster, "db", "pdb", "postgresql", "13"), + dba.container(cluster, "db", "mdb", "mongodb", "3.2"), + ]: + c.assert_fact(f) + +class AcmeOperations: + @staticmethod + def make(): + return {"type": "acme-ops", "key": "acme-ops"} + + @staticmethod + def declare_rules(): + @when_all((m.type == "acme-ops")) + def acmeOps(c): + cluster = "acme-ops" + c.assert_fact(dba.cluster(cluster)) + c.assert_fact(dba.container(cluster, "app", "pdb", "postgresql", "11")) + c.assert_fact(dba.container(cluster, "app", "n8n", "n8n", "0.84.1")) |