public void DeployApp(string app) { KubernetesDotnetAppDockerfileFile dockerfileFile = new KubernetesDotnetAppDockerfileFile("Dockerfile"); var dockerfile = dockerfileFile.KubernetesDotnetAppDockerfile; dockerfile.App = app; dockerfile.BaseImage = "steeltoeoss/dotnet-runtime:2.1"; dockerfile.BuildPath = "bin/Debug/netcoreapp2.1/publish"; dockerfileFile.Store(); _dockerCli.Run($"build --tag {app.ToLower()} .", "building Docker image for app"); void PreSaveAction(KubernetesDeploymentConfig deployCfg, KubernetesServiceConfig svcCfg) { deployCfg.Spec.Template.Spec.Containers[0].ImagePullPolicy = ImagePullNever; deployCfg.Spec.Template.Spec.Containers[0].Env = new List <KubernetesDeploymentConfig.DeploymentSpec.ServiceTemplate.TemplateSpec.Container. NameValuePair> { new KubernetesDeploymentConfig.DeploymentSpec.ServiceTemplate.TemplateSpec.Container. NameValuePair() { Name = "GET_HOSTS_FROM", Value = "dns" } }; svcCfg.Spec.Type = NodePort; } // TODO: get 'port' from somewhere else // TODO: get 'image' from somewhere else DeployKubernetesService(app, app.ToLower(), 80, PreSaveAction); }
public void DeployApp(string app) { KubernetesDotnetAppDockerfileFile dockerfileFile = new KubernetesDotnetAppDockerfileFile("Dockerfile"); var dockerfile = dockerfileFile.KubernetesDotnetAppDockerfile; dockerfile.App = app; dockerfile.AppPath = "/app"; dockerfile.BaseImage = "steeltoeoss/dotnet-runtime:2.1"; dockerfile.BuildPath = "bin/Debug/netcoreapp2.1/publish"; dockerfile.Environment = "Docker"; dockerfileFile.Store(); _dockerCli.Run($"build --tag {app.ToLower()} .", "building Docker image for app"); void PreSaveAction(KubernetesDeploymentConfig deployCfg, KubernetesServiceConfig svcCfg) { deployCfg.Spec.Template.Spec.Containers[0].ImagePullPolicy = ImagePullNever; deployCfg.Spec.Template.Spec.Containers[0].Env = new List <KubernetesDeploymentConfig.DeploymentSpec.ServiceTemplate.TemplateSpec.Container. NameValuePair> { new KubernetesDeploymentConfig.DeploymentSpec.ServiceTemplate.TemplateSpec.Container. NameValuePair() { Name = "GET_HOSTS_FROM", Value = "dns" } }; svcCfg.Spec.Type = NodePort; } // TODO: get 'port' from somewhere else // TODO: get 'image' from somewhere else DeployKubernetesService(app, app.ToLower(), 80, PreSaveAction); // var appPodInfo = _kubectlCli.Run($"get pods --selector app={app.ToLower()}", "getting app pod"); // var pod = new Regex($"^({app.ToLower()}-\\S+)", RegexOptions.Multiline).Match(appPodInfo).Groups[1].ToString(); // _kubectlCli.Run($"port-forward {pod} 8080:80", "forwarding port 8080->80"); }