diff --git a/cluster/kube/k0.libsonnet b/cluster/kube/k0.libsonnet index 59dacf0e..f214e289 100644 --- a/cluster/kube/k0.libsonnet +++ b/cluster/kube/k0.libsonnet @@ -402,6 +402,7 @@ local admins = import "lib/admins.libsonnet"; { namespace: "pretalx", dns: "cfp.cebula.camp" }, { namespace: "site", dns: "new.hackerspace.pl" }, { namespace: "teleimg", dns: "teleimg.hswaw.net" }, + { namespace: "blog", dns: "blog.hackerspace.pl" }, // ops { namespace: "sso", dns: "sso.hackerspace.pl" }, @@ -519,6 +520,9 @@ local admins = import "lib/admins.libsonnet"; "teleimg": [ "radex", ], + "blog": [ + "krnlexception", + ], // in-cluster prometheus "monitoring-cluster": [ "viq", diff --git a/hswaw/blog/README.md b/hswaw/blog/README.md new file mode 100644 index 00000000..095bbda0 --- /dev/null +++ b/hswaw/blog/README.md @@ -0,0 +1,3 @@ +# Warsaw Hackerspace blog + +Source: https://code.hackerspace.pl/hswaw/hsblog diff --git a/hswaw/blog/nginx.default.conf b/hswaw/blog/nginx.default.conf new file mode 100644 index 00000000..fccf3250 --- /dev/null +++ b/hswaw/blog/nginx.default.conf @@ -0,0 +1,11 @@ +server { + listen 8080; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + + absolute_redirect off; +} diff --git a/hswaw/blog/prod.jsonnet b/hswaw/blog/prod.jsonnet new file mode 100644 index 00000000..02a1244f --- /dev/null +++ b/hswaw/blog/prod.jsonnet @@ -0,0 +1,57 @@ +local kube = import "../../kube/hscloud.libsonnet"; + +{ + local top = self, + local cfg = top.cfg, + + cfg:: { + name: 'hsblog', + namespace: 'blog', + domain: 'blog.hackerspace.pl', + image: 'registry.k0.hswaw.net/krnlexception/hsblog:20241124', + }, + + local ns = kube.Namespace(cfg.namespace), + + deployment: ns.Contain(kube.Deployment(cfg.name)) { + spec+: { + template+: { + spec+: { + containers_: { + default: kube.Container('default') { + image: cfg.image, + ports_: { + http: { containerPort: 8080 }, + }, + volumeMounts: [ + { + name: 'config', + subPath: 'default.conf', + mountPath: '/etc/nginx/conf.d/default.conf' + }, + ], + }, + }, + volumes_: { + config: top.config.volume, + } + } + } + } + }, + + config: ns.Contain(kube.ConfigMap(cfg.name + '-config')) { + data: { + 'default.conf': importstr 'nginx.default.conf', + }, + }, + + service: ns.Contain(kube.Service(cfg.name)) { + target:: top.deployment, + }, + + ingress: ns.Contain(kube.SimpleIngress(cfg.name)) { + hosts:: [cfg.domain], + target:: top.service, + } +}