From a3e91a43a7eaa7970e92e6ece3648779dd1fb9f1 Mon Sep 17 00:00:00 2001 From: arik Date: Wed, 14 Jan 2026 23:08:30 +0200 Subject: [PATCH] fix: Add tls-server-name support for Teleport proxy (#495) This patch adds support for the `tls-server-name` field from kubeconfig, which is required when connecting to Kubernetes clusters through Teleport proxy or similar services that use TLS SNI for routing. The fix follows the same pattern already used for `proxy-url` support, loading the tls-server-name from cluster config and passing it to the kubernetes client configuration. Fixes #495 --- .../core/integrations/kubernetes/config_patch.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/robusta_krr/core/integrations/kubernetes/config_patch.py b/robusta_krr/core/integrations/kubernetes/config_patch.py index 81cd108b..3064eb62 100644 --- a/robusta_krr/core/integrations/kubernetes/config_patch.py +++ b/robusta_krr/core/integrations/kubernetes/config_patch.py @@ -16,23 +16,30 @@ def _load_cluster_info(self): if "proxy-url" in self._cluster: self.proxy = self._cluster["proxy-url"] + # Support tls-server-name for Teleport and similar proxies + # See: https://github.com/robusta-dev/krr/issues/495 + if "tls-server-name" in self._cluster: + self.tls_server_name = self._cluster["tls-server-name"] + 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)) + for key in ("proxy", "tls_server_name"): + if key in self.__dict__: + setattr(client_configuration, key, getattr(self, key)) class Configuration(configuration.Configuration): def __init__( self, proxy: Optional[str] = None, + tls_server_name: Optional[str] = None, **kwargs, ): super().__init__(**kwargs) self.proxy = proxy + self.tls_server_name = tls_server_name configuration.Configuration = Configuration