diff options
| author | LeaveMyYard <zhukovpavel2001@gmail.com> | 2023-10-10 14:49:17 +0300 |
|---|---|---|
| committer | LeaveMyYard <zhukovpavel2001@gmail.com> | 2023-10-10 14:49:17 +0300 |
| commit | 78e0d25b38bf109b694e2ffd710eb345de321820 (patch) | |
| tree | 18057346d0cbd8994d09a6851739ec2b22ab24cd | |
| parent | 36a440c8d439bcecdb69561fe76c98e41e58fe11 (diff) | |
Patch fix for proxy not working from kubeconfig
| -rw-r--r-- | robusta_krr/core/integrations/kubernetes/__init__.py (renamed from robusta_krr/core/integrations/kubernetes.py) | 1 | ||||
| -rw-r--r-- | robusta_krr/core/integrations/kubernetes/config_patch.py | 37 | ||||
| -rw-r--r-- | robusta_krr/core/integrations/kubernetes/rollout.py (renamed from robusta_krr/core/integrations/rollout.py) | 0 |
3 files changed, 38 insertions, 0 deletions
diff --git a/robusta_krr/core/integrations/kubernetes.py b/robusta_krr/core/integrations/kubernetes/__init__.py index db85fb9..8bb89a1 100644 --- a/robusta_krr/core/integrations/kubernetes.py +++ b/robusta_krr/core/integrations/kubernetes/__init__.py @@ -22,6 +22,7 @@ from robusta_krr.core.models.objects import HPAData, K8sObjectData, KindLiteral 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] diff --git a/robusta_krr/core/integrations/kubernetes/config_patch.py b/robusta_krr/core/integrations/kubernetes/config_patch.py new file mode 100644 index 0000000..5f294bc --- /dev/null +++ b/robusta_krr/core/integrations/kubernetes/config_patch.py @@ -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 diff --git a/robusta_krr/core/integrations/rollout.py b/robusta_krr/core/integrations/kubernetes/rollout.py index 389c65b..389c65b 100644 --- a/robusta_krr/core/integrations/rollout.py +++ b/robusta_krr/core/integrations/kubernetes/rollout.py |
