Is it possible to optimize spin-up time of new pods (for new jobs)?

We are running our workers on k8s cluster and the workload is typical: whenever we run a new pipeline new pods are being spun up for each new job. When the pipeline is long the time to spin up new pods is not that important. But when the pipeline is short the time to spin up new pods becomes significant portion of the overall pipeline time.

Is there any way Gitlab runner can keep some (dynamic ?) pool of pods ready to be picked up for each job (we are running that on premises and it doesn’t cost us to keep them running) ? For example: when there are no new jobs in any pipeline X pods are running and waiting to be picked up.Once the new pipeline has started one or more of those X pods has/have been selected and assigned to this/these particular job(s) but in the background a new pod(s) is/are being spun up to keep X idle pods running and ready for another job(s).

This would be an interesting feature.
Keep in mind that the “worker” container has to be created “on-the-fly” (eg. it can’t be created beforehand) because the image it uses is dynamic (depending on the job).
But the helper container can surely be setup in such a way. it would most likely require a rework, but it surely is possible.
So while the helper container is pulling the repository, the worker image is also being pulled at the same time.

But then again, it wouldn’t be possible to have them (worker and helper containers) in the same pod, as the worker container is created after helper. It would be possible by “editing” the pod manifest? But that feels wrong - at least to me.

Good idea though - I’d love to have faster spin-up time.