Skip to content

Optional checks or targets #1019

@nicoche

Description

@nicoche

Hey!

Have you considered implementing optional checks or targets?

Here is an example:

  • I have a check Idle that will decide on scaling action when my workload has between 0 and 1 replicas
  • I have a check Active that will decide on scaling action when my workload has between 1 and x replicas

I don't want my check Idle to be even considered if I have, say, 5 replicas. I only want to make my ScaleIn / ScaleOut / ScaleNone decision based on the Active check when I have between 2 and x replicas.

I have been playing with group, but it is really difficult to build something that behaves like this, especially when you have more than 2 checks. I think that being able to enable/disable checks or targets based on some criteria would bring a lot of flexibility.

An example API could be:

check "target-value-check" {
  # ...
  evaluation_criterias { # No criteria means that the check is always evaluated
    criteria "count-allocations" { # Either min or max must be defined
      min = 2
      max = 10
    }

  strategy "target-value" {
    target    = 20
    threshold = 0.0001
  }
  # ...
}

What do you think? I'm happy to help implement this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions