Skip to content

Commit

Permalink
Merge pull request #155 from robusta-dev/kubernetes-proxy-fix
Browse files Browse the repository at this point in the history
Patch fix for proxy not working from kubeconfig
  • Loading branch information
arikalon1 authored Oct 18, 2023
2 parents 36a440c + 78e0d25 commit f64a67e
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from robusta_krr.core.models.result import ResourceAllocations
from robusta_krr.utils.configurable import Configurable

from . import config_patch as _
from .rollout import RolloutAppsV1Api

AnyKubernetesAPIObject = Union[V1Deployment, V1DaemonSet, V1StatefulSet, V1Pod, V1Job]
Expand Down
37 changes: 37 additions & 0 deletions robusta_krr/core/integrations/kubernetes/config_patch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# NOTE: This is a workaround for the issue described here:
# https://github.com/kubernetes-client/python/pull/1863

from __future__ import annotations

from kubernetes.client import configuration
from kubernetes.config import kube_config


class KubeConfigLoader(kube_config.KubeConfigLoader):
def _load_cluster_info(self):
super()._load_cluster_info()

if "proxy-url" in self._cluster:
self.proxy = self._cluster["proxy-url"]

def _set_config(self, client_configuration: Configuration):
super()._set_config(client_configuration)

key = "proxy"
if key in self.__dict__:
setattr(client_configuration, key, getattr(self, key))


class Configuration(configuration.Configuration):
def __init__(
self,
proxy: str | None = None,
**kwargs,
):
super().__init__(**kwargs)

self.proxy = proxy


configuration.Configuration = Configuration
kube_config.KubeConfigLoader = KubeConfigLoader
File renamed without changes.

0 comments on commit f64a67e

Please sign in to comment.