Skip to content

Commit 9ac421a

Browse files
committed
[JENKINS-70392] Context classloader must be tweaked for Kubernetes client
1 parent 45d9da3 commit 9ac421a

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/main/java/org/csanchez/jenkins/plugins/kubernetes/KubernetesFactoryAdapter.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.csanchez.jenkins.plugins.kubernetes;
22

33

4+
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
45
import java.util.Base64;
56
import java.util.Collections;
67
import java.util.logging.Logger;
@@ -18,7 +19,6 @@
1819

1920
import io.fabric8.kubernetes.client.Config;
2021
import io.fabric8.kubernetes.client.ConfigBuilder;
21-
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
2222
import io.fabric8.kubernetes.client.KubernetesClient;
2323
import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuth;
2424
import org.jenkinsci.plugins.kubernetes.auth.KubernetesAuthConfig;
@@ -144,7 +144,10 @@ public KubernetesClient createClient() throws KubernetesAuthException {
144144
}
145145
}
146146
}
147-
return new DefaultKubernetesClient(builder.build());
147+
// TODO post 2.362 use jenkins.util.SetContextClassLoader
148+
try (WithContextClassLoader ignored = new WithContextClassLoader(getClass().getClassLoader())) {
149+
return new KubernetesClientBuilder().withConfig(builder.build()).build();
150+
}
148151
}
149152
private String getProxyPasswordDecrypted(ProxyConfiguration p) {
150153
String passwordEncrypted = p.getPassword();
@@ -184,4 +187,19 @@ private static StandardCredentials resolveCredentials(@CheckForNull String crede
184187
}
185188
return c;
186189
}
190+
191+
private static class WithContextClassLoader implements AutoCloseable {
192+
193+
private final ClassLoader previousClassLoader;
194+
195+
public WithContextClassLoader(ClassLoader classLoader) {
196+
this.previousClassLoader = Thread.currentThread().getContextClassLoader();
197+
Thread.currentThread().setContextClassLoader(classLoader);
198+
}
199+
200+
@Override
201+
public void close() {
202+
Thread.currentThread().setContextClassLoader(previousClassLoader);
203+
}
204+
}
187205
}

0 commit comments

Comments
 (0)