kopeio / etcd-manager

operator for etcd: moved to https://github.com/kubernetes-sigs/etcdadm
Apache License 2.0
164 stars 47 forks source link

Make discovery poll interval configurable #397

Closed zetaab closed 3 years ago

zetaab commented 3 years ago

current solution is that it will query discovery Poll each minute. However, when we have for instance kops cluster it means that we have 6 etcd manager processes. This means that etcd-manager will query each 10 seconds the status from the cloudprovider API. This means total 8640 queries/day and in case of for instance OpenStack / GCP it makes also 8640 * 3 ~ 26k compute API calls /day. In my opinion this is too much and that is why I would like to configure this value.

It is not problem if we have one cluster in whole cloud, but if we have for instance 100 kops clusters those numbers are pretty high.

justinsb commented 3 years ago

Thanks @zetaab ... we could also think about e.g. having a different interval once we've reached steady-state, or having a way that clients could signal the process that there's a change. But this is a great first step!

In terms of flag proliferation and mapping them, in kops-controller we're starting to define things using a yaml config block, which could be in a configmap. But etcd-manager is so low in the stack, we can't use a ConfigMap, so I'm not sure we have an easy answer here. One answer could be to define a config map, and then have something like the overrides so that we can at least have systematic names for the flags (e.g. --override spec.pollInterval=10m)

justinsb commented 3 years ago

/approve /lgtm

zetaab commented 3 years ago

@justinsb I totally agree, we should have faster interval if the cluster is not in steady-state. And after we have that, we should use longer duration.