| 330 | } |
| 331 | |
| 332 | func (h *handler) getClientFromCache(kubeContext, kubeNamespace string) (kubectl.Client, error) { |
| 333 | key := kubeNamespace + ":" + kubeContext |
| 334 | |
| 335 | h.clientCacheMutex.Lock() |
| 336 | defer h.clientCacheMutex.Unlock() |
| 337 | |
| 338 | var err error |
| 339 | client, ok := h.clientCache[key] |
| 340 | if !ok { |
| 341 | client, err = kubectl.NewClientFromContext(kubeContext, kubeNamespace, false, kubeconfig.NewLoader()) |
| 342 | if err != nil { |
| 343 | return nil, err |
| 344 | } |
| 345 | |
| 346 | h.clientCache[key] = client |
| 347 | } |
| 348 | |
| 349 | return client, nil |
| 350 | } |