Documenting decision to use `docker-autoscaler` as executor for taskscaler-based docker configuration
Context: https://gitlab.slack.com/archives/C0199KBMY59/p1675276971320239
Arran Walker: We had a conversation agggess ago about how we’d “enable” the new docker autoscaler.
There’s two options:
- Introduce a new
docker-autoscaler
, this would ensure thatautoscaler
settings are present.- Use
docker
executor like normal, but autoscaling mode is enabled when the autoscaler settings are present.Code wise, there’s practically zero difference between the two.
Some things to consider:
- The executor name is sent to GitLab, so we know if its just “docker” or “docker-autoscaler” that’s been registered. There’s probably other ways we could indicate whether it was autoscaler enabled though.
- Due to us having no configuration validation (:sad-gitlab:), if you accidentally put a typo in
autoscaler
, your docker executor will probably connect to localhost and you’d be throughly confused. That kind of sucks, but is mostly the fault of us not having config validation.- With
docker-machine
, we know we can eventually remove that whole executor and its settings and it’s a clean breakaway. At the configuration level, executors can be treated as though they’re entirely separate, so doing massive overhauls/refactors/replacements might be made easier if they’re named separately.I can’t remember if there was other concerns for either option, but figured there’s now more of us working on the new autoscaler so might be worth bringing this up again. Does anybody have a preference? Anything else to consider before choosing? 4 replies
avb: does either approach fit better with the long term plans (i.e. what's discussed here)? gitlab!103543 (closed)
Arran Walker: Yeah, I’m not sure. I think that document needs updating, because I’m still unsure how the Kubernetes settings proposed there make sense with what we have now or what we might have in the future.
But it did occur to me that without knowing the future plans, at the very least, introducing
docker-autoscaler
is the safer option.docker-autoscaler
can easily be deprecated and we suggest they usedocker
with theautoscaler
settings, but it’s harder to do the opposite. So maybe we just usedocker-autoscaler
for nowtmaczukin: I'd also prefer
docker-autoscaler
. Gives us easy tracking point, reduces confusion and configuration mistakes and as you said - it's easier to be deprecated in the future when we'll finalise the executors reduction plan.avb: :gavel: