*/kube: Add kube.SimpleIngress

Change-Id: Iddcac629b9938f228dd93b32e58bb14606d5c6e5
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1745
Reviewed-by: q3k <q3k@hackerspace.pl>
diff --git a/personal/q3k/annoyatron/prod.jsonnet b/personal/q3k/annoyatron/prod.jsonnet
index c693cfd..84f2f6e 100644
--- a/personal/q3k/annoyatron/prod.jsonnet
+++ b/personal/q3k/annoyatron/prod.jsonnet
@@ -1,4 +1,4 @@
-local kube = import '../../../kube/kube.libsonnet';
+local kube = import '../../../kube/hscloud.libsonnet';
 {
     local annoyatron = self,
     local cfg = self.cfg,
@@ -46,28 +46,11 @@
             ],
         },
     },
-    ingress: kube.Ingress("annoyatron") {
+    ingress: kube.SimpleIngress("annoyatron") {
         metadata+: {
             namespace: "q3k",
-            annotations+: {
-                "kubernetes.io/tls-acme": "true",
-                "cert-manager.io/cluster-issuer": "letsencrypt-prod",
-            },
         },
-        spec+: {
-            tls: [
-                { hosts: [cfg.domain], secretName: "annoyatron-tls" },
-            ],
-            rules: [
-                {
-                    host: cfg.domain,
-                    http: {
-                        paths: [
-                            { path: "/", backend: annoyatron.svc.name_port },
-                        ],
-                    },
-                }
-            ],
-        },
+        hosts:: [cfg.domain],
+        target_service:: annoyatron.svc,
     },
 }
diff --git a/personal/q3k/ppsa.jsonnet b/personal/q3k/ppsa.jsonnet
index 60651c7..c5bf90a 100644
--- a/personal/q3k/ppsa.jsonnet
+++ b/personal/q3k/ppsa.jsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../kube/kube.libsonnet";
+local kube = import "../../kube/hscloud.libsonnet";
 
 {
     local top = self,
@@ -33,29 +33,8 @@
     svc: top.ns.Contain(kube.Service("ppsa-jsonapi")) {
         target_pod:: top.deploy.spec.template,
     },
-    ingress: top.ns.Contain(kube.Ingress("ppsa-jsonapi")) {
-        metadata+: {
-            annotations+: {
-                "kubernetes.io/tls-acme": "true",
-                "cert-manager.io/cluster-issuer": "letsencrypt-prod",
-                "nginx.ingress.kubernetes.io/proxy-body-size": "0",
-            },
-        },
-        spec+: {
-            tls: [
-                { hosts: [ "ppsa.app.q3k.org"], secretName: "ppsa-jsonapi-tls", },
-            ],
-            rules: [
-                {
-                    host: "ppsa.app.q3k.org",
-                    http: {
-                        paths: [
-                            { path: "/", backend: top.svc.name_port },
-                        ],
-                    },
-                },
-            ],
-        },
+    ingress: top.ns.Contain(kube.SimpleIngress("ppsa-jsonapi")) {
+        hosts:: ["ppsa.app.q3k.org"],
+        target_service:: top.svc,
     },
-
 }
diff --git a/personal/q3k/rc3.jsonnet b/personal/q3k/rc3.jsonnet
index 91f3969..b4112f2 100644
--- a/personal/q3k/rc3.jsonnet
+++ b/personal/q3k/rc3.jsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../kube/kube.libsonnet";
+local kube = import "../../kube/hscloud.libsonnet";
 
 {
     local rc3 = self,
@@ -32,29 +32,11 @@
         },
         target_pod:: rc3.deploy.spec.template,
     },
-    ingress: kube.Ingress("rc3-data") {
+    ingress: kube.SimpleIngress("rc3-data") {
         metadata+: {
             namespace: "personal-q3k",
-            annotations+: {
-                "kubernetes.io/tls-acme": "true",
-                "cert-manager.io/cluster-issuer": "letsencrypt-prod",
-                "nginx.ingress.kubernetes.io/proxy-body-size": "0",
-            },
         },
-        spec+: {
-            tls: [
-                { hosts: [ "rc3-data.q3k.org"], secretName: "rc3-data-tls", },
-            ],
-            rules: [
-                {
-                    host: "rc3-data.q3k.org",
-                    http: {
-                        paths: [
-                            { path: "/", backend: rc3.svc.name_port },
-                        ],
-                    },
-                },
-            ],
-        },
+        hosts:: ["rc3-data.q3k.org"],
+        target_service:: rc3.svc,
     },
 }
diff --git a/personal/q3k/wow/lib.libsonnet b/personal/q3k/wow/lib.libsonnet
index d9ddc3d..03127e9 100644
--- a/personal/q3k/wow/lib.libsonnet
+++ b/personal/q3k/wow/lib.libsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../../kube/kube.libsonnet";
+local kube = import "../../../kube/hscloud.libsonnet";
 
 {
     local wow = self,
@@ -272,30 +272,8 @@
             ],
         },
     },
