in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/auth/KubeconfigAuthStrategy.kt [91:113]
override fun fillAdditionalSettings(additionalSettings: MutableMap<String, Any>, projectId: String, isAvailable: Boolean) {
if (!isAvailable) {
additionalSettings.put("contextNames", emptyList<String>())
additionalSettings.put("currentContext", "")
return;
}
val contextsNames = arrayListOf<String>()
var currentContextName = ""
try {
val content = readKubeconfigContent()
if (!content.isNullOrEmpty()) {
val config = KubeConfigUtils.parseConfigFromString(content)
contextsNames.addAll(config.contexts.map{it.name})
currentContextName = config.currentContext
};
} catch (ex: Exception) {
LOG.warnAndDebugDetails("Error listing kubeconfig contexts", ex)
additionalSettings.put("kubeconfig-error", ex.toString())
} finally {
additionalSettings.put("contextNames", contextsNames)
additionalSettings.put("currentContext", currentContextName)
}
}