blob: bbb7edf1b529167b594d5fdaf3428a12a5d81088 [file] [log] [blame]
// k1-specific version of hscloud.libsonnet
local kube = import "hscloud.libsonnet";
kube {
local top = self,
// fix api version (newer k8s)
StorageClass(name): kube.StorageClass(name) {
apiVersion: 'storage.k8s.io/v1',
},
PodDisruptionBudget(name): kube.PodDisruptionBudget(name) {
apiVersion: 'policy/v1',
},
CronJob(name): kube.CronJob(name) {
apiVersion: 'batch/v1',
},
CustomResourceDefinition(group, version, kind): kube.CustomResourceDefinition(group, version, kind) {
apiVersion: 'apiextensions.k8s.io/v1',
},
// fix name_port for newer Ingress compatibility
Service(name): kube.Service(name) {
local service = self,
name_port:: {
service: {
name: service.metadata.name,
port: { number: service.spec.ports[0].port },
},
},
},
// fix api version, add ingressClassName, add pathType
Ingress(name): kube.Ingress(name) {
local ingress = self,
apiVersion: 'networking.k8s.io/v1',
spec+: {
ingressClassName: 'nginx',
rules: [
{
host: host,
http: {
paths: [
{ path: '/', pathType: 'ImplementationSpecific', backend: ingress.target.name_port },
] + [
{ pathType: 'ImplementationSpecific' } + path
for path in ingress.extraPaths
],
},
}
for host in ingress.hosts
],
},
},
}