*/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/hswaw/capacifier/prod.jsonnet b/hswaw/capacifier/prod.jsonnet
index 1f4af02..fa508bb 100644
--- a/hswaw/capacifier/prod.jsonnet
+++ b/hswaw/capacifier/prod.jsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../kube/kube.libsonnet";
+local kube = import "../../kube/hscloud.libsonnet";
 
 {
     local top = self,
@@ -50,26 +50,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/hswaw/ldapweb/prod.jsonnet b/hswaw/ldapweb/prod.jsonnet
index 589df76..aebd110 100644
--- a/hswaw/ldapweb/prod.jsonnet
+++ b/hswaw/ldapweb/prod.jsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../kube/kube.libsonnet";
+local kube = import "../../kube/hscloud.libsonnet";
 
 {
     local top = self,
@@ -50,26 +50,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/hswaw/oodviewer/prod.jsonnet b/hswaw/oodviewer/prod.jsonnet
index e785808..e7fab3d 100644
--- a/hswaw/oodviewer/prod.jsonnet
+++ b/hswaw/oodviewer/prod.jsonnet
@@ -2,7 +2,7 @@
 //
 // See README.md for more information.
 
-local kube = import "../../kube/kube.libsonnet";
+local kube = import "../../kube/hscloud.libsonnet";
 
 {
     local top = self,
@@ -60,26 +60,8 @@
         target_pod:: top.deploy.spec.template,
     },
 
-    ingress: top.ns.Contain(kube.Ingress("oodviewer")) {
-        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: "oodviewer-tls" } ],
-            rules: [
-                {
-                    host: cfg.domain,
-                    http: {
-                        paths:  [
-                            { path: "/", backend: top.service.name_port },
-                        ],
-                    },
-                },
-            ],
-        },
-    }
+    ingress: top.ns.Contain(kube.SimpleIngress("oodviewer")) {
+        hosts:: [cfg.domain],
+        target_service:: top.service,
+    },
 }
diff --git a/hswaw/paperless/paperless.libsonnet b/hswaw/paperless/paperless.libsonnet
index 8008a69..1d5965f 100644
--- a/hswaw/paperless/paperless.libsonnet
+++ b/hswaw/paperless/paperless.libsonnet
@@ -6,7 +6,7 @@
 # first user as such:
 #   kubectl -n paperless exec -it deploy/paperless -c paperless -- python ./manage.py shell -c "from django.contrib.auth.models import User; u = User.objects.get_by_natural_key('informatic'); u.is_superuser = True; u.is_staff = True; u.save()"
 
-local kube = import "../../kube/kube.libsonnet";
+local kube = import "../../kube/hscloud.libsonnet";
 local postgres = import "../../kube/postgres.libsonnet";
 local redis = import "../../kube/redis.libsonnet";
 
@@ -171,26 +171,8 @@
         target_pod:: app.deploy.spec.template,
     },
 
-    ingress: app.ns.Contain(kube.Ingress("paperless")) {
-        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: "paperless-tls" } ],
-            rules: [
-                {
-                    host: cfg.domain,
-                    http: {
-                        paths:  [
-                            { path: "/", backend: app.service.name_port },
-                        ],
-                    },
-                },
-            ],
-        },
-    }
+    ingress: app.ns.Contain(kube.SimpleIngress("paperless")) {
+        hosts:: [cfg.domain],
+        target_service:: app.service,
+    },
 }
diff --git a/hswaw/site/prod.jsonnet b/hswaw/site/prod.jsonnet
index be5be7e..252187b 100644
--- a/hswaw/site/prod.jsonnet
+++ b/hswaw/site/prod.jsonnet
@@ -1,4 +1,4 @@
-local kube = import "../../kube/kube.libsonnet";
+local kube = import "../../kube/hscloud.libsonnet";
 
 {
     local top = self,
@@ -45,27 +45,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.domains, secretName: cfg.name + "-tls" } ],
-            rules: [
-                {
-                    host: domain,
-                    http: {
-                        paths:  [
-                            { path: "/", backend: top.service.name_port },
-                        ],
-                    },
-                }
-                for domain in cfg.domains
-            ],
-        },
+    ingress: top.ns.Contain(kube.SimpleIngress(cfg.name)) {
+        hosts:: cfg.domains,
+        target_service:: top.service,
     },
 }