refactor: remove unnecessary middleware checks in Traefik config generation

This commit is contained in:
Mauricio Siu
2025-10-05 11:26:46 -06:00
parent e97046c267
commit 1804a7c301
2 changed files with 12 additions and 20 deletions

View File

@@ -263,15 +263,6 @@ export const writeTraefikConfigRemote = async (
try {
const { DYNAMIC_TRAEFIK_PATH } = paths(true);
const configPath = path.join(DYNAMIC_TRAEFIK_PATH, `${appName}.yml`);
if (traefikConfig.http?.middlewares) {
// traefik will fail to start if the file contains middlewares entry but no middlewares are defined
const hasNoMiddlewares =
Object.keys(traefikConfig.http.middlewares).length === 0;
if (hasNoMiddlewares) {
// if there aren't any middlewares, remove the whole section
delete traefikConfig.http.middlewares;
}
}
const yamlStr = stringify(traefikConfig);
await execAsyncRemote(serverId, `echo '${yamlStr}' > ${configPath}`);
} catch (e) {

View File

@@ -103,14 +103,6 @@ export const loadRemoteMiddlewares = async (serverId: string) => {
export const writeMiddleware = (config: FileConfig) => {
const { DYNAMIC_TRAEFIK_PATH } = paths();
const configPath = join(DYNAMIC_TRAEFIK_PATH, "middlewares.yml");
if (config.http?.middlewares) {
// traefik will fail to start if the file contains middlewares entry but no middlewares are defined
const hasNoMiddlewares = Object.keys(config.http.middlewares).length === 0;
if (hasNoMiddlewares) {
// if there aren't any middlewares, remove the whole section
delete config.http.middlewares;
}
}
const newYamlContent = stringify(config);
writeFileSync(configPath, newYamlContent, "utf8");
};
@@ -119,6 +111,18 @@ export const createPathMiddlewares = async (
app: ApplicationNested,
domain: Domain,
) => {
const { appName } = app;
const { uniqueConfigKey, internalPath, stripPath, path } = domain;
// Early return if there's no path middleware to create
const needsInternalPathMiddleware =
internalPath && internalPath !== "/" && internalPath !== path;
const needsStripPathMiddleware = stripPath && path && path !== "/";
if (!needsInternalPathMiddleware && !needsStripPathMiddleware) {
return;
}
let config: FileConfig;
if (app.serverId) {
@@ -135,9 +139,6 @@ export const createPathMiddlewares = async (
}
}
const { appName } = app;
const { uniqueConfigKey, internalPath, stripPath, path } = domain;
if (!config.http) {
config.http = { middlewares: {} };
}