1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.kubernetes;
18
19 import org.apache.logging.log4j.Logger;
20 import org.apache.logging.log4j.status.StatusLogger;
21
22 import io.fabric8.kubernetes.client.Config;
23 import io.fabric8.kubernetes.client.ConfigBuilder;
24 import io.fabric8.kubernetes.client.DefaultKubernetesClient;
25 import io.fabric8.kubernetes.client.KubernetesClient;
26
27
28
29
30 public class KubernetesClientBuilder {
31
32 private static final Logger LOGGER = StatusLogger.getLogger();
33
34 public KubernetesClient createClient() {
35 Config config = kubernetesClientConfig();
36 return config != null ? new DefaultKubernetesClient(config) : null;
37 }
38
39 private Config kubernetesClientConfig() {
40 Config base = null;
41 try {
42 base = Config.autoConfigure(null);
43 } catch (Exception ex) {
44 if (ex instanceof NullPointerException) {
45 return null;
46 }
47 }
48 KubernetesClientProperties props = new KubernetesClientProperties(base);
49 Config properties = new ConfigBuilder(base)
50 .withApiVersion(props.getApiVersion())
51 .withCaCertData(props.getCaCertData())
52 .withCaCertFile(props.getCaCertFile())
53 .withClientCertData(props.getClientCertData())
54 .withClientCertFile(props.getClientCertFile())
55 .withClientKeyAlgo(props.getClientKeyAlgo())
56 .withClientKeyData(props.getClientKeyData())
57 .withClientKeyFile(props.getClientKeyFile())
58 .withClientKeyPassphrase(props.getClientKeyPassphrase())
59 .withConnectionTimeout(props.getConnectionTimeout())
60 .withHttpProxy(props.getHttpProxy())
61 .withHttpsProxy(props.getHttpsProxy())
62 .withMasterUrl(props.getMasterUrl())
63 .withNamespace(props.getNamespace())
64 .withNoProxy(props.getNoProxy())
65 .withPassword(props.getPassword())
66 .withProxyPassword(props.getProxyPassword())
67 .withProxyUsername(props.getProxyUsername())
68 .withRequestTimeout(props.getRequestTimeout())
69 .withRollingTimeout(props.getRollingTimeout())
70 .withTrustCerts(props.isTrustCerts())
71 .withUsername(props.getUsername())
72 .build();
73 return properties;
74 }
75 }