protected async Task EnsureServiceEndpointForKubernetesAsync( ProjectManifest manifest, ServiceEndpointManifest seManifest, ProjectService projectService, k8s.Models.V1Secret secret, Tuple <Kdoctl.CliServices.AzDoServices.Dtos.Project, bool> outcome) { var seService = GetServiceEndpointService(); var project = outcome.Item1; var eps = await seService.ListServiceEndpointsAsync(project.Id); if (eps != null && eps.Value != null) { var endpoint = eps.Value.FirstOrDefault(ep => ep.Name.Equals(seManifest.Name, StringComparison.OrdinalIgnoreCase)); if (endpoint == null) { using var op = Insights.BeginOperation($"Creating Kubernetes Service Endpoint '{seManifest.Name}' ..."); var newEndpoint = await seService.CreateKubernetesEndpointAsync( project.Id, project.Name, seManifest.Name, seManifest.Description, GetK8sService().GetClusterAPIUri().ToString(), Convert.ToBase64String(secret.Data["ca.crt"]), Convert.ToBase64String(secret.Data["token"])); if (newEndpoint != null) { op.EndWithSuccess(); } else { op.EndWithFailure(); } } else { using var op = Insights.BeginOperation($"Kubernetes Service Endpoint '{seManifest.Name}' ..."); var updatedEndpoint = await seService.UpdateKubernetesEndpointAsync( endpoint.Id, project.Id, project.Name, seManifest.Name, seManifest.Description, GetK8sService().GetClusterAPIUri().ToString(), Convert.ToBase64String(secret.Data["ca.crt"]), Convert.ToBase64String(secret.Data["token"])); if (updatedEndpoint != null) { op.EndWithSuccess(); } else { op.EndWithFailure(); } } } }
private k8s.Models.V1Secret CreateSecret(string name, IDictionary <string, byte[]> secretData, string secretType) { k8s.Models.V1Secret result = null; if (secretData.Count > 0) { result = _k8sClient.CreateNamespacedSecret( new k8s.Models.V1Secret( data: secretData, metadata: new k8s.Models.V1ObjectMeta(name: name), type: secretType ), _namespace ); } return(result); }