ai gateway override only required sometimes

This commit is contained in:
Owen
2026-08-05 16:24:01 -04:00
parent c5b0e1e876
commit 796bf37141
+22 -13
View File
@@ -1542,6 +1542,12 @@ export async function getTraefikConfig(
aiGatewayHost = undefined; aiGatewayHost = undefined;
} }
// The p-host smuggling above is only necessary when the AI gateway
// is overridden to a different host than the resource's own. In the
// default case, leave the Host header untouched so it's visible on
// the other end.
const aiGatewayOverride = config.getRawConfig().server.ai_gateway_override;
// Public inference resources: same TLS/cert-resolver handling as // Public inference resources: same TLS/cert-resolver handling as
// plain http-mode resources, but the service points at the AI // plain http-mode resources, but the service points at the AI
// gateway instead of any real backend targets. // gateway instead of any real backend targets.
@@ -1607,6 +1613,11 @@ export async function getTraefikConfig(
} }
} }
const additionalMiddlewares =
config.getRawConfig().traefik.additional_middlewares || [];
const routerMiddlewares = [badgerMiddlewareName];
if (aiGatewayOverride) {
const irHeadersMiddlewareName = `${irKey}-headers-middleware`; const irHeadersMiddlewareName = `${irKey}-headers-middleware`;
config_output.http.middlewares[irHeadersMiddlewareName] = { config_output.http.middlewares[irHeadersMiddlewareName] = {
headers: { headers: {
@@ -1616,14 +1627,10 @@ export async function getTraefikConfig(
} }
} }
}; };
routerMiddlewares.push(irHeadersMiddlewareName);
}
const additionalMiddlewares = routerMiddlewares.push(...additionalMiddlewares);
config.getRawConfig().traefik.additional_middlewares || [];
const routerMiddlewares = [
badgerMiddlewareName,
irHeadersMiddlewareName,
...additionalMiddlewares
];
if (ir.ssl) { if (ir.ssl) {
config_output.http.routers[routerName + "-redirect"] = { config_output.http.routers[routerName + "-redirect"] = {
@@ -1705,6 +1712,11 @@ export async function getTraefikConfig(
} }
} }
const additionalMiddlewares =
config.getRawConfig().traefik.additional_middlewares || [];
const routerMiddlewares: string[] = [];
if (aiGatewayOverride) {
const srHeadersMiddlewareName = `${srKey}-headers-middleware`; const srHeadersMiddlewareName = `${srKey}-headers-middleware`;
config_output.http.middlewares[srHeadersMiddlewareName] = { config_output.http.middlewares[srHeadersMiddlewareName] = {
headers: { headers: {
@@ -1714,13 +1726,10 @@ export async function getTraefikConfig(
} }
} }
}; };
routerMiddlewares.push(srHeadersMiddlewareName);
}
const additionalMiddlewares = routerMiddlewares.push(...additionalMiddlewares);
config.getRawConfig().traefik.additional_middlewares || [];
const routerMiddlewares = [
srHeadersMiddlewareName,
...additionalMiddlewares
];
if (sr.ssl) { if (sr.ssl) {
config_output.http.routers[routerName + "-redirect"] = { config_output.http.routers[routerName + "-redirect"] = {