/ Framework / KubernetesWorkflow / K8sClient.cs
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  }