CreateServiceAsync(Kubernetes k8sClient, V1Service yamlModel, MTAServiceModel serviceModel) { try { var namespaceParams = PrepareNamespaceParams(_groupName); var serviceParams = PrepareServiceParams(_serviceName); yamlModel.Metadata.Name = serviceParams; yamlModel.Spec.Selector = serviceModel.Selectors; var v1ServicePorts = new List <V1ServicePort>(); foreach (var port in serviceModel.Ports) { var v1ServicePort = new V1ServicePort(port); v1ServicePorts.Add(v1ServicePort); } yamlModel.Spec.Ports = v1ServicePorts; var v1Service = await k8sClient.CreateNamespacedServiceAsync (yamlModel, namespaceParams); serviceModel = new MTAServiceModel(v1Service); return(new Tuple <MTAServiceModel, MTAErrorModel>(serviceModel, null)); } catch (HttpOperationException ex) { var errorModel = new MTAErrorModel(ex); return(new Tuple <MTAServiceModel, MTAErrorModel>(null, errorModel)); } catch (Exception) { throw; } }
public async Task <IActionResult> CreateServiceAsync ([FromBody] MTAServiceModel serviceBody, [FromRoute] string serviceName, [FromRoute] string tenantName, [FromRoute] string groupName) { var path = string.Concat(GetTemplatesPath(), "/template-svc.yaml"); var servicesList = await Yaml.LoadAllFromFileAsync(path); var yamlBody = servicesList[0] as V1Service; var serviceController = new MTAServiceController(serviceName, tenantName, groupName); var respondeModel = await serviceController.CreateServiceAsync (_k8sClient, yamlBody, serviceBody); if (respondeModel.Item2 != null) { return(BadRequest(respondeModel.Item2)); } return(Created(Url.RouteUrl("CreateService", new { serviceName, groupName }), respondeModel.Item1)); }
ReadServiceAsync(Kubernetes k8sClient) { try { var namespaceParams = PrepareNamespaceParams(_groupName); var serviceParams = PrepareServiceParams(_serviceName); var v1Service = await k8sClient.ReadNamespacedServiceAsync (serviceParams.Item1, namespaceParams); var serviceModel = new MTAServiceModel(v1Service); return(new Tuple <MTAServiceModel, MTAErrorModel>(serviceModel, null)); } catch (HttpOperationException ex) { var errorModel = new MTAErrorModel(ex); return(new Tuple <MTAServiceModel, MTAErrorModel>(null, errorModel)); } catch (Exception) { throw; } }