From 9dc901735aa63c8f8678c640ea50318877823424 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Sat, 9 May 2015 16:35:28 -0700 Subject: [PATCH] update the KubernetesSeedProvider.java to v1beta3 --- examples/cassandra/cassandra-controller.yaml | 2 +- examples/cassandra/cassandra.yaml | 4 +- .../cassandra/image/kubernetes-cassandra.jar | Bin 4653 -> 6438 bytes examples/cassandra/java/pom.xml | 10 +++++ .../k8s/cassandra/KubernetesSeedProvider.java | 38 ++++++++++++------ 5 files changed, 38 insertions(+), 16 deletions(-) diff --git a/examples/cassandra/cassandra-controller.yaml b/examples/cassandra/cassandra-controller.yaml index b28bd61a624..1e10c503222 100644 --- a/examples/cassandra/cassandra-controller.yaml +++ b/examples/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/examples/cassandra/cassandra.yaml b/examples/cassandra/cassandra.yaml index c71e4de01be..f921db6edfb 100644 --- a/examples/cassandra/cassandra.yaml +++ b/examples/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/examples/cassandra/image/kubernetes-cassandra.jar b/examples/cassandra/image/kubernetes-cassandra.jar index faf86c690fee13f08f35f3d62cc827312e5ea721..e48410ac22290ec46716ba355e1d662009a6f149 100644 GIT binary patch literal 6438 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 DZjoWB literal 4653 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.0.2 src + + + maven-compiler-plugin + 2.3.2 + + 1.7 + 1.7 + + + diff --git a/examples/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java b/examples/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java index 5ad92b7a03c..e479b323aa0 100644 --- a/examples/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java +++ b/examples/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"); }