blob: afca927a03f9f32a3592f8a532394777e1fa0f5b [file] [log] [blame]
// HSWAW / hscloud / k0-specific extensions to kube.libsonnet
local kube = import "kube.libsonnet";
kube {
// Basic Ingress config pointing `hosts` to the `target` service, with HTTPS set up
SimpleIngress(name): kube.Ingress(name) {
local ingress = self,
hosts:: error "SimpleIngress.hosts must be defined",
target:: error "SimpleIngress.target service must be defined",
extraPaths:: [],
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: ingress.hosts, secretName: name + '-tls' }],
rules: [
{
host: host,
http: {
paths: [
{ path: '/', backend: ingress.target.name_port },
] + ingress.extraPaths,
},
}
for host in ingress.hosts
],
},
},
}