diff --git a/cassandra/image/kubernetes-cassandra.jar b/cassandra/image/kubernetes-cassandra.jar
index 7d8c6a86..e0f62c4c 100644
Binary files a/cassandra/image/kubernetes-cassandra.jar and b/cassandra/image/kubernetes-cassandra.jar differ
diff --git a/cassandra/java/README.md b/cassandra/java/README.md
index adba2314..6e8c8aa2 100644
--- a/cassandra/java/README.md
+++ b/cassandra/java/README.md
@@ -43,6 +43,7 @@ The following environment variables may be used to override the default configur
| KUBERNETES_PORT_443_TCP_PORT | 443 | API port number |
| CASSANDRA_SERVICE | cassandra | Default service name for lookup |
| POD_NAMESPACE | default | Default pod service namespace |
+| K8S_ACCOUNT_TOKEN | /var/run/secrets/kubernetes.io/serviceaccount/token | Default path to service token |
# Using
diff --git a/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java b/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java
index df500842..9865e1ba 100644
--- a/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java
+++ b/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java
@@ -54,6 +54,7 @@ import java.util.Map;
*
CASSANDRA_SERVICE defaults to cassandra
* POD_NAMESPACE defaults to 'default'
* CASSANDRA_SERVICE_NUM_SEEDS defaults to 8 seeds
+ * K8S_ACCOUNT_TOKEN defaults to the path for the default token
*
*/
public class KubernetesSeedProvider implements SeedProvider {
@@ -107,10 +108,11 @@ public class KubernetesSeedProvider implements SeedProvider {
String path = String.format("/api/v1/namespaces/%s/endpoints/", podNamespace);
String seedSizeVar = getEnvOrDefault("CASSANDRA_SERVICE_NUM_SEEDS", "8");
Integer seedSize = Integer.valueOf(seedSizeVar);
+ String accountToken = getEnvOrDefault("K8S_ACCOUNT_TOKEN", "/var/run/secrets/kubernetes.io/serviceaccount/token");
List seeds = new ArrayList();
try {
- String token = getServiceAccountToken();
+ String token = getServiceAccountToken(accountToken);
SSLContext ctx = SSLContext.getInstance("SSL");
ctx.init(null, trustAll, new SecureRandom());
@@ -222,13 +224,12 @@ public class KubernetesSeedProvider implements SeedProvider {
return val;
}
- private static String getServiceAccountToken() throws IOException {
- String file = "/var/run/secrets/kubernetes.io/serviceaccount/token";
+ private static String getServiceAccountToken(String file) {
try {
return new String(Files.readAllBytes(Paths.get(file)));
} catch (IOException e) {
- logger.warn("unable to load service account token");
- throw e;
+ logger.warn("unable to load service account token" + file);
+ throw new RuntimeException("Unable to load services account token " + file);
}
}