Refactor and add deployment support

This commit is contained in:
2021-10-12 00:13:21 +02:00
parent ae2e359225
commit 6cc0596b72
13 changed files with 218 additions and 106 deletions

21
lib/servers.libsonnet Normal file
View File

@@ -0,0 +1,21 @@
local defaults = import "../config/defaults.libsonnet";
local utils = import "../lib/utils.libsonnet";
{
hashIp: function (name) std.substr(std.md5(name), 0, 4) + ":" + std.substr(std.md5(name), 4, 4),
meta: function (name, instance, deployments) {
[name]: {
name: name,
networking: {
publicSubdomain: name + ".infra",
internalSubdomain: name + ".i.infra",
publicDomain: self.publicSubdomain + "." + defaults.infraDomain,
internalDomain: self.internalSubdomain + "." + defaults.infraDomain,
wireguardIp: defaults.ipSubnet + ":" + $.hashIp(name),
},
instance: instance + { name: name },
roles: std.uniq(std.sort(std.foldl(function (roles, deployment) roles + deployment.roles, deployments, []))),
deployment_vars: std.foldl(function (vars, deployment) utils.merge(vars, deployment.variables), deployments, {})
}
}
}