Make docker machine configuration more elastic
What does this MR do?
Enables users to set multiple overrides for Docker Machine autoscaling parameters.
It deprecates Offpeak
settings in favour of having multiple sections called [[runners.machine.autoscaling]]
.
These will allow for users to configure multiple peak or offpeak periods with different parameters.
These override Offpeak
settings if both are available.
Deprecation issue: #25555 (closed).
Why was this MR needed?
There is a lot of context in the issue attached - #5069 (closed)
Are there points in the code the reviewer needs to double check?
- right now the default is the properties at the root level, i.e. just setting
IdleCount
andIdleTime
in[runners.machine]
. The issue suggested that we use["* * * * * * *"]
as default but I don't think it's reasonable to enforce that on users. They might have two configurations - one formon-fri
and one forsat,sun
, then they won't need an all-capturing period and can leave the root properties not set. Ideally we'd verify that the periods overlap and might as well deprecate theIdleCount
andIdleTime
properties in[runners.machine]
but I couldn't think of a good simple implementation with the library we're using for cron expressions.
Does this MR meet the acceptance criteria?
-
Documentation created/updated -
Added tests for this feature/bug -
In case of conflicts with master
- branch was rebased
What are the relevant issue numbers?
Edited by Lyubomir Raykov