lelegram: init
This is an IRC/Telegram bridge.
It does multi-account puppet-like access to IRC making everyone's life
easier.
Compared to teleirc it also:
- is smarter about converting messages
- uses teleimg for public image access
- is not written in JS
Experimental for now.
Change-Id: I66ba3f83abdfdea6463ab3be5380d8d3f2769291
diff --git a/hswaw/kube/hswaw.jsonnet b/hswaw/kube/hswaw.jsonnet
index 49c9aa3..f550176 100644
--- a/hswaw/kube/hswaw.jsonnet
+++ b/hswaw/kube/hswaw.jsonnet
@@ -19,7 +19,8 @@
components: {
smsgw: smsgw.component(cfg.smsgw, env),
ldapweb: ldapweb.component(cfg.ldapweb, env),
- teleimg: teleimg.component(cfg.teleimg, env),
+ teleimg: teleimg.teleimg(cfg.teleimg, env),
+ lelegram: teleimg.lelegram(cfg.teleimg, env),
},
},
diff --git a/hswaw/kube/teleimg.libsonnet b/hswaw/kube/teleimg.libsonnet
index 58026fb..29f0c2d 100644
--- a/hswaw/kube/teleimg.libsonnet
+++ b/hswaw/kube/teleimg.libsonnet
@@ -6,14 +6,21 @@
secret: {
telegram_token: error "telegram_token must be set",
},
- image: "registry.k0.hswaw.net/q3k/teleimg:1578240550-1525c84e4cef4f382e2dca2210f31830533dc7c4",
+ image: {
+ teleimg: "registry.k0.hswaw.net/q3k/teleimg:1578243230-79e4e790f877597c3175823ee7783eb99744dc27",
+ lelegram: "registry.k0.hswaw.net/q3k/lelegram:1578253551-79e4e790f877597c3175823ee7783eb99744dc27",
+ },
+ bridge: {
+ telegram: "-1001345766954",
+ irc: "#hackerspace-krk",
+ },
webFQDN: error "webFQDN must be set!",
},
- component(cfg, env):: mirko.Component(env, "teleimg") {
+ teleimg(cfg, env):: mirko.Component(env, "teleimg") {
local teleimg = self,
cfg+: {
- image: cfg.image,
+ image: cfg.image.teleimg,
container: teleimg.GoContainer("main", "/teleimg/teleimg") {
env_: {
TELEGRAM_TOKEN: kube.SecretKeyRef(teleimg.secret, "telegram_token"),
@@ -38,4 +45,27 @@
data: cfg.secret,
},
},
+
+ lelegram(cfg, env):: mirko.Component(env, "lelegram") {
+ local lelegram = self,
+ cfg+: {
+ image: cfg.image.lelegram,
+ 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",
+ ],
+ },
+ },
+
+ secret: kube.Secret("lelegram") {
+ metadata+: lelegram.metadata,
+ data: cfg.secret,
+ },
+ },
}