Skip to content

Commit 199a4d2

Browse files
committed
fix: only use 1st cfg file when logging in, dont add all ctxts (redhat-developer#966)
Signed-off-by: Andre Dietisheim <[email protected]>
1 parent e3e247a commit 199a4d2

File tree

4 files changed

+61
-3
lines changed

4 files changed

+61
-3
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ gradleVersion=8.5
1111

1212
# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html
1313
platformBundledPlugins=com.intellij.java, org.jetbrains.plugins.yaml, org.jetbrains.plugins.terminal
14-
platformPlugins=com.redhat.devtools.intellij.telemetry:1.2.1.62, com.redhat.devtools.intellij.kubernetes:1.4.0.4
14+
platformPlugins=com.redhat.devtools.intellij.telemetry:1.2.1.62
1515

1616
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
1717
pluginSinceBuild=231
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package org.jboss.tools.intellij.openshift.utils;
2+
3+
import com.intellij.openapi.util.text.StringUtil;
4+
import com.intellij.util.EnvironmentUtil;
5+
import org.slf4j.Logger;
6+
import org.slf4j.LoggerFactory;
7+
8+
public class KubeconfigEnvValue {
9+
10+
private static final String KUBECONFIG_KEY = "KUBECONFIG";
11+
12+
private static final Logger LOGGER = LoggerFactory.getLogger(KubeconfigEnvValue.class);
13+
14+
private KubeconfigEnvValue() {
15+
// inhibit instantiation
16+
}
17+
18+
public static void copyToSystem() {
19+
String current = System.getProperty(KUBECONFIG_KEY);
20+
if (!StringUtil.isEmpty(current)) {
21+
LOGGER.info("Current KUBECONFIG value is " + current + ".");
22+
return;
23+
}
24+
String shellValue = EnvironmentUtil.getValue(KUBECONFIG_KEY);
25+
if (StringUtil.isEmpty(shellValue)) {
26+
return;
27+
}
28+
LOGGER.info("Copying KUBECONFIG value " + shellValue+ " from shell to System.");
29+
System.getProperties().put(KUBECONFIG_KEY, shellValue);
30+
System.getProperties().put(KUBECONFIG_KEY.toLowerCase(), shellValue);
31+
}
32+
33+
34+
}

src/main/java/org/jboss/tools/intellij/openshift/utils/KubernetesClientFactory.java

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public KubernetesClient create(String context) {
4646

4747
@Override
4848
public KubernetesClient apply(Config config) {
49+
KubeconfigEnvValue.copyToSystem();
4950
return new KubernetesClientBuilder()
5051
.withConfig(config)
5152
.withHttpClientBuilderConsumer(builder -> setSslContext(builder, config))

src/main/java/org/jboss/tools/intellij/openshift/utils/oc/OcCli.java

+25-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@
1313
import com.intellij.openapi.application.ApplicationManager;
1414
import com.intellij.util.messages.MessageBus;
1515
import com.redhat.devtools.intellij.common.utils.ExecHelper;
16+
import io.fabric8.kubernetes.client.Config;
1617
import io.fabric8.kubernetes.client.KubernetesClient;
1718
import java.io.File;
1819
import java.io.IOException;
1920
import java.net.URL;
21+
import java.util.ArrayList;
22+
import java.util.Arrays;
2023
import java.util.Map;
2124
import java.util.function.Function;
2225
import org.jboss.tools.intellij.openshift.utils.Cli;
@@ -60,10 +63,30 @@ private static void execute(@NotNull File workingDirectory, String command, Map<
6063

6164
@Override
6265
public void login(String url, String userName, char[] password, char[] token) throws IOException {
66+
var args = new ArrayList<String>();
67+
args.add("login");
68+
args.add(url);
69+
args.add("--insecure-skip-tls-verify");
70+
addKubeconfigParameter(args);
71+
addLoginParameter(userName, password, token, args);
72+
execute(new File(HOME_FOLDER), command, envVars, args.toArray(new String[0]));
73+
}
74+
75+
private void addKubeconfigParameter(ArrayList<String> args) {
76+
String kubeconfig = Config.getKubeconfigFilenames().stream()
77+
.findFirst()
78+
.orElse(null);
79+
if (kubeconfig != null) {
80+
args.add("--kubeconfig");
81+
args.add(kubeconfig);
82+
}
83+
}
84+
85+
private static void addLoginParameter(String userName, char[] password, char[] token, ArrayList<String> args) {
6386
if (userName != null && !userName.isEmpty()) {
64-
execute(new File(HOME_FOLDER), command, envVars, "login", url, "-u", userName, "-p", String.valueOf(password), "--insecure-skip-tls-verify");
87+
args.addAll(Arrays.asList("-u", userName, "-p", String.valueOf(password)));
6588
} else {
66-
execute(new File(HOME_FOLDER), command, envVars, "login", url, "--token", String.valueOf(token), "--insecure-skip-tls-verify");
89+
args.addAll(Arrays.asList("--token", String.valueOf(token)));
6790
}
6891
}
6992

0 commit comments

Comments
 (0)