@@ -35,8 +35,16 @@ const Env = z.object({
3535 TRIGGER_DEQUEUE_ENABLED : BoolEnv . default ( true ) ,
3636 TRIGGER_DEQUEUE_INTERVAL_MS : z . coerce . number ( ) . int ( ) . default ( 250 ) ,
3737 TRIGGER_DEQUEUE_IDLE_INTERVAL_MS : z . coerce . number ( ) . int ( ) . default ( 1000 ) ,
38- TRIGGER_DEQUEUE_MAX_RUN_COUNT : z . coerce . number ( ) . int ( ) . default ( 10 ) ,
39- TRIGGER_DEQUEUE_MAX_CONSUMER_COUNT : z . coerce . number ( ) . int ( ) . default ( 1 ) ,
38+ TRIGGER_DEQUEUE_MAX_RUN_COUNT : z . coerce . number ( ) . int ( ) . default ( 1 ) ,
39+ TRIGGER_DEQUEUE_MIN_CONSUMER_COUNT : z . coerce . number ( ) . int ( ) . default ( 1 ) ,
40+ TRIGGER_DEQUEUE_MAX_CONSUMER_COUNT : z . coerce . number ( ) . int ( ) . default ( 10 ) ,
41+ TRIGGER_DEQUEUE_SCALING_STRATEGY : z . enum ( [ "none" , "smooth" , "aggressive" ] ) . default ( "none" ) ,
42+ TRIGGER_DEQUEUE_SCALING_UP_COOLDOWN_MS : z . coerce . number ( ) . int ( ) . default ( 5000 ) , // 5 seconds
43+ TRIGGER_DEQUEUE_SCALING_DOWN_COOLDOWN_MS : z . coerce . number ( ) . int ( ) . default ( 30000 ) , // 30 seconds
44+ TRIGGER_DEQUEUE_SCALING_TARGET_RATIO : z . coerce . number ( ) . default ( 1.0 ) , // Target ratio of queue items to consumers (1.0 = 1 item per consumer)
45+ TRIGGER_DEQUEUE_SCALING_EWMA_ALPHA : z . coerce . number ( ) . min ( 0 ) . max ( 1 ) . default ( 0.3 ) , // Smooths queue length measurements (0=historical, 1=current)
46+ TRIGGER_DEQUEUE_SCALING_BATCH_WINDOW_MS : z . coerce . number ( ) . int ( ) . positive ( ) . default ( 1000 ) , // Batch window for metrics processing (ms)
47+ TRIGGER_DEQUEUE_SCALING_DAMPING_FACTOR : z . coerce . number ( ) . min ( 0 ) . max ( 1 ) . default ( 0.7 ) , // Smooths consumer count changes after EWMA (0=no scaling, 1=immediate)
4048
4149 // Optional services
4250 TRIGGER_WARM_START_URL : z . string ( ) . optional ( ) ,
@@ -77,6 +85,10 @@ const Env = z.object({
7785 KUBERNETES_EPHEMERAL_STORAGE_SIZE_LIMIT : z . string ( ) . default ( "10Gi" ) ,
7886 KUBERNETES_EPHEMERAL_STORAGE_SIZE_REQUEST : z . string ( ) . default ( "2Gi" ) ,
7987 KUBERNETES_STRIP_IMAGE_DIGEST : BoolEnv . default ( false ) ,
88+ KUBERNETES_CPU_REQUEST_MIN_CORES : z . coerce . number ( ) . min ( 0 ) . default ( 0 ) ,
89+ KUBERNETES_CPU_REQUEST_RATIO : z . coerce . number ( ) . min ( 0 ) . max ( 1 ) . default ( 0.75 ) , // Ratio of CPU limit, so 0.75 = 75% of CPU limit
90+ KUBERNETES_MEMORY_REQUEST_MIN_GB : z . coerce . number ( ) . min ( 0 ) . default ( 0 ) ,
91+ KUBERNETES_MEMORY_REQUEST_RATIO : z . coerce . number ( ) . min ( 0 ) . max ( 1 ) . default ( 1 ) , // Ratio of memory limit, so 1 = 100% of memory limit
8092
8193 // Placement tags settings
8294 PLACEMENT_TAGS_ENABLED : BoolEnv . default ( false ) ,
0 commit comments