gitlab-runner: Create memory optimized runners
We're currently using a pool of CPU-optimized nodes for our GitLab runners and k8s resource requests tuned for CPU workloads. Some CI workloads are more memory intensive than CPU and are resulting in OOM/terminated containers.
Let's provide a separate node pool for memory hungry workloads and create a separate runner deployment that's tuned accordingly. Each deployment will include a tag for its optimization so CI users can select the type of runner they need for each of their jobs ("cpu-optimized" or "memory-optimized").
Aside, we are currently imposing CPU limits, but it's not clear whether imposing CPU limits is ultimately good for either performance or utilization. We might want to consider removing them.
See https://home.robusta.dev/blog/stop-using-cpu-limits
Bug: T345000