public async Task CreateAsync()

in src/Azure.Deployments.Extensibility.Extensions.Kubernetes/Client/K8sClientFactory.cs [14:39]


        public async Task<IK8sClient> CreateAsync(JsonObject? config)
        {
            ArgumentNullException.ThrowIfNull(config, nameof(config));

            try
            {
                var kubeConfig = config["kubeConfig"]?.GetValue<string>() ?? throw new InvalidOperationException("Expected kubeConfig to be non-null.");
                var kubeConfigBytes = Convert.FromBase64String(kubeConfig);
                var kubeConfigStream = new MemoryStream(kubeConfigBytes);
                var currentContext = config["context"]?.GetValue<string>();
                var clientConfiguration = await KubernetesClientConfiguration.BuildConfigFromConfigFileAsync(kubeConfigStream, currentContext: currentContext);

                if (config["namespace"]?.GetValue<string>() is { } namespaceOverride)
                {
                    clientConfiguration.Namespace = namespaceOverride;
                }

                var kubernetes = new k8s.Kubernetes(clientConfiguration);

                return new K8sClient(clientConfiguration);
            }
            catch (KubeConfigException exception)
            {
                throw new ErrorResponseException("InvalidKubeConfig", exception.Message, JsonPointer.Create("config", "kubeConfig"));
            }
        }