feat: make route control and replay configurable per environment/app
All checks were successful
CI / cleanup-branch (push) Has been skipped
CI / build (push) Successful in 1m16s
CI / docker (push) Successful in 1m4s
CI / deploy-feature (push) Has been skipped
CI / deploy (push) Successful in 41s

Added routeControlEnabled and replayEnabled to ResolvedContainerConfig,
flowing through the three-layer config merge (global -> env -> app).
Both default to true. Admins can disable them per environment (e.g.
prod) via the defaultContainerConfig JSONB, or per app via the app's
containerConfig JSONB.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-11 11:56:13 +02:00
parent 4da81b21ba
commit 3501f32110
3 changed files with 8 additions and 4 deletions

View File

@@ -275,8 +275,8 @@ public class DeploymentExecutor {
envVars.put("CAMELEER_APPLICATION_ID", app.slug());
envVars.put("CAMELEER_ENVIRONMENT_ID", env.slug());
envVars.put("CAMELEER_SERVER_URL", config.serverUrl());
envVars.put("CAMELEER_ROUTE_CONTROL_ENABLED", "true");
envVars.put("CAMELEER_REPLAY_ENABLED", "true");
envVars.put("CAMELEER_ROUTE_CONTROL_ENABLED", String.valueOf(config.routeControlEnabled()));
envVars.put("CAMELEER_REPLAY_ENABLED", String.valueOf(config.replayEnabled()));
if (bootstrapToken != null && !bootstrapToken.isBlank()) {
envVars.put("CAMELEER_AUTH_TOKEN", bootstrapToken);
}

View File

@@ -28,7 +28,9 @@ public final class ConfigMerger {
stringVal(appConfig, envConfig, "routingDomain", global.routingDomain()),
stringVal(appConfig, envConfig, "serverUrl", global.serverUrl()),
intVal(appConfig, envConfig, "replicas", 1),
stringVal(appConfig, envConfig, "deploymentStrategy", "blue-green")
stringVal(appConfig, envConfig, "deploymentStrategy", "blue-green"),
boolVal(appConfig, envConfig, "routeControlEnabled", true),
boolVal(appConfig, envConfig, "replayEnabled", true)
);
}

View File

@@ -17,7 +17,9 @@ public record ResolvedContainerConfig(
String routingDomain,
String serverUrl,
int replicas,
String deploymentStrategy
String deploymentStrategy,
boolean routeControlEnabled,
boolean replayEnabled
) {
public long memoryLimitBytes() {
return (long) memoryLimitMb * 1024 * 1024;