From f4b4ca2989d184212f8f9a171412389e9d23d84b Mon Sep 17 00:00:00 2001 From: Muhammed Uluyol Date: Sat, 26 Dec 2015 12:20:40 -0600 Subject: [PATCH] Correct permissions on cassandra run script and fix provider. We must handle null addresses in the cassandra seed provider. This can occur when there are 'notReadyAddresses' but no 'addresses'. While we're at it, update the makefile to build the jar. --- examples/cassandra/image/Dockerfile | 2 +- examples/cassandra/image/Makefile | 14 +++++++++----- .../cassandra/image/kubernetes-cassandra.jar | Bin 8549 -> 8554 bytes .../k8s/cassandra/KubernetesSeedProvider.java | 6 ++++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/examples/cassandra/image/Dockerfile b/examples/cassandra/image/Dockerfile index ca7f1566e2..2ebd62fa5a 100644 --- a/examples/cassandra/image/Dockerfile +++ b/examples/cassandra/image/Dockerfile @@ -19,7 +19,7 @@ COPY logback.xml /etc/cassandra/logback.xml COPY run.sh /run.sh COPY kubernetes-cassandra.jar /kubernetes-cassandra.jar -RUN chmod a+x /run.sh && \ +RUN chmod a+rx /run.sh && \ mkdir -p /cassandra_data/data && \ chown -R cassandra.cassandra /etc/cassandra /cassandra_data && \ chmod o+w -R /etc/cassandra /cassandra_data diff --git a/examples/cassandra/image/Makefile b/examples/cassandra/image/Makefile index e1c406beca..79497b6959 100644 --- a/examples/cassandra/image/Makefile +++ b/examples/cassandra/image/Makefile @@ -4,11 +4,15 @@ VERSION=v7 all: build -# TODO: build the jar and copy it in -build: - docker build -t gcr.io/google_containers/cassandra:${VERSION} . +kubernetes-cassandra.jar: ../java/* ../java/src/io/k8s/cassandra/*.java + cd ../java && mvn package + mv ../java/target/kubernetes-cassandra*.jar kubernetes-cassandra.jar + cd ../java && mvn clean + +build: kubernetes-cassandra.jar + docker build -t gcr.io/google_containers/cassandra:${VERSION} . push: build - gcloud docker push gcr.io/google_containers/cassandra:${VERSION} + gcloud docker push gcr.io/google_containers/cassandra:${VERSION} -.PHONY: all +.PHONY: all build push diff --git a/examples/cassandra/image/kubernetes-cassandra.jar b/examples/cassandra/image/kubernetes-cassandra.jar index e9220f4009a037bcb5352a79f9c90b9265f98fb4..cb9e9a2c63b31c5a686bf7ae5e6b847e5693c00e 100644 GIT binary patch delta 4390 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 z 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 X*8u*7Ghsfv9CkL3OjmBQoS*y$WWT*i diff --git a/examples/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java b/examples/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java index b194707d48..58978de96a 100644 --- a/examples/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java +++ b/examples/cassandra/java/src/io/k8s/cassandra/KubernetesSeedProvider.java @@ -129,8 +129,10 @@ public class KubernetesSeedProvider implements SeedProvider { // 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)); + if (subset.addresses != null && !subset.addresses.isEmpty()) { + for (Address address : subset.addresses) { + list.add(InetAddress.getByName(address.ip)); + } } } }