Skip to content

Commit fb4fb8f

Browse files
black-dragon74mergify[bot]
authored andcommitted
util: disable informers on secrets
This patch disables the secret cache which relied on Informers. As the informer was cluster scoped, it led to huge memory spikes due to decoding every secret. The cache is disabled for it to be implemented in a better manner or to be removed entirely later. Signed-off-by: Niraj Yadav <[email protected]>
1 parent 8b9bc61 commit fb4fb8f

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

internal/util/k8s/secrets.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,26 @@ func (sc *secretCache) updateCache(secret *corev1.Secret, force bool) map[string
155155
// It returns a map of key-value pairs contained in the Secret's data.
156156
// If the Secret does not exist or cannot be accessed, it returns an error.
157157
func GetSecret(secretName, secretNamespace string) (map[string]string, error) {
158+
client, err := NewK8sClient()
159+
if err != nil {
160+
return nil, fmt.Errorf("failed to connect to Kubernetes: %w", err)
161+
}
162+
163+
secret, err := client.CoreV1().Secrets(secretNamespace).Get(context.TODO(), secretName, metav1.GetOptions{})
164+
if err != nil {
165+
return nil, fmt.Errorf("failed to get secret %q in namespace %q information: %w", secretName, secretNamespace, err)
166+
}
167+
168+
secretData := make(map[string]string, len(secret.Data))
169+
for k, v := range secret.Data {
170+
secretData[k] = string(v)
171+
}
172+
173+
return secretData, nil
174+
}
175+
176+
// FIXME: Implement the secret cache in a manner that does not explode memory.
177+
func _(secretName, secretNamespace string) (map[string]string, error) {
158178
// Start the watcher if not already running, only once
159179
if cachedSecrets.running.CompareAndSwap(false, true) {
160180
stopCh := make(chan struct{})

0 commit comments

Comments
 (0)