diff --git a/zygote.toml b/zygote.toml new file mode 100644 index 0000000..ab0ed39 --- /dev/null +++ b/zygote.toml @@ -0,0 +1,185 @@ +### file: evgnomon/zygote/.zygote/eu-center-1_nodepool.toml:main +[nodepool.static.eu-center-1] +allow.ssh.root = [ + "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIGSgxJ6IAd+q2pkcrD9iIocpwNACuwiRPSnPCzOv7mUVAAAABHNzaDo= hg@evgnomon.org", +] + +[nodepool.static.eu-center-1.host."m1de.clusterlean.com"] +labels = ["app", "stream", "main", "file"] +host_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXqY02bdYqg1BcIf2x08zs60rS6XhlBSQ4qE47o5gb" + +[nodepool.static.eu-center-1.host."127.0.0.1:22"] +labels = ["app", "stream", "main", "file"] +host_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXqY02bdYqg1BcIf2x08zs60rS6XhlBSQ4qE47o5gb" + +### file: evgnomon/zygote/.zygote/main_kvm_nodepool.toml:main +[nodepool.kvm.main] +in = ["nodepool.eu-center-1"] +# in = ["zygote.run/clusterlean/nodepool.eu-center-1"] +# image = "ghcr.io/evgnomon/debian" +# label = "main" # By default is the name of the nodepool +allow.ssh.root = [ + "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIGSgxJ6IAd+q2pkcrD9iIocpwNACuwiRPSnPCzOv7mUVAAAABHNzaDo= hg@evgnomon.org", +] # White list ssh keys to be able to perform kvm.admin operations + +[[nodepool.kvm.main.tcp.port]] +source = 80 +target = 80 + +### file: evgnomon/zygote/.zygote/app_nodeset.toml:main +[nodeset.app] +nodepool = "nodepool.kvm.main" + +### file: evgnomon/zygote/.zygote/nodeset.store.toml:main +[nodeset.store] +in = "nodepool.kvm.main" + +### file: evgnomon/zygote/.zygote/stream.toml:main +[nodeset.stream] +in = "nodepool.kvm.main" +default = 3 +shard = 3 +# label = "stream" + +### file: evgnomon/zygote/.zygote/mailer.toml:main +[function.mailer] +in = "nodeset.app" +image = "github.com/evgnomon/mailer" +# min_instances = 0 +# max_instances = 10 + +### file: evgnomon/zygote/.zygote/cord.toml:main +[function.cord] +in = "nodeset.app" +image = "ghcr.io/evgnomon/cord" + +### file: evgnomon/zygote/.zygote/gateway.toml:main +[nodeset.gateway] +in = "nodepool.main" +user = "zygote" # Github username/orgname +# instances = 2 +# shards = 1 +# label = "gateway" + +[function.gateway] +in = "nodeset.app" +image = "ghcr.io/evgnomon/boulevard" +min_instances = 1 +max_instances = 1 + +[[function.gateway.tcp.port]] +source = 80 +target = 80 + +### file: clusterlean/zygote.run/.zygote/main.toml:main +[store.table.main] +in = "nodeset.store" +allow.io = ["*"] # Any user can access this database +# table_limit = 10 # Each user can have 10 tables + +### file: evgnomon/stream/.zygote/main.toml:main +[function.stream] +image = "ghcr.io/evgnomon/stream" +# prefix = "stream" # which can be mounted on stream.zygote.run + +[store.stream.main] +in = "evgnomon/zygote/nodeset/stream" +allow.io = ["function.salute"] +# stream_limit = 10 # Each user can have 10 stream + +[stream.main] +in = "nodeset.stream" +duration = "1h" + +### file: evgnomon/salute/.zygote/login.toml:main +[function.salute.configs.github] +[function.salute.configs.userpass] + +[function.login] +# branches = ["*"] +image = "ghcr.io/evgnomon/salute" +# prefix = "login" +# max_instances = 1 + +[table.user] +# branches = ["*"] +in = "evgnomon/zygote/store/table/main" +id.type = "INT" +id.auto_increment = true +id.primary_key = true +password = "string" +# password.type = "VARCHAR(255)" +# password.nullable = false +email = "string" +# email.type = "VARCHAR(100)" +# email.nullable = false +# mobile = "*string" +inactive = "bool" # Default is false +# weight = "float32" +# age = "float64" +# another = "int8" +# another = "int16" +# another = "int32" +# another = "int64" +# another = "[]byte" +# another = "timestamp" +# another = "struct" +# email.type = "VARCHAR(100)" +# email.nullable = true +requires = ["timestamps"] +# created_at.type = "TIMESTAMP" +# created_at.default = "CURRENT_TIMESTAMP" +# updated_at.type = "TIMESTAMP" + +# updated_at.default = "CURRENT_TIMESTAMP" +# updated_at.on_update = "CURRENT_TIMESTAMP" + +[table.user.index] +unique = true +columns = ["email"] + +### file: evgnomon/example-js-project/.zygote/main.toml:main +branches = ["main"] + +[function.main] +in = "app" +image = "ghcr.io/evgnomon/example-js-project@main" +prefix = "example-js-project" +# max_instances = 1 + +[[function.main.mounts]] +source = "/var/run/docker.sock" +target = "/var/run/docker.sock" + +[table.post] +in = "main" +requires = ["id", "timestamps"] +body = "json" +author = ["f:user"] # A foreign key to the user table +publisher = ["g:channel"] # A global foreign key +replies = ["g:channel"] # A global foreign key +# allow.io = ["main"] + +[table.project] +in = "main" +requires = ["id", "timestamps"] +name = "string" +creator = ["f:user"] # A foreign keys +# allow.io = ["main"] + +[table.channel] +in = "main" +includes = ["id", "timestamps"] +name = "string" +project = ["f:project"] # A foreign key +public = "bool" +# allow.io = ["main"] + +[[table.channel.index]] +unique = true +columns = ["name", "project"] + +# Listen to posts +[stream.posts] +in = "main" +allow.io = ["main"]