diff --git a/cassandra/cassandra-controller.yaml b/cassandra/cassandra-controller.yaml
index b28bd61a..1e10c503 100644
--- a/cassandra/cassandra-controller.yaml
+++ b/cassandra/cassandra-controller.yaml
@@ -24,7 +24,7 @@ spec:
value: 512M
- name: HEAP_NEWSIZE
value: 100M
- image: "kubernetes/cassandra:v2"
+ image: gcr.io/google_containers/cassandra:v3
name: cassandra
ports:
- containerPort: 9042
diff --git a/cassandra/cassandra.yaml b/cassandra/cassandra.yaml
index c71e4de0..f921db6e 100644
--- a/cassandra/cassandra.yaml
+++ b/cassandra/cassandra.yaml
@@ -10,8 +10,8 @@ spec:
- /run.sh
resources:
limits:
- cpu: "1"
- image: kubernetes/cassandra:v2
+ cpu: "1"
+ image: gcr.io/google_containers/cassandra:v3
name: cassandra
ports:
- name: cql
diff --git a/cassandra/image/kubernetes-cassandra.jar b/cassandra/image/kubernetes-cassandra.jar
index faf86c69..e48410ac 100644
Binary files a/cassandra/image/kubernetes-cassandra.jar and b/cassandra/image/kubernetes-cassandra.jar differ
diff --git a/cassandra/java/pom.xml b/cassandra/java/pom.xml
index cf187fa0..4a20149b 100644
--- a/cassandra/java/pom.xml
+++ b/cassandra/java/pom.xml
@@ -5,6 +5,16 @@
0.0.2
src
+
+
+ maven-compiler-plugin
+ 2.3.2
+
+ 1.7
+ 1.7
+
+
+
diff --git a/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java b/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java
index 5ad92b7a..e479b323 100644
--- a/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java
+++ b/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java
@@ -21,9 +21,20 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class KubernetesSeedProvider implements SeedProvider {
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ static class Address {
+ public String IP;
+ }
+
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ static class Subset {
+ public List addresses;
+ }
+
@JsonIgnoreProperties(ignoreUnknown = true)
static class Endpoints {
- public String[] endpoints;
+ public List subsets;
}
private static String getEnvOrDefault(String var, String def) {
@@ -64,20 +75,21 @@ public class KubernetesSeedProvider implements SeedProvider {
String host = protocol + "://" + hostName + ":" + hostPort;
String serviceName = getEnvOrDefault("CASSANDRA_SERVICE", "cassandra");
- String path = "/api/v1beta3/endpoints/";
+ String path = "/api/v1beta3/namespaces/default/endpoints/";
try {
- URL url = new URL(host + path + serviceName);
- ObjectMapper mapper = new ObjectMapper();
- Endpoints endpoints = mapper.readValue(url, Endpoints.class);
- if (endpoints != null) {
- // Here is a problem point, endpoints.endpoints can be null in first node cases.
- if (endpoints.endpoints != null){
- for (String endpoint : endpoints.endpoints) {
- String[] parts = endpoint.split(":");
- list.add(InetAddress.getByName(parts[0]));
- }
+ URL url = new URL(host + path + serviceName);
+ ObjectMapper mapper = new ObjectMapper();
+ Endpoints endpoints = mapper.readValue(url, Endpoints.class);
+ if (endpoints != null) {
+ // Here is a problem point, endpoints.subsets can be null in first node cases.
+ if (endpoints.subsets != null && !endpoints.subsets.isEmpty()){
+ for (Subset subset : endpoints.subsets) {
+ for (Address address : subset.addresses) {
+ list.add(InetAddress.getByName(address.IP));
+ }
+ }
+ }
}
- }
} catch (IOException ex) {
logger.warn("Request to kubernetes apiserver failed");
}