Beispiel #1
0
        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();
                    }
                }
            }
        }
Beispiel #2
0
        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);
        }