Skip to content

Commit a47d6d9

Browse files
committed
Add relative path loading for certificates.
1 parent 7494c63 commit a47d6d9

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

util/src/main/java/io/kubernetes/client/util/ClientBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public static ClientBuilder kubeconfig(KubeConfig config) throws IOException {
265265
}
266266

267267
final byte[] caBytes =
268-
KubeConfig.getDataOrFile(
268+
config.getDataOrFileRelative(
269269
config.getCertificateAuthorityData(), config.getCertificateAuthorityFile());
270270
if (caBytes != null) {
271271
builder.setCertificateAuthority(caBytes);

util/src/main/java/io/kubernetes/client/util/KubeConfig.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,15 @@ private static Map<String, Object> findObject(ArrayList<Object> list, String nam
395395
return null;
396396
}
397397

398-
public static byte[] getDataOrFile(final String data, final String file) throws IOException {
398+
public byte[] getDataOrFileRelative(final String data, final String path) throws IOException {
399+
String resolvedPath = path;
400+
if (resolvedPath != null && this.file != null) {
401+
resolvedPath = this.file.toPath().getParent().resolve(path).normalize().toString();
402+
}
403+
return getDataOrFile(data, resolvedPath);
404+
}
405+
406+
private static byte[] getDataOrFile(final String data, final String file) throws IOException {
399407
if (data != null) {
400408
return Base64.decodeBase64(data);
401409
}

util/src/main/java/io/kubernetes/client/util/credentials/KubeconfigAuthentication.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ public class KubeconfigAuthentication implements Authentication {
2525

2626
public KubeconfigAuthentication(final KubeConfig config) throws IOException {
2727
this.clientCert =
28-
KubeConfig.getDataOrFile(
28+
config.getDataOrFileRelative(
2929
config.getClientCertificateData(), config.getClientCertificateFile());
30-
this.clientKey = KubeConfig.getDataOrFile(config.getClientKeyData(), config.getClientKeyFile());
30+
this.clientKey =
31+
config.getDataOrFileRelative(config.getClientKeyData(), config.getClientKeyFile());
3132
this.username = config.getUsername();
3233
this.password = config.getPassword();
3334
this.token = config.getAccessToken();

0 commit comments

Comments
 (0)