devtools: add sourcegraph
Change-Id: Ic3c40768c761e598e0f42b17a4b9f0d4ebcb2bb2
diff --git a/kube/mirko.libsonnet b/kube/mirko.libsonnet
index b35833f..6703381 100644
--- a/kube/mirko.libsonnet
+++ b/kube/mirko.libsonnet
@@ -31,6 +31,12 @@
service: component.svc,
port: component.cfg.ports.publicHTTP[p].port,
dns: component.cfg.ports.publicHTTP[p].dns,
+ // Extra headers to set.
+ // BUG(q3k): these headers are applied to all components in the environment!
+ // We should be splitting up ingresses where necessary to combat this.
+ setHeaders: [],
+ // Extra paths to add to ingress. These are bare HTTPIngressPaths.
+ extraPaths: component.cfg.extraPaths,
}
for p in std.objectFields(env.components[c].cfg.ports.publicHTTP)
]
@@ -50,6 +56,9 @@
annotations+: {
"kubernetes.io/tls-acme": "true",
"certmanager.k8s.io/cluster-issuer": "letsencrypt-prod",
+ [if env.ingressServerSnippet != null]: "nginx.ingress.kubernetes.io/server-snippet": env.ingressServerSnippet,
+ [if std.length(env.extraHeaders) > 0 then "nginx.ingress.kubernetes.io/configuration-snippet"]:
+ std.join("\n", ["proxy_set_header %s;" % [h] for h in env.extraHeaders]),
},
},
spec+: {
@@ -65,13 +74,27 @@
http: {
paths: [
{ path: "/", backend: { serviceName: p.service.metadata.name, servicePort: p.port }},
- ],
+ ] + p.extraPaths,
},
}
for p in env.publicHTTPPorts
],
},
- } else {}
+ } else {},
+
+ // Nginx Ingress Controller server configuration snippet to add.
+ ingressServerSnippet:: null,
+
+ // Extra request headers to add to ingress
+ extraHeaders:: std.flattenArrays([
+ std.flattenArrays([
+
+ local portc = env.components[c].cfg.ports.publicHTTP[p];
+ if std.objectHas(portc, "setHeaders") then portc.setHeaders else []
+ for p in std.objectFields(env.components[c].cfg.ports.publicHTTP)
+ ])
+ for c in std.objectFields(env.components)
+ ]),
},
Component(env, name): {
@@ -110,7 +133,7 @@
publicHTTP: {}, // name -> { port: no, dns: fqdn }
grpc: { main: 4200 }, // name -> port no
},
-
+ extraPaths:: [],
},
allPorts:: {