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 }