-    panelIngress: ns.Contain(kube.Ingress(cfg.prefix + "panel")) {
-        metadata+: {
-            annotations+: {
-                "kubernetes.io/tls-acme": "true",
-                "cert-manager.io/cluster-issuer": "letsencrypt-prod",
-            },
-        },
-        spec+: {
-            tls: [
-                {
-                    hosts: [cfg.panel.domain],
-                    secretName: cfg.prefix + "panel-tls",
-                },
-            ],
-            rules: [
-                {
-                    host: cfg.panel.domain,
-                    http: {
-                        paths: [
-                            { path: "/", backend: wow.panelSvc.name_port },
-                        ],
-                    },
-                }
-            ],
-        },
+    panelIngress: ns.Contain(kube.SimpleIngress(cfg.prefix + "panel")) {
+        hosts:: [cfg.panel.domain],
+        target_service:: wow.panelSvc,
     },
 }
diff --git a/personal/radex/demo-next/prod.jsonnet b/personal/radex/demo-next/prod.jsonnet
index dce74b9..c5abec7 100644
--- a/personal/radex/demo-next/prod.jsonnet
+++ b/personal/radex/demo-next/prod.jsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../../kube/kube.libsonnet";
+local kube = import "../../../kube/hscloud.libsonnet";
 
 {
     local top = self,
@@ -58,26 +58,8 @@
         target_pod:: top.deployment.spec.template,
     },
 
-    ingress: top.ns.Contain(kube.Ingress(cfg.name)) {
-        metadata+: {
-            annotations+: {
-                "kubernetes.io/tls-acme": "true",
-                "cert-manager.io/cluster-issuer": "letsencrypt-prod",
-                "nginx.ingress.kubernetes.io/proxy-body-size": "0",
-            },
-        },
-        spec+: {
-            tls: [ { hosts: [ cfg.domain ], secretName: cfg.name + "-tls" } ],
-            rules: [
-                {
-                    host: cfg.domain,
-                    http: {
-                        paths:  [
-                            { path: "/", backend: top.service.name_port },
-                        ],
-                    },
-                },
-            ],
-        },
-    }
+    ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {
+        hosts:: [cfg.domain],
+        target_service:: top.service,
+    },
 }
diff --git a/personal/radex/demo/prod.jsonnet b/personal/radex/demo/prod.jsonnet
index 23cc20f..a5f7678 100644
--- a/personal/radex/demo/prod.jsonnet
+++ b/personal/radex/demo/prod.jsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../../kube/kube.libsonnet";
+local kube = import "../../../kube/hscloud.libsonnet";
 
 {
     local top = self,
@@ -38,26 +38,8 @@
         target_pod:: top.deployment.spec.template,
     },
 
-    ingress: top.ns.Contain(kube.Ingress(cfg.name)) {
-        metadata+: {
-            annotations+: {
-                "kubernetes.io/tls-acme": "true",
-                "cert-manager.io/cluster-issuer": "letsencrypt-prod",
-                "nginx.ingress.kubernetes.io/proxy-body-size": "0",
-            },
-        },
-        spec+: {
-            tls: [ { hosts: [ cfg.domain ], secretName: cfg.name + "-tls" } ],
-            rules: [
-                {
-                    host: cfg.domain,
-                    http: {
-                        paths:  [
-                            { path: "/", backend: top.service.name_port },
-                        ],
-                    },
-                },
-            ],
-        },
-    }
+    ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {
+        hosts:: [cfg.domain],
+        target_service:: top.service,
+    },
 }
diff --git a/personal/vuko/shells/prod.jsonnet b/personal/vuko/shells/prod.jsonnet
index ed04483..bc654e6 100644
--- a/personal/vuko/shells/prod.jsonnet
+++ b/personal/vuko/shells/prod.jsonnet
@@ -1,5 +1,5 @@
 # this is libjsonnet library for kubernetes related things
-local kube = import '../../../kube/kube.libsonnet';
+local kube = import '../../../kube/hscloud.libsonnet';
 
 {
     local shells = self,
@@ -137,27 +137,9 @@
 
     # ingress creates VirtualHost on ingress.k0.hswaw.net forwaring http(s)
     # requests to your domain to specified Pod/container
-    ingress: kube.Ingress("frontend") {
-        metadata+: shells.metadata("frontend") {
-            annotations+: {
-                "kubernetes.io/tls-acme": "true",
-                "cert-manager.io/cluster-issuer": "letsencrypt-prod",
-            },
-        },
-        spec+: {
-            tls: [
-                { hosts: [cfg.domain], secretName: "shells-frontend-tls"}
-            ],
-            rules: [
-                {
-                    host: cfg.domain,
-                    http: {
-                        paths: [
-                            { path: "/", backend: shells.svc.name_port },
-                        ],
-                    },
-                },
-            ],
-        },
+    ingress: kube.SimpleIngress("frontend") {
+        hosts:: [cfg.domain],
+        target_service:: shells.svc,
+        metadata+: shells.metadata("frontend"),
     },
 }