forked from hswaw/hscloud
80 lines
2.4 KiB
Text
80 lines
2.4 KiB
Text
local mirko = import "../../kube/mirko.libsonnet";
|
|
local kube = import "../../kube/kube.libsonnet";
|
|
|
|
{
|
|
cfg:: {
|
|
secret: {
|
|
telegram_token: error "telegram_token must be set",
|
|
},
|
|
image: {
|
|
teleimg: "registry.k0.hswaw.net/q3k/teleimg:1578259776-a07688fe74efe1e190d58092a9f50d4275a15e3d",
|
|
lelegram: "registry.k0.hswaw.net/q3k/lelegram:1579786610-83e26900700814ea67f46aabd5c5077382186022",
|
|
},
|
|
bridge: {
|
|
telegram: "-1001345766954",
|
|
irc: "#hackerspace-krk",
|
|
},
|
|
webFQDN: error "webFQDN must be set!",
|
|
},
|
|
|
|
teleimg(cfg, env):: mirko.Component(env, "teleimg") {
|
|
local teleimg = self,
|
|
cfg+: {
|
|
image: cfg.image.teleimg,
|
|
container: teleimg.GoContainer("main", "/teleimg/teleimg") {
|
|
env_: {
|
|
TELEGRAM_TOKEN: kube.SecretKeyRef(teleimg.secret, "telegram_token"),
|
|
},
|
|
command+: [
|
|
"-public_listen", "0.0.0.0:5000",
|
|
"-telegram_token", "$(TELEGRAM_TOKEN)",
|
|
],
|
|
},
|
|
ports+: {
|
|
publicHTTP: {
|
|
public: {
|
|
port: 5000,
|
|
dns: cfg.webFQDN,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
secret: kube.Secret("teleimg") {
|
|
metadata+: teleimg.metadata,
|
|
data: cfg.secret,
|
|
},
|
|
},
|
|
|
|
lelegram(cfg, env):: mirko.Component(env, "lelegram") {
|
|
local lelegram = self,
|
|
cfg+: {
|
|
image: cfg.image.lelegram,
|
|
nodeSelector: {
|
|
"kubernetes.io/hostname": "bc01n01.hswaw.net",
|
|
},
|
|
container: lelegram.GoContainer("main", "/lelegram/lelegram") {
|
|
env_: {
|
|
TELEGRAM_TOKEN: kube.SecretKeyRef(lelegram.secret, "telegram_token"),
|
|
},
|
|
command+: [
|
|
"-telegram_token", "$(TELEGRAM_TOKEN)",
|
|
"-telegram_chat", cfg.bridge.telegram,
|
|
"-irc_channel", cfg.bridge.irc,
|
|
"-irc_max_connections", "10",
|
|
],
|
|
},
|
|
},
|
|
|
|
deployment+: {
|
|
spec+: {
|
|
replicas: 0,
|
|
},
|
|
},
|
|
|
|
secret: kube.Secret("lelegram") {
|
|
metadata+: lelegram.metadata,
|
|
data: cfg.secret,
|
|
},
|
|
},
|
|
}
|