K8sClient.cs
1 using k8s; 2 3 namespace KubernetesWorkflow 4 { 5 public class K8sClient 6 { 7 private readonly Kubernetes client; 8 private static readonly object clientLock = new object(); 9 10 public K8sClient(KubernetesClientConfiguration config) 11 { 12 client = new Kubernetes(config); 13 } 14 15 public void Run(Action<Kubernetes> action) 16 { 17 lock (clientLock) 18 { 19 action(client); 20 } 21 } 22 23 public T Run<T>(Func<Kubernetes, T> action) 24 { 25 lock (clientLock) 26 { 27 return action(client); 28 } 29 } 30 31 public void Dispose() 32 { 33 client.Dispose(); 34 } 35 } 36 }