Files
LazyBearWorks/LazyBear.MCP/Services/Kubernetes/K8sClientFactory.cs

34 lines
1.0 KiB
C#

using k8s;
using Microsoft.Extensions.Configuration;
namespace LazyBear.MCP.Services.Kubernetes;
public static class K8sClientFactory
{
public static IKubernetes CreateClient(IConfiguration configuration)
{
var kubeconfigPath = configuration["Kubernetes:KubeconfigPath"];
KubernetesClientConfiguration clientConfiguration;
if (!string.IsNullOrWhiteSpace(kubeconfigPath))
{
var expandedPath = Environment.ExpandEnvironmentVariables(kubeconfigPath);
var fullPath = Path.GetFullPath(expandedPath);
clientConfiguration = KubernetesClientConfiguration.BuildConfigFromConfigFile(fullPath);
return new global::k8s.Kubernetes(clientConfiguration);
}
try
{
clientConfiguration = KubernetesClientConfiguration.BuildConfigFromConfigFile();
}
catch
{
clientConfiguration = KubernetesClientConfiguration.InClusterConfig();
}
return new global::k8s.Kubernetes(clientConfiguration);
}
}