In addition to being called when an Ingress is updated, the Kubernetes Informer's UpdateFunc is regularly called every resyncPeriod (1 minute) even when the Ingress object has not changed.
The current implementation of the Ingress UpdateFunc calls c.metricsCollector.IncrementIngressUpdateOperation()
which increments the ingress_updation_count metric for every Ingress in the cluster even when it was not actually updated. For anyone watching or alerting on this metric, it looks like churn is occurring, which is not true in this case:
Informer resync "updates" occurring every 1*time.Minute:
...
oci-native-ingress-controller I0325 17:36:41.441408 1 ingress.go:139] "Updating ingress" ingress="dev-test3/test3-api"
oci-native-ingress-controller I0325 17:37:41.446295 1 ingress.go:139] "Updating ingress" ingress="dev-test3/test3-api"
oci-native-ingress-controller I0325 17:38:41.444038 1 ingress.go:139] "Updating ingress" ingress="dev-test3/test3-api"
oci-native-ingress-controller I0325 17:39:41.445154 1 ingress.go:139] "Updating ingress" ingress="dev-test3/test3-api"
...
In addition to being called when an Ingress is updated, the Kubernetes Informer's
UpdateFuncis regularly called every resyncPeriod (1 minute) even when the Ingress object has not changed.The current implementation of the Ingress
UpdateFunccallsc.metricsCollector.IncrementIngressUpdateOperation()which increments the
ingress_updation_countmetric for every Ingress in the cluster even when it was not actually updated. For anyone watching or alerting on this metric, it looks like churn is occurring, which is not true in this case:Informer resync "updates" occurring every 1*time.Minute: