34 lines
1.0 KiB
C#
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);
|
|
}
|
|
}
|