Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Silence access errors logged internally by kubernetes libraries #1837

Merged

Conversation

2opremio
Copy link
Contributor

@2opremio 2opremio commented Mar 18, 2019

The Kubernetes Go libraries sometimes handle errors internally (using runtime.HandleError) which doesn't allow for custom error handling.

This is really unfortunate since it doesn't give us the opportunity to selectively silence tolerable errors.

In particular, fluxd cannot know in advance whether it has access to certain cluster resources. An, admitedly not ideal, solution is silencing access errors when logged by runtime.HandleError, since it can lead to the logs being flooded. Alternatives like forking and maintaining parts of the kubernetes libraries to add proper error handling are even worse.

This change was triggered by the use of cache.NewInformer to track CRD changes, which lead to the logs being flooded by (tolerable) access errors when flux doesn't have permission to list CRDs.

Fixes #1830

@2opremio 2opremio requested a review from squaremo March 18, 2019 15:12
The Kubernetes Go libraries sometimes handle errors internally
(using `runtime.HandleError`) which doesn't allow for custom error
handling.

This is really unfortunate since it doesn't give us the opportunity to
selectively silence tolerable errors.

In particular, fluxd cannot know in advance whether it has access to certain
cluster resources. An, admitedly not ideal, solution is silencing access errors
when logged by `runtime.HandleError`, since it can lead to the logs being
flooded. Alternatives like forking and maintaining parts of the kubernetes
libraries to add proper error handling are even worse.

This change is was triggered by the use of
[`cache.NewInformer`](https://godoc.org/k8s.io/client-go/tools/cache#NewInformer)
to track CRD changes, which lead to the logs being flooded by (tolerable) access
errors when flux doesn't have permission to list CRDs.
@2opremio 2opremio force-pushed the tolerate-cluster-forbidden-list-encore branch from b6c54af to 25995d5 Compare March 18, 2019 15:14
Copy link
Member

@squaremo squaremo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks reasonable to me, thanks Fons

@2opremio 2opremio merged commit 2d4cc4d into fluxcd:master Mar 18, 2019
@2opremio 2opremio deleted the tolerate-cluster-forbidden-list-encore branch March 18, 2019 17:38
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants