private static KubernetesClientConfiguration GetKubernetesClientConfiguration( string currentContext, string masterUrl, K8SConfiguration k8SConfig) { if (k8SConfig == null) { throw new ArgumentNullException(nameof(k8SConfig)); } var k8SConfiguration = new KubernetesClientConfiguration(); currentContext = currentContext ?? k8SConfig.CurrentContext; // only init context if context is set if (currentContext != null) { k8SConfiguration.InitializeContext(k8SConfig, currentContext); } if (!string.IsNullOrWhiteSpace(masterUrl)) { k8SConfiguration.Host = masterUrl; } if (string.IsNullOrWhiteSpace(k8SConfiguration.Host)) { throw new KubeConfigException("Cannot infer server host url either from context or masterUrl"); } return(k8SConfiguration); }
/// <summary> /// </summary> /// <param name="kubeconfig">Fileinfo of the kubeconfig, cannot be null</param> /// <param name="currentContext">override the context in config file, set null if do not want to override</param> /// <param name="masterUrl">overrider kube api server endpoint, set null if do not want to override</param> public static KubernetesClientConfiguration BuildConfigFromConfigFile(FileInfo kubeconfig, string currentContext = null, string masterUrl = null) { if (kubeconfig == null) { throw new NullReferenceException(nameof(kubeconfig)); } var k8SConfig = LoadKubeConfig(kubeconfig); var k8SConfiguration = new KubernetesClientConfiguration(); currentContext = currentContext ?? k8SConfig.CurrentContext; // only init context if context if set if (currentContext != null) { k8SConfiguration.InitializeContext(k8SConfig, currentContext); } if (!string.IsNullOrWhiteSpace(masterUrl)) { k8SConfiguration.Host = masterUrl; } if (string.IsNullOrWhiteSpace(k8SConfiguration.Host)) { throw new KubeConfigException("Cannot infer server host url either from context or masterUrl"); } return(k8SConfiguration); }