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); } }