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, }, }, }