Implement support for incremental rollout of the new API based config source
This MR adds support for incremental rollout of the new gitlab
API based config source.
The rollout strategy can be specified using the following attributes:
- percentage - integer value that specifies how many % of requests should be enabled
- stickiness - if not specified guarantees stickiness for the provided actor. If set to "random" no stickiness is guaranteed.
This work is based on the intiall PoC from @grzesiek (https://gitlab.com/grzesiek/go-rollout/) and how Flipper and Unleash handle this:
- https://github.com/jnunemaker/flipper/blob/master/lib/flipper/gates/percentage_of_time.rb
- https://github.com/jnunemaker/flipper/blob/master/lib/flipper/gates/percentage_of_actors.rb
- https://unleash.github.io/docs/activation_strategy#flexiblerollout
Related to #282 (closed).
Edited by Krasimir Angelov