thingsboard-aplcache
Changes
docker/cassandra/Makefile 2(+1 -1)
docker/cassandra-setup/Dockerfile 24(+24 -0)
docker/cassandra-setup/install.sh 33(+33 -0)
docker/cassandra-setup/Makefile 12(+12 -0)
docker/k8s/cassandra-setup.yaml 39(+39 -0)
docker/k8s/tb.yaml 18(+15 -3)
docker/tb.env 5(+3 -2)
docker/tb/Makefile 2(+1 -1)
docker/tb/run-application.sh 4(+2 -2)
Details
diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index e57018d..d080f84 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -115,7 +115,9 @@ cassandra:
# Thingsboard keyspace name
keyspace_name: "${CASSANDRA_KEYSPACE_NAME:thingsboard}"
# Specify node list
- url: "${CASSANDRA_URL:127.0.0.1:9042}"
+ host: "${CASSANDRA_HOST:127.0.0.1}"
+ # Specify node list
+ post: "${CASSANDRA_PORT:9042}"
# Enable/disable secure connection
ssl: "${CASSANDRA_USE_SSL:false}"
# Enable/disable JMX
diff --git a/dao/src/main/java/org/thingsboard/server/dao/cassandra/AbstractCassandraCluster.java b/dao/src/main/java/org/thingsboard/server/dao/cassandra/AbstractCassandraCluster.java
index 2b9000d..d693802 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/cassandra/AbstractCassandraCluster.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/cassandra/AbstractCassandraCluster.java
@@ -44,7 +44,7 @@ public abstract class AbstractCassandraCluster {
@Value("${cassandra.cluster_name}")
private String clusterName;
- @Value("${cassandra.url}")
+ @Value("${cassandra.host}:${cassandra.port}")
private String url;
@Value("${cassandra.compression}")
private String compression;
diff --git a/dao/src/test/resources/cassandra-test.properties b/dao/src/test/resources/cassandra-test.properties
index 82fcbe1..b9e2734 100644
--- a/dao/src/test/resources/cassandra-test.properties
+++ b/dao/src/test/resources/cassandra-test.properties
@@ -2,7 +2,9 @@ cassandra.cluster_name=Thingsboard Cluster
cassandra.keyspace_name=thingsboard
-cassandra.url=127.0.0.1:9142
+cassandra.host=127.0.0.1
+
+cassandra.port=9142
cassandra.ssl=false
docker/cassandra/Makefile 2(+1 -1)
diff --git a/docker/cassandra/Makefile b/docker/cassandra/Makefile
index f277e9e..ae82253 100644
--- a/docker/cassandra/Makefile
+++ b/docker/cassandra/Makefile
@@ -7,4 +7,4 @@ build:
push: build
docker push ${PROJECT}/${APP}:${VERSION}
- docker push ${PROJECT}/${APP}:latest
+ docker push ${PROJECT}/${APP}:latest
docker/cassandra-setup/Dockerfile 24(+24 -0)
diff --git a/docker/cassandra-setup/Dockerfile b/docker/cassandra-setup/Dockerfile
new file mode 100644
index 0000000..f91f0f1
--- /dev/null
+++ b/docker/cassandra-setup/Dockerfile
@@ -0,0 +1,24 @@
+#
+# Copyright © 2016-2017 The Thingsboard Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM openjdk:8-jre
+
+ADD install.sh /install.sh
+ADD thingsboard.deb /thingsboard.deb
+
+RUN apt-get update \
+ && apt-get install -y nmap \
+ && chmod +x /install.sh
docker/cassandra-setup/install.sh 33(+33 -0)
diff --git a/docker/cassandra-setup/install.sh b/docker/cassandra-setup/install.sh
new file mode 100755
index 0000000..87aaeed
--- /dev/null
+++ b/docker/cassandra-setup/install.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
+# Copyright © 2016-2017 The Thingsboard Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+dpkg -i /thingsboard.deb
+
+until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open"
+do
+ echo "Wait for cassandra db to start..."
+ sleep 10
+done
+
+echo "Creating 'Thingsboard' schema and system data..."
+if [ "$ADD_DEMO_DATA" == "true" ]; then
+ echo "plus demo data..."
+ /usr/share/thingsboard/bin/install/install.sh --loadDemo
+elif [ "$ADD_DEMO_DATA" == "false" ]; then
+ /usr/share/thingsboard/bin/install/install.sh
+fi
docker/cassandra-setup/Makefile 12(+12 -0)
diff --git a/docker/cassandra-setup/Makefile b/docker/cassandra-setup/Makefile
new file mode 100644
index 0000000..635b92f
--- /dev/null
+++ b/docker/cassandra-setup/Makefile
@@ -0,0 +1,12 @@
+VERSION=1.2.4
+PROJECT=thingsboard
+APP=cassandra-setup
+
+build:
+ cp ../../application/target/thingsboard.deb .
+ docker build --pull -t ${PROJECT}/${APP}:${VERSION} -t ${PROJECT}/${APP}:latest .
+ rm thingsboard.deb
+
+push: build
+ docker push ${PROJECT}/${APP}:${VERSION}
+ docker push ${PROJECT}/${APP}:latest
docker/k8s/cassandra-setup.yaml 39(+39 -0)
diff --git a/docker/k8s/cassandra-setup.yaml b/docker/k8s/cassandra-setup.yaml
new file mode 100644
index 0000000..996ab12
--- /dev/null
+++ b/docker/k8s/cassandra-setup.yaml
@@ -0,0 +1,39 @@
+#
+# Copyright © 2016-2017 The Thingsboard Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+apiVersion: v1
+kind: Pod
+metadata:
+ name: cassandra-setup
+spec:
+ containers:
+ - name: cassandra-setup
+ imagePullPolicy: Always
+ image: thingsboard/cassandra-setup:1.2.4
+ env:
+ - name: ADD_DEMO_DATA
+ value: "true"
+ - name : CASSANDRA_HOST
+ value: "cassandra-headless"
+ - name : CASSANDRA_PORT
+ value: "9042"
+ - name : DATABASE_TYPE
+ value: "cassandra"
+ command:
+ - sh
+ - -c
+ - /install.sh
+ restartPolicy: Never
docker/k8s/tb.yaml 18(+15 -3)
diff --git a/docker/k8s/tb.yaml b/docker/k8s/tb.yaml
index 45f987f..be22309 100644
--- a/docker/k8s/tb.yaml
+++ b/docker/k8s/tb.yaml
@@ -50,7 +50,9 @@ metadata:
data:
zookeeper.enabled: "true"
zookeeper.url: "zk-headless"
- cassandra.url: "cassandra-headless:9042"
+ cassandra.host: "cassandra-headless"
+ cassandra.port: "9042"
+ database.type: "cassandra"
---
apiVersion: apps/v1beta1
kind: StatefulSet
@@ -100,11 +102,21 @@ spec:
configMapKeyRef:
name: tb-config
key: zookeeper.url
- - name : CASSANDRA_URL
+ - name : CASSANDRA_HOST
valueFrom:
configMapKeyRef:
name: tb-config
- key: cassandra.url
+ key: cassandra.host
+ - name : CASSANDRA_PORT
+ valueFrom:
+ configMapKeyRef:
+ name: tb-config
+ key: cassandra.port
+ - name: DATABASE_TYPE
+ valueFrom:
+ configMapKeyRef:
+ name: tb-config
+ key: database.type
- name : RPC_HOST
valueFrom:
fieldRef:
docker/tb.env 5(+3 -2)
diff --git a/docker/tb.env b/docker/tb.env
index c5d77c0..89a7dda 100644
--- a/docker/tb.env
+++ b/docker/tb.env
@@ -8,10 +8,11 @@ COAP_BIND_PORT=5683
ZOOKEEPER_URL=zk:2181
# type of database to use: sql[DEFAULT] or cassandra
-DATABASE_TYPE=sql
+DATABASE_TYPE=cassandra
# cassandra db config
-CASSANDRA_URL=cassandra:9042
+CASSANDRA_HOST=cassandra
+CASSANDRA_PORT=9042
# postgres db config
# SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect
docker/tb/Makefile 2(+1 -1)
diff --git a/docker/tb/Makefile b/docker/tb/Makefile
index b12e5a6..267a166 100644
--- a/docker/tb/Makefile
+++ b/docker/tb/Makefile
@@ -9,4 +9,4 @@ build:
push: build
docker push ${PROJECT}/${APP}:${VERSION}
- docker push ${PROJECT}/${APP}:latest
+ docker push ${PROJECT}/${APP}:latest
docker/tb/run-application.sh 4(+2 -2)
diff --git a/docker/tb/run-application.sh b/docker/tb/run-application.sh
index 274e255..783b35b 100755
--- a/docker/tb/run-application.sh
+++ b/docker/tb/run-application.sh
@@ -19,7 +19,7 @@
dpkg -i /thingsboard.deb
if [ "$DATABASE_TYPE" == "cassandra" ]; then
- until nmap cassandra -p 9042 | grep "9042/tcp open"
+ until nmap $CASSANDRA_HOST -p $CASSANDRA_PORT | grep "$CASSANDRA_PORT/tcp open"
do
echo "Wait for cassandra db to start..."
sleep 10
@@ -39,7 +39,7 @@ fi
if [ "$ADD_SCHEMA_AND_SYSTEM_DATA" == "true" ]; then
echo "Creating 'Thingsboard' schema and system data..."
if [ "$ADD_DEMO_DATA" == "true" ]; then
- echo "Adding demo data..."
+ echo "plus demo data..."
/usr/share/thingsboard/bin/install/install.sh --loadDemo
elif [ "$ADD_DEMO_DATA" == "false" ]; then
/usr/share/thingsboard/bin/install/install.sh