/ ProjectPlugins / DeployAndRunPlugin / DeployAndRunPlugin.cs
DeployAndRunPlugin.cs
 1  using Core;
 2  using KubernetesWorkflow;
 3  using KubernetesWorkflow.Types;
 4  
 5  namespace DeployAndRunPlugin
 6  {
 7      public class DeployAndRunPlugin : IProjectPlugin
 8      {
 9          private readonly IPluginTools tools;
10  
11          public DeployAndRunPlugin(IPluginTools tools)
12          {
13              this.tools = tools;
14          }
15  
16          public void Awake(IPluginAccess access)
17          {
18          }
19  
20          public void Announce()
21          {
22              tools.GetLog().Log("Deploy-and-Run plugin loaded.");
23          }
24  
25          public void Decommission()
26          {
27          }
28  
29          public RunningContainer Run(RunConfig config)
30          {
31              var workflow = tools.CreateWorkflow();
32              var startupConfig = new StartupConfig();
33              startupConfig.NameOverride = "dnr-" + config.Name;
34              startupConfig.Add(config);
35  
36              var location = workflow.GetAvailableLocations().Get("fixed-s-4vcpu-16gb-amd-yz8rd");
37              var containers = workflow.Start(1, location, new DeployAndRunContainerRecipe(), startupConfig).WaitForOnline();
38              return containers.Containers.Single();
39          }
40      }
41  }