Follow-up for #475
Currently, the cache warmup logic stayed the same, but the cache config has changed from static to dynamic because of FunctionConfig CRs. This means that only the functions which's config has been read before function-runner gets to the warmup code will actually have pods created for them.
Proposal
Add a minReplicas and maxReplicas (rename of maxParallelExecutions) field to the podExecutor config and stream changes to this information from the reconciler to the pod cache manager.
The cache manager should always keep minReplicas amount of pods for the function running whilst spinning up additional pods until reaching maxReplicas when necessary. Only the additional pods should have TTL applied to them.
Follow-up for #475
Currently, the cache warmup logic stayed the same, but the cache config has changed from static to dynamic because of FunctionConfig CRs. This means that only the functions which's config has been read before function-runner gets to the warmup code will actually have pods created for them.
Proposal
Add a
minReplicasandmaxReplicas(rename ofmaxParallelExecutions) field to thepodExecutorconfig and stream changes to this information from the reconciler to the pod cache manager.The cache manager should always keep
minReplicasamount of pods for the function running whilst spinning up additional pods until reachingmaxReplicaswhen necessary. Only the additional pods should have TTL applied to them.