Commit c38b61bbd1388dad06f66b666923fd9744ec3e3a

Authored by Volodymyr Babak
1 parent bd8d64de

Added kafka, zookeeper and redis as stateful services

@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <artifactId>application</artifactId> 26 <artifactId>application</artifactId>
@@ -298,7 +298,7 @@ caffeine: @@ -298,7 +298,7 @@ caffeine:
298 redis: 298 redis:
299 # standalone or cluster 299 # standalone or cluster
300 connection: 300 connection:
301 - type: standalone 301 + type: "${REDIS_CONNECTION_TYPE:standalone}"
302 standalone: 302 standalone:
303 host: "${REDIS_HOST:localhost}" 303 host: "${REDIS_HOST:localhost}"
304 port: "${REDIS_PORT:6379}" 304 port: "${REDIS_PORT:6379}"
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>common</artifactId> 24 <artifactId>common</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common</groupId> 26 <groupId>org.thingsboard.common</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>common</artifactId> 24 <artifactId>common</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common</groupId> 26 <groupId>org.thingsboard.common</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>common</artifactId> 24 <artifactId>common</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common</groupId> 26 <groupId>org.thingsboard.common</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <artifactId>common</artifactId> 26 <artifactId>common</artifactId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>common</artifactId> 24 <artifactId>common</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common</groupId> 26 <groupId>org.thingsboard.common</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard.common</groupId> 22 <groupId>org.thingsboard.common</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common.transport</groupId> 26 <groupId>org.thingsboard.common.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard.common</groupId> 22 <groupId>org.thingsboard.common</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common.transport</groupId> 26 <groupId>org.thingsboard.common.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard.common</groupId> 22 <groupId>org.thingsboard.common</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common.transport</groupId> 26 <groupId>org.thingsboard.common.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>common</artifactId> 24 <artifactId>common</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common</groupId> 26 <groupId>org.thingsboard.common</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard.common</groupId> 22 <groupId>org.thingsboard.common</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common.transport</groupId> 26 <groupId>org.thingsboard.common.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>common</artifactId> 24 <artifactId>common</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.common</groupId> 26 <groupId>org.thingsboard.common</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <artifactId>dao</artifactId> 26 <artifactId>dao</artifactId>
@@ -31,6 +31,26 @@ Where: @@ -31,6 +31,26 @@ Where:
31 31
32 ## Running 32 ## Running
33 33
  34 +Execute the following command to deploy thirdparty resources:
  35 +
  36 +`
  37 +$ ./k8s-deploy-thirdparty.sh
  38 +`
  39 +
  40 +Get list of the running tb-redis pods and verify that all of them are in running state:
  41 +
  42 +`
  43 +$ kubectl get pods -l app=tb-redis
  44 +`
  45 +
  46 +Execute the following command to create redis cluster:
  47 +
  48 +`
  49 +$ kubectl exec -it tb-redis-0 -- redis-cli --cluster create --cluster-replicas 1 $(kubectl get pods -l app=tb-redis -o jsonpath='{range.items[*]}{.status.podIP}:6379 ')
  50 +`
  51 +
  52 +Type **'yes'** when prompted.
  53 +
34 Execute the following command to deploy resources: 54 Execute the following command to deploy resources:
35 55
36 ` 56 `
@@ -31,8 +31,8 @@ spec: @@ -31,8 +31,8 @@ spec:
31 path: logback.xml 31 path: logback.xml
32 containers: 32 containers:
33 - name: tb-db-setup 33 - name: tb-db-setup
34 - imagePullPolicy: Always  
35 - image: thingsboard/tb-node:latest 34 + imagePullPolicy: Never
  35 + image: thingsboard/tb-node:2.4.8
36 envFrom: 36 envFrom:
37 - configMapRef: 37 - configMapRef:
38 name: tb-node-db-config 38 name: tb-node-db-config
@@ -15,4 +15,4 @@ @@ -15,4 +15,4 @@
15 # limitations under the License. 15 # limitations under the License.
16 # 16 #
17 17
18 -kubectl -n thingsboard delete svc,sts,deploy,pv,pvc,cm,po,ing --all --include-uninitialized 18 +kubectl -n thingsboard delete svc,sts,deploy,pv,pvc,cm,po,ing --all
  1 +#!/bin/bash
  2 +#
  3 +# Copyright © 2016-2020 The Thingsboard Authors
  4 +#
  5 +# Licensed under the Apache License, Version 2.0 (the "License");
  6 +# you may not use this file except in compliance with the License.
  7 +# You may obtain a copy of the License at
  8 +#
  9 +# http://www.apache.org/licenses/LICENSE-2.0
  10 +#
  11 +# Unless required by applicable law or agreed to in writing, software
  12 +# distributed under the License is distributed on an "AS IS" BASIS,
  13 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 +# See the License for the specific language governing permissions and
  15 +# limitations under the License.
  16 +#
  17 +
  18 +set -e
  19 +
  20 +kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
  21 +kubectl delete -f thirdparty.yml
  1 +#!/bin/bash
  2 +#
  3 +# Copyright © 2016-2020 The Thingsboard Authors
  4 +#
  5 +# Licensed under the Apache License, Version 2.0 (the "License");
  6 +# you may not use this file except in compliance with the License.
  7 +# You may obtain a copy of the License at
  8 +#
  9 +# http://www.apache.org/licenses/LICENSE-2.0
  10 +#
  11 +# Unless required by applicable law or agreed to in writing, software
  12 +# distributed under the License is distributed on an "AS IS" BASIS,
  13 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 +# See the License for the specific language governing permissions and
  15 +# limitations under the License.
  16 +#
  17 +
  18 +set -e
  19 +
  20 +kubectl apply -f tb-namespace.yml
  21 +kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
  22 +kubectl apply -f thirdparty.yml
@@ -28,7 +28,7 @@ spec: @@ -28,7 +28,7 @@ spec:
28 requests: 28 requests:
29 storage: 5Gi 29 storage: 5Gi
30 --- 30 ---
31 -apiVersion: extensions/v1beta1 31 +apiVersion: apps/v1
32 kind: Deployment 32 kind: Deployment
33 metadata: 33 metadata:
34 name: postgres 34 name: postgres
@@ -36,6 +36,9 @@ metadata: @@ -36,6 +36,9 @@ metadata:
36 labels: 36 labels:
37 app: postgres 37 app: postgres
38 spec: 38 spec:
  39 + selector:
  40 + matchLabels:
  41 + app: postgres
39 template: 42 template:
40 metadata: 43 metadata:
41 labels: 44 labels:
@@ -55,6 +58,8 @@ spec: @@ -55,6 +58,8 @@ spec:
55 env: 58 env:
56 - name: POSTGRES_DB 59 - name: POSTGRES_DB
57 value: "thingsboard" 60 value: "thingsboard"
  61 + - name: POSTGRES_PASSWORD
  62 + value: "postgres"
58 - name: PGDATA 63 - name: PGDATA
59 value: /var/lib/postgresql/data/pgdata 64 value: /var/lib/postgresql/data/pgdata
60 volumeMounts: 65 volumeMounts:
@@ -13,162 +13,7 @@ @@ -13,162 +13,7 @@
13 # See the License for the specific language governing permissions and 13 # See the License for the specific language governing permissions and
14 # limitations under the License. 14 # limitations under the License.
15 # 15 #
16 -  
17 -apiVersion: extensions/v1beta1  
18 -kind: Deployment  
19 -metadata:  
20 - name: zookeeper  
21 - namespace: thingsboard  
22 -spec:  
23 - template:  
24 - metadata:  
25 - labels:  
26 - app: zookeeper  
27 - spec:  
28 - containers:  
29 - - name: server  
30 - imagePullPolicy: Always  
31 - image: zookeeper:3.5  
32 - ports:  
33 - - containerPort: 2181  
34 - readinessProbe:  
35 - periodSeconds: 5  
36 - tcpSocket:  
37 - port: 2181  
38 - livenessProbe:  
39 - periodSeconds: 5  
40 - tcpSocket:  
41 - port: 2181  
42 - env:  
43 - - name: ZOO_MY_ID  
44 - value: "1"  
45 - - name: ZOO_SERVERS  
46 - value: "server.1=0.0.0.0:2888:3888;0.0.0.0:2181"  
47 - restartPolicy: Always  
48 ----  
49 -apiVersion: v1  
50 -kind: Service  
51 -metadata:  
52 - name: zookeeper  
53 - namespace: thingsboard  
54 -spec:  
55 - type: ClusterIP  
56 - selector:  
57 - app: zookeeper  
58 - ports:  
59 - - name: zk-port  
60 - port: 2181  
61 ----  
62 -apiVersion: extensions/v1beta1  
63 -kind: Deployment  
64 -metadata:  
65 - name: tb-kafka  
66 - namespace: thingsboard  
67 -spec:  
68 - template:  
69 - metadata:  
70 - labels:  
71 - app: tb-kafka  
72 - spec:  
73 - containers:  
74 - - name: server  
75 - imagePullPolicy: Always  
76 - image: wurstmeister/kafka:2.12-2.2.1  
77 - ports:  
78 - - containerPort: 9092  
79 - readinessProbe:  
80 - periodSeconds: 20  
81 - tcpSocket:  
82 - port: 9092  
83 - livenessProbe:  
84 - periodSeconds: 5  
85 - tcpSocket:  
86 - port: 9092  
87 - env:  
88 - - name: KAFKA_ZOOKEEPER_CONNECT  
89 - value: "zookeeper:2181"  
90 - - name: KAFKA_LISTENERS  
91 - value: "INSIDE://:9093,OUTSIDE://:9092"  
92 - - name: KAFKA_ADVERTISED_LISTENERS  
93 - value: "INSIDE://:9093,OUTSIDE://tb-kafka:9092"  
94 - - name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP  
95 - value: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT"  
96 - - name: KAFKA_INTER_BROKER_LISTENER_NAME  
97 - value: "INSIDE"  
98 - - name: KAFKA_CREATE_TOPICS  
99 - value: "js.eval.requests:100:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600,tb.transport.api.requests:30:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600,tb.rule-engine:30:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600"  
100 - - name: KAFKA_AUTO_CREATE_TOPICS_ENABLE  
101 - value: "false"  
102 - - name: KAFKA_LOG_RETENTION_BYTES  
103 - value: "1073741824"  
104 - - name: KAFKA_LOG_SEGMENT_BYTES  
105 - value: "268435456"  
106 - - name: KAFKA_LOG_RETENTION_MS  
107 - value: "300000"  
108 - - name: KAFKA_LOG_CLEANUP_POLICY  
109 - value: "delete"  
110 - restartPolicy: Always  
111 ----  
112 -apiVersion: v1  
113 -kind: Service  
114 -metadata:  
115 - name: tb-kafka  
116 - namespace: thingsboard  
117 -spec:  
118 - type: ClusterIP  
119 - selector:  
120 - app: tb-kafka  
121 - ports:  
122 - - name: tb-kafka-port  
123 - port: 9092  
124 ----  
125 -apiVersion: extensions/v1beta1  
126 -kind: Deployment  
127 -metadata:  
128 - name: tb-redis  
129 - namespace: thingsboard  
130 -spec:  
131 - template:  
132 - metadata:  
133 - labels:  
134 - app: tb-redis  
135 - spec:  
136 - containers:  
137 - - name: server  
138 - imagePullPolicy: Always  
139 - image: redis:4.0  
140 - ports:  
141 - - containerPort: 6379  
142 - readinessProbe:  
143 - periodSeconds: 5  
144 - tcpSocket:  
145 - port: 6379  
146 - livenessProbe:  
147 - periodSeconds: 5  
148 - tcpSocket:  
149 - port: 6379  
150 - volumeMounts:  
151 - - mountPath: /data  
152 - name: redis-data  
153 - volumes:  
154 - - name: redis-data  
155 - emptyDir: {}  
156 - restartPolicy: Always  
157 ----  
158 -apiVersion: v1  
159 -kind: Service  
160 -metadata:  
161 - name: tb-redis  
162 - namespace: thingsboard  
163 -spec:  
164 - type: ClusterIP  
165 - selector:  
166 - app: tb-redis  
167 - ports:  
168 - - name: tb-redis-port  
169 - port: 6379  
170 ----  
171 -apiVersion: extensions/v1beta1 16 +apiVersion: apps/v1
172 kind: Deployment 17 kind: Deployment
173 metadata: 18 metadata:
174 name: tb-js-executor 19 name: tb-js-executor
@@ -185,8 +30,8 @@ spec: @@ -185,8 +30,8 @@ spec:
185 spec: 30 spec:
186 containers: 31 containers:
187 - name: server 32 - name: server
188 - imagePullPolicy: Always  
189 - image: thingsboard/tb-js-executor:latest 33 + imagePullPolicy: Never
  34 + image: thingsboard/tb-js-executor:2.4.8
190 env: 35 env:
191 - name: REMOTE_JS_EVAL_REQUEST_TOPIC 36 - name: REMOTE_JS_EVAL_REQUEST_TOPIC
192 value: "js.eval.requests" 37 value: "js.eval.requests"
@@ -204,13 +49,13 @@ spec: @@ -204,13 +49,13 @@ spec:
204 value: "1000" 49 value: "1000"
205 restartPolicy: Always 50 restartPolicy: Always
206 --- 51 ---
207 -apiVersion: extensions/v1beta1 52 +apiVersion: apps/v1
208 kind: Deployment 53 kind: Deployment
209 metadata: 54 metadata:
210 name: tb-node 55 name: tb-node
211 namespace: thingsboard 56 namespace: thingsboard
212 spec: 57 spec:
213 - replicas: 2 58 + replicas: 1
214 selector: 59 selector:
215 matchLabels: 60 matchLabels:
216 app: tb-node 61 app: tb-node
@@ -224,60 +69,64 @@ spec: @@ -224,60 +69,64 @@ spec:
224 configMap: 69 configMap:
225 name: tb-node-config 70 name: tb-node-config
226 items: 71 items:
227 - - key: conf  
228 - path: thingsboard.conf  
229 - - key: logback  
230 - path: logback.xml 72 + - key: conf
  73 + path: thingsboard.conf
  74 + - key: logback
  75 + path: logback.xml
231 containers: 76 containers:
232 - - name: server  
233 - imagePullPolicy: Always  
234 - image: thingsboard/tb-node:latest  
235 - ports:  
236 - - containerPort: 8080  
237 - name: http  
238 - - containerPort: 9001  
239 - name: rpc  
240 - env:  
241 - - name: RPC_HOST  
242 - valueFrom:  
243 - fieldRef:  
244 - fieldPath: status.podIP  
245 - - name: CLUSTER_NODE_ID  
246 - valueFrom:  
247 - fieldRef:  
248 - fieldPath: metadata.name  
249 - - name: TB_HOST  
250 - valueFrom:  
251 - fieldRef:  
252 - fieldPath: metadata.name  
253 - - name: ZOOKEEPER_ENABLED  
254 - value: "true"  
255 - - name: ZOOKEEPER_URL  
256 - value: "zookeeper:2181"  
257 - - name: TB_KAFKA_SERVERS  
258 - value: "tb-kafka:9092"  
259 - - name: JS_EVALUATOR  
260 - value: "remote"  
261 - - name: TRANSPORT_TYPE  
262 - value: "remote"  
263 - - name: CACHE_TYPE  
264 - value: "redis"  
265 - - name: REDIS_HOST  
266 - value: "tb-redis"  
267 - - name: HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE  
268 - value: "false"  
269 - envFrom:  
270 - - configMapRef:  
271 - name: tb-node-db-config  
272 - volumeMounts:  
273 - - mountPath: /config  
274 - name: tb-node-config  
275 - livenessProbe:  
276 - httpGet:  
277 - path: /login  
278 - port: http  
279 - initialDelaySeconds: 120  
280 - timeoutSeconds: 10 77 + - name: server
  78 + imagePullPolicy: Never
  79 + image: thingsboard/tb-node:2.4.8
  80 + ports:
  81 + - containerPort: 8080
  82 + name: http
  83 + - containerPort: 9001
  84 + name: rpc
  85 + env:
  86 + - name: RPC_HOST
  87 + valueFrom:
  88 + fieldRef:
  89 + fieldPath: status.podIP
  90 + - name: CLUSTER_NODE_ID
  91 + valueFrom:
  92 + fieldRef:
  93 + fieldPath: metadata.name
  94 + - name: TB_HOST
  95 + valueFrom:
  96 + fieldRef:
  97 + fieldPath: metadata.name
  98 + - name: ZOOKEEPER_ENABLED
  99 + value: "true"
  100 + - name: ZOOKEEPER_URL
  101 + value: "zookeeper:2181"
  102 + - name: TB_KAFKA_SERVERS
  103 + value: "tb-kafka:9092"
  104 + - name: JS_EVALUATOR
  105 + value: "remote"
  106 + - name: TRANSPORT_TYPE
  107 + value: "remote"
  108 + - name: CACHE_TYPE
  109 + value: "redis"
  110 + - name: REDIS_HOST
  111 + value: "tb-redis"
  112 + - name: REDIS_CONNECTION_TYPE
  113 + value: "cluster"
  114 + - name: REDIS_NODES
  115 + value: "tb-redis:6379"
  116 + - name: HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE
  117 + value: "false"
  118 + envFrom:
  119 + - configMapRef:
  120 + name: tb-node-db-config
  121 + volumeMounts:
  122 + - mountPath: /config
  123 + name: tb-node-config
  124 + livenessProbe:
  125 + httpGet:
  126 + path: /login
  127 + port: http
  128 + initialDelaySeconds: 120
  129 + timeoutSeconds: 10
281 restartPolicy: Always 130 restartPolicy: Always
282 --- 131 ---
283 apiVersion: v1 132 apiVersion: v1
@@ -290,10 +139,10 @@ spec: @@ -290,10 +139,10 @@ spec:
290 selector: 139 selector:
291 app: tb-node 140 app: tb-node
292 ports: 141 ports:
293 - - port: 8080  
294 - name: http 142 + - port: 8080
  143 + name: http
295 --- 144 ---
296 -apiVersion: extensions/v1beta1 145 +apiVersion: apps/v1
297 kind: Deployment 146 kind: Deployment
298 metadata: 147 metadata:
299 name: tb-mqtt-transport 148 name: tb-mqtt-transport
@@ -313,45 +162,45 @@ spec: @@ -313,45 +162,45 @@ spec:
313 configMap: 162 configMap:
314 name: tb-mqtt-transport-config 163 name: tb-mqtt-transport-config
315 items: 164 items:
316 - - key: conf  
317 - path: tb-mqtt-transport.conf  
318 - - key: logback  
319 - path: logback.xml 165 + - key: conf
  166 + path: tb-mqtt-transport.conf
  167 + - key: logback
  168 + path: logback.xml
320 containers: 169 containers:
321 - - name: server  
322 - imagePullPolicy: Always  
323 - image: thingsboard/tb-mqtt-transport:latest  
324 - ports:  
325 - - containerPort: 1883  
326 - name: mqtt  
327 - env:  
328 - - name: CLUSTER_NODE_ID  
329 - valueFrom:  
330 - fieldRef:  
331 - fieldPath: metadata.name  
332 - - name: TB_HOST  
333 - valueFrom:  
334 - fieldRef:  
335 - fieldPath: metadata.name  
336 - - name: MQTT_BIND_ADDRESS  
337 - value: "0.0.0.0"  
338 - - name: MQTT_BIND_PORT  
339 - value: "1883"  
340 - - name: MQTT_TIMEOUT  
341 - value: "10000"  
342 - - name: TB_KAFKA_SERVERS  
343 - value: "tb-kafka:9092"  
344 - volumeMounts:  
345 - - mountPath: /config  
346 - name: tb-mqtt-transport-config  
347 - readinessProbe:  
348 - periodSeconds: 20  
349 - tcpSocket:  
350 - port: 1883  
351 - livenessProbe:  
352 - periodSeconds: 20  
353 - tcpSocket:  
354 - port: 1883 170 + - name: server
  171 + imagePullPolicy: Never
  172 + image: thingsboard/tb-mqtt-transport:2.4.8
  173 + ports:
  174 + - containerPort: 1883
  175 + name: mqtt
  176 + env:
  177 + - name: CLUSTER_NODE_ID
  178 + valueFrom:
  179 + fieldRef:
  180 + fieldPath: metadata.name
  181 + - name: TB_HOST
  182 + valueFrom:
  183 + fieldRef:
  184 + fieldPath: metadata.name
  185 + - name: MQTT_BIND_ADDRESS
  186 + value: "0.0.0.0"
  187 + - name: MQTT_BIND_PORT
  188 + value: "1883"
  189 + - name: MQTT_TIMEOUT
  190 + value: "10000"
  191 + - name: TB_KAFKA_SERVERS
  192 + value: "tb-kafka:9092"
  193 + volumeMounts:
  194 + - mountPath: /config
  195 + name: tb-mqtt-transport-config
  196 + readinessProbe:
  197 + periodSeconds: 20
  198 + tcpSocket:
  199 + port: 1883
  200 + livenessProbe:
  201 + periodSeconds: 20
  202 + tcpSocket:
  203 + port: 1883
355 restartPolicy: Always 204 restartPolicy: Always
356 --- 205 ---
357 apiVersion: v1 206 apiVersion: v1
@@ -364,11 +213,11 @@ spec: @@ -364,11 +213,11 @@ spec:
364 selector: 213 selector:
365 app: tb-mqtt-transport 214 app: tb-mqtt-transport
366 ports: 215 ports:
367 - - port: 1883  
368 - targetPort: 1883  
369 - name: mqtt 216 + - port: 1883
  217 + targetPort: 1883
  218 + name: mqtt
370 --- 219 ---
371 -apiVersion: extensions/v1beta1 220 +apiVersion: apps/v1
372 kind: Deployment 221 kind: Deployment
373 metadata: 222 metadata:
374 name: tb-http-transport 223 name: tb-http-transport
@@ -388,45 +237,45 @@ spec: @@ -388,45 +237,45 @@ spec:
388 configMap: 237 configMap:
389 name: tb-http-transport-config 238 name: tb-http-transport-config
390 items: 239 items:
391 - - key: conf  
392 - path: tb-http-transport.conf  
393 - - key: logback  
394 - path: logback.xml 240 + - key: conf
  241 + path: tb-http-transport.conf
  242 + - key: logback
  243 + path: logback.xml
395 containers: 244 containers:
396 - - name: server  
397 - imagePullPolicy: Always  
398 - image: thingsboard/tb-http-transport:latest  
399 - ports:  
400 - - containerPort: 8080  
401 - name: http  
402 - env:  
403 - - name: CLUSTER_NODE_ID  
404 - valueFrom:  
405 - fieldRef:  
406 - fieldPath: metadata.name  
407 - - name: TB_HOST  
408 - valueFrom:  
409 - fieldRef:  
410 - fieldPath: metadata.name  
411 - - name: HTTP_BIND_ADDRESS  
412 - value: "0.0.0.0"  
413 - - name: HTTP_BIND_PORT  
414 - value: "8080"  
415 - - name: HTTP_REQUEST_TIMEOUT  
416 - value: "60000"  
417 - - name: TB_KAFKA_SERVERS  
418 - value: "tb-kafka:9092"  
419 - volumeMounts:  
420 - - mountPath: /config  
421 - name: tb-http-transport-config  
422 - readinessProbe:  
423 - periodSeconds: 20  
424 - tcpSocket:  
425 - port: 8080  
426 - livenessProbe:  
427 - periodSeconds: 20  
428 - tcpSocket:  
429 - port: 8080 245 + - name: server
  246 + imagePullPolicy: Never
  247 + image: thingsboard/tb-http-transport:2.4.8
  248 + ports:
  249 + - containerPort: 8080
  250 + name: http
  251 + env:
  252 + - name: CLUSTER_NODE_ID
  253 + valueFrom:
  254 + fieldRef:
  255 + fieldPath: metadata.name
  256 + - name: TB_HOST
  257 + valueFrom:
  258 + fieldRef:
  259 + fieldPath: metadata.name
  260 + - name: HTTP_BIND_ADDRESS
  261 + value: "0.0.0.0"
  262 + - name: HTTP_BIND_PORT
  263 + value: "8080"
  264 + - name: HTTP_REQUEST_TIMEOUT
  265 + value: "60000"
  266 + - name: TB_KAFKA_SERVERS
  267 + value: "tb-kafka:9092"
  268 + volumeMounts:
  269 + - mountPath: /config
  270 + name: tb-http-transport-config
  271 + readinessProbe:
  272 + periodSeconds: 20
  273 + tcpSocket:
  274 + port: 8080
  275 + livenessProbe:
  276 + periodSeconds: 20
  277 + tcpSocket:
  278 + port: 8080
430 restartPolicy: Always 279 restartPolicy: Always
431 --- 280 ---
432 apiVersion: v1 281 apiVersion: v1
@@ -439,10 +288,10 @@ spec: @@ -439,10 +288,10 @@ spec:
439 selector: 288 selector:
440 app: tb-http-transport 289 app: tb-http-transport
441 ports: 290 ports:
442 - - port: 8080  
443 - name: http 291 + - port: 8080
  292 + name: http
444 --- 293 ---
445 -apiVersion: extensions/v1beta1 294 +apiVersion: apps/v1
446 kind: Deployment 295 kind: Deployment
447 metadata: 296 metadata:
448 name: tb-coap-transport 297 name: tb-coap-transport
@@ -462,38 +311,38 @@ spec: @@ -462,38 +311,38 @@ spec:
462 configMap: 311 configMap:
463 name: tb-coap-transport-config 312 name: tb-coap-transport-config
464 items: 313 items:
465 - - key: conf  
466 - path: tb-coap-transport.conf  
467 - - key: logback  
468 - path: logback.xml 314 + - key: conf
  315 + path: tb-coap-transport.conf
  316 + - key: logback
  317 + path: logback.xml
469 containers: 318 containers:
470 - - name: server  
471 - imagePullPolicy: Always  
472 - image: thingsboard/tb-coap-transport:latest  
473 - ports:  
474 - - containerPort: 5683  
475 - name: coap  
476 - protocol: UDP  
477 - env:  
478 - - name: CLUSTER_NODE_ID  
479 - valueFrom:  
480 - fieldRef:  
481 - fieldPath: metadata.name  
482 - - name: TB_HOST  
483 - valueFrom:  
484 - fieldRef:  
485 - fieldPath: metadata.name  
486 - - name: COAP_BIND_ADDRESS  
487 - value: "0.0.0.0"  
488 - - name: COAP_BIND_PORT  
489 - value: "5683"  
490 - - name: COAP_TIMEOUT  
491 - value: "10000"  
492 - - name: TB_KAFKA_SERVERS  
493 - value: "tb-kafka:9092"  
494 - volumeMounts:  
495 - - mountPath: /config  
496 - name: tb-coap-transport-config 319 + - name: server
  320 + imagePullPolicy: Never
  321 + image: thingsboard/tb-coap-transport:2.4.8
  322 + ports:
  323 + - containerPort: 5683
  324 + name: coap
  325 + protocol: UDP
  326 + env:
  327 + - name: CLUSTER_NODE_ID
  328 + valueFrom:
  329 + fieldRef:
  330 + fieldPath: metadata.name
  331 + - name: TB_HOST
  332 + valueFrom:
  333 + fieldRef:
  334 + fieldPath: metadata.name
  335 + - name: COAP_BIND_ADDRESS
  336 + value: "0.0.0.0"
  337 + - name: COAP_BIND_PORT
  338 + value: "5683"
  339 + - name: COAP_TIMEOUT
  340 + value: "10000"
  341 + - name: TB_KAFKA_SERVERS
  342 + value: "tb-kafka:9092"
  343 + volumeMounts:
  344 + - mountPath: /config
  345 + name: tb-coap-transport-config
497 restartPolicy: Always 346 restartPolicy: Always
498 --- 347 ---
499 apiVersion: v1 348 apiVersion: v1
@@ -506,11 +355,11 @@ spec: @@ -506,11 +355,11 @@ spec:
506 selector: 355 selector:
507 app: tb-coap-transport 356 app: tb-coap-transport
508 ports: 357 ports:
509 - - port: 5683  
510 - name: coap  
511 - protocol: UDP 358 + - port: 5683
  359 + name: coap
  360 + protocol: UDP
512 --- 361 ---
513 -apiVersion: extensions/v1beta1 362 +apiVersion: apps/v1
514 kind: Deployment 363 kind: Deployment
515 metadata: 364 metadata:
516 name: tb-web-ui 365 name: tb-web-ui
@@ -526,33 +375,33 @@ spec: @@ -526,33 +375,33 @@ spec:
526 app: tb-web-ui 375 app: tb-web-ui
527 spec: 376 spec:
528 containers: 377 containers:
529 - - name: server  
530 - imagePullPolicy: Always  
531 - image: thingsboard/tb-web-ui:latest  
532 - ports:  
533 - - containerPort: 8080  
534 - name: http  
535 - env:  
536 - - name: HTTP_BIND_ADDRESS  
537 - value: "0.0.0.0"  
538 - - name: HTTP_BIND_PORT  
539 - value: "8080"  
540 - - name: TB_ENABLE_PROXY  
541 - value: "false"  
542 - - name: LOGGER_LEVEL  
543 - value: "info"  
544 - - name: LOG_FOLDER  
545 - value: "logs"  
546 - - name: LOGGER_FILENAME  
547 - value: "tb-web-ui-%DATE%.log"  
548 - - name: DOCKER_MODE  
549 - value: "true"  
550 - livenessProbe:  
551 - httpGet:  
552 - path: /index.html  
553 - port: http  
554 - initialDelaySeconds: 120  
555 - timeoutSeconds: 10 378 + - name: server
  379 + imagePullPolicy: Never
  380 + image: thingsboard/tb-web-ui:2.4.8
  381 + ports:
  382 + - containerPort: 8080
  383 + name: http
  384 + env:
  385 + - name: HTTP_BIND_ADDRESS
  386 + value: "0.0.0.0"
  387 + - name: HTTP_BIND_PORT
  388 + value: "8080"
  389 + - name: TB_ENABLE_PROXY
  390 + value: "false"
  391 + - name: LOGGER_LEVEL
  392 + value: "info"
  393 + - name: LOG_FOLDER
  394 + value: "logs"
  395 + - name: LOGGER_FILENAME
  396 + value: "tb-web-ui-%DATE%.log"
  397 + - name: DOCKER_MODE
  398 + value: "true"
  399 + livenessProbe:
  400 + httpGet:
  401 + path: /index.html
  402 + port: http
  403 + initialDelaySeconds: 120
  404 + timeoutSeconds: 10
556 restartPolicy: Always 405 restartPolicy: Always
557 --- 406 ---
558 apiVersion: v1 407 apiVersion: v1
@@ -565,10 +414,10 @@ spec: @@ -565,10 +414,10 @@ spec:
565 selector: 414 selector:
566 app: tb-web-ui 415 app: tb-web-ui
567 ports: 416 ports:
568 - - port: 8080  
569 - name: http 417 + - port: 8080
  418 + name: http
570 --- 419 ---
571 -apiVersion: extensions/v1beta1 420 +apiVersion: networking.k8s.io/v1beta1
572 kind: Ingress 421 kind: Ingress
573 metadata: 422 metadata:
574 name: tb-ingress 423 name: tb-ingress
@@ -579,30 +428,30 @@ metadata: @@ -579,30 +428,30 @@ metadata:
579 nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" 428 nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
580 spec: 429 spec:
581 rules: 430 rules:
582 - - http:  
583 - paths:  
584 - - path: /api/v1/.*  
585 - backend:  
586 - serviceName: tb-http-transport  
587 - servicePort: 8080  
588 - - path: /static/rulenode/.*  
589 - backend:  
590 - serviceName: tb-node  
591 - servicePort: 8080  
592 - - path: /static/.*  
593 - backend:  
594 - serviceName: tb-web-ui  
595 - servicePort: 8080  
596 - - path: /index.html.*  
597 - backend:  
598 - serviceName: tb-web-ui  
599 - servicePort: 8080  
600 - - path: /  
601 - backend:  
602 - serviceName: tb-web-ui  
603 - servicePort: 8080  
604 - - path: /.*  
605 - backend:  
606 - serviceName: tb-node  
607 - servicePort: 8080 431 + - http:
  432 + paths:
  433 + - path: /api/v1/.*
  434 + backend:
  435 + serviceName: tb-http-transport
  436 + servicePort: 8080
  437 + - path: /static/rulenode/.*
  438 + backend:
  439 + serviceName: tb-node
  440 + servicePort: 8080
  441 + - path: /static/.*
  442 + backend:
  443 + serviceName: tb-web-ui
  444 + servicePort: 8080
  445 + - path: /index.html.*
  446 + backend:
  447 + serviceName: tb-web-ui
  448 + servicePort: 8080
  449 + - path: /
  450 + backend:
  451 + serviceName: tb-web-ui
  452 + servicePort: 8080
  453 + - path: /.*
  454 + backend:
  455 + serviceName: tb-node
  456 + servicePort: 8080
608 --- 457 ---
  1 +#
  2 +# Copyright © 2016-2020 The Thingsboard Authors
  3 +#
  4 +# Licensed under the Apache License, Version 2.0 (the "License");
  5 +# you may not use this file except in compliance with the License.
  6 +# You may obtain a copy of the License at
  7 +#
  8 +# http://www.apache.org/licenses/LICENSE-2.0
  9 +#
  10 +# Unless required by applicable law or agreed to in writing, software
  11 +# distributed under the License is distributed on an "AS IS" BASIS,
  12 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 +# See the License for the specific language governing permissions and
  14 +# limitations under the License.
  15 +#
  16 +apiVersion: apps/v1
  17 +kind: StatefulSet
  18 +metadata:
  19 + name: zookeeper
  20 + namespace: thingsboard
  21 +spec:
  22 + serviceName: "zookeeper"
  23 + replicas: 3
  24 + podManagementPolicy: Parallel
  25 + selector:
  26 + matchLabels:
  27 + app: zookeeper
  28 + template:
  29 + metadata:
  30 + labels:
  31 + app: zookeeper
  32 + spec:
  33 + containers:
  34 + - name: zookeeper
  35 + imagePullPolicy: Always
  36 + image: zookeeper:3.5
  37 + ports:
  38 + - containerPort: 2181
  39 + name: client
  40 + - containerPort: 2888
  41 + name: server
  42 + - containerPort: 3888
  43 + name: election
  44 + readinessProbe:
  45 + periodSeconds: 60
  46 + tcpSocket:
  47 + port: 2181
  48 + livenessProbe:
  49 + periodSeconds: 60
  50 + tcpSocket:
  51 + port: 2181
  52 + env:
  53 + - name: ZOO_SERVERS
  54 + value: "server.0=zookeeper-0.zookeeper:2888:3888;2181 server.1=zookeeper-1.zookeeper:2888:3888;2181 server.2=zookeeper-2.zookeeper:2888:3888;2181"
  55 + - name: JVMFLAGS
  56 + value: "-Dzookeeper.electionPortBindRetry=0"
  57 + volumeMounts:
  58 + - name: data
  59 + mountPath: /data
  60 + readOnly: false
  61 + initContainers:
  62 + - command:
  63 + - /bin/bash
  64 + - -c
  65 + - |-
  66 + set -ex;
  67 + mkdir -p "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR";
  68 + chown "$ZOO_USER:$ZOO_USER" "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR"
  69 + if [[ ! -f "$ZOO_DATA_DIR/myid" ]]; then
  70 + echo $HOSTNAME| rev | cut -d "-" -f1 | rev > "$ZOO_DATA_DIR/myid"
  71 + fi
  72 + env:
  73 + - name: HOSTNAME
  74 + valueFrom:
  75 + fieldRef:
  76 + fieldPath: metadata.name
  77 + image: zookeeper:3.5
  78 + imagePullPolicy: IfNotPresent
  79 + name: zookeeper-init
  80 + securityContext:
  81 + runAsUser: 0
  82 + volumeMounts:
  83 + - name: data
  84 + mountPath: /data
  85 + readOnly: false
  86 + volumeClaimTemplates:
  87 + - metadata:
  88 + name: data
  89 + spec:
  90 + accessModes: [ "ReadWriteOnce" ]
  91 + resources:
  92 + requests:
  93 + storage: 1Gi
  94 +---
  95 +apiVersion: v1
  96 +kind: Service
  97 +metadata:
  98 + name: zookeeper
  99 + namespace: thingsboard
  100 +spec:
  101 + type: ClusterIP
  102 + ports:
  103 + - port: 2181
  104 + targetPort: 2181
  105 + name: client
  106 + - port: 2888
  107 + targetPort: 2888
  108 + name: server
  109 + - port: 3888
  110 + targetPort: 3888
  111 + name: election
  112 + selector:
  113 + app: zookeeper
  114 +---
  115 +apiVersion: apps/v1
  116 +kind: StatefulSet
  117 +metadata:
  118 + name: tb-kafka
  119 + namespace: thingsboard
  120 + labels:
  121 + app: tb-kafka
  122 +spec:
  123 + replicas: 3
  124 + podManagementPolicy: OrderedReady
  125 + serviceName: server
  126 + selector:
  127 + matchLabels:
  128 + app: tb-kafka
  129 + template:
  130 + metadata:
  131 + labels:
  132 + app: tb-kafka
  133 + spec:
  134 + containers:
  135 + - name: tb-kafka
  136 + imagePullPolicy: Always
  137 + image: wurstmeister/kafka:2.12-2.2.1
  138 + ports:
  139 + - containerPort: 9092
  140 + readinessProbe:
  141 + periodSeconds: 20
  142 + tcpSocket:
  143 + port: 9092
  144 + livenessProbe:
  145 + periodSeconds: 5
  146 + tcpSocket:
  147 + port: 9092
  148 + env:
  149 + - name: BROKER_ID_COMMAND
  150 + value: "hostname | cut -d'-' -f3"
  151 + - name: KAFKA_ZOOKEEPER_CONNECT
  152 + value: "zookeeper:2181"
  153 + - name: KAFKA_ADVERTISED_PORT
  154 + value: "9092"
  155 + - name: KAFKA_LISTENERS
  156 + value: "PLAINTEXT://:9092"
  157 + - name: KAFKA_CREATE_TOPICS
  158 + value: "js.eval.requests:100:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600,tb.transport.api.requests:30:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600,tb.rule-engine:30:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600"
  159 + - name: KAFKA_AUTO_CREATE_TOPICS_ENABLE
  160 + value: "false"
  161 + - name: KAFKA_LOG_RETENTION_BYTES
  162 + value: "1073741824"
  163 + - name: KAFKA_LOG_SEGMENT_BYTES
  164 + value: "268435456"
  165 + - name: KAFKA_LOG_RETENTION_MS
  166 + value: "300000"
  167 + - name: KAFKA_LOG_CLEANUP_POLICY
  168 + value: "delete"
  169 + - name: KAFKA_PORT
  170 + value: "9092"
  171 + - name: KAFKA_LOG_DIRS
  172 + value: "/kafka-logs"
  173 + volumeMounts:
  174 + - name: logs
  175 + mountPath: /kafka-logs
  176 + subPath: logs
  177 + volumeClaimTemplates:
  178 + - metadata:
  179 + name: logs
  180 + spec:
  181 + accessModes:
  182 + - ReadWriteOnce
  183 + resources:
  184 + requests:
  185 + storage: 10Gi
  186 +---
  187 +apiVersion: v1
  188 +kind: Service
  189 +metadata:
  190 + name: tb-kafka
  191 + namespace: thingsboard
  192 +spec:
  193 + type: ClusterIP
  194 + selector:
  195 + app: tb-kafka
  196 + ports:
  197 + - name: tb-kafka-port
  198 + port: 9092
  199 +---
  200 +apiVersion: v1
  201 +kind: ConfigMap
  202 +metadata:
  203 + name: tb-redis
  204 + namespace: thingsboard
  205 +data:
  206 + update-node.sh: |
  207 + #!/bin/sh
  208 + REDIS_NODES="/data/nodes.conf"
  209 + sed -i -e "/myself/ s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/${POD_IP}/" ${REDIS_NODES}
  210 + exec "$@"
  211 + redis.conf: |+
  212 + cluster-enabled yes
  213 + cluster-require-full-coverage no
  214 + cluster-node-timeout 15000
  215 + cluster-config-file /data/nodes.conf
  216 + cluster-migration-barrier 1
  217 + appendonly yes
  218 + protected-mode no
  219 +---
  220 +apiVersion: apps/v1
  221 +kind: StatefulSet
  222 +metadata:
  223 + name: tb-redis
  224 + namespace: thingsboard
  225 +spec:
  226 + serviceName: server
  227 + replicas: 6
  228 + selector:
  229 + matchLabels:
  230 + app: tb-redis
  231 + template:
  232 + metadata:
  233 + labels:
  234 + app: tb-redis
  235 + spec:
  236 + containers:
  237 + - name: redis
  238 + image: redis:5.0.1-alpine
  239 + ports:
  240 + - containerPort: 6379
  241 + name: client
  242 + - containerPort: 16379
  243 + name: gossip
  244 + command: ["/conf/update-node.sh", "redis-server", "/conf/redis.conf"]
  245 + env:
  246 + - name: POD_IP
  247 + valueFrom:
  248 + fieldRef:
  249 + fieldPath: status.podIP
  250 + volumeMounts:
  251 + - name: conf
  252 + mountPath: /conf
  253 + readOnly: false
  254 + - name: data
  255 + mountPath: /data
  256 + readOnly: false
  257 + volumes:
  258 + - name: conf
  259 + configMap:
  260 + name: tb-redis
  261 + defaultMode: 0755
  262 + volumeClaimTemplates:
  263 + - metadata:
  264 + name: data
  265 + spec:
  266 + accessModes: [ "ReadWriteOnce" ]
  267 + resources:
  268 + requests:
  269 + storage: 1Gi
  270 +---
  271 +apiVersion: v1
  272 +kind: Service
  273 +metadata:
  274 + name: tb-redis
  275 + namespace: thingsboard
  276 +spec:
  277 + type: ClusterIP
  278 + ports:
  279 + - port: 6379
  280 + targetPort: 6379
  281 + name: client
  282 + - port: 16379
  283 + targetPort: 16379
  284 + name: gossip
  285 + selector:
  286 + app: tb-redis
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 21
22 <parent> 22 <parent>
23 <groupId>org.thingsboard</groupId> 23 <groupId>org.thingsboard</groupId>
24 - <version>2.4.3</version> 24 + <version>2.4.8</version>
25 <artifactId>msa</artifactId> 25 <artifactId>msa</artifactId>
26 </parent> 26 </parent>
27 <groupId>org.thingsboard.msa</groupId> 27 <groupId>org.thingsboard.msa</groupId>
1 { 1 {
2 "name": "thingsboard-js-executor", 2 "name": "thingsboard-js-executor",
3 "private": true, 3 "private": true,
4 - "version": "2.4.3", 4 + "version": "2.4.8",
5 "description": "ThingsBoard JavaScript Executor Microservice", 5 "description": "ThingsBoard JavaScript Executor Microservice",
6 "main": "server.js", 6 "main": "server.js",
7 "bin": "server.js", 7 "bin": "server.js",
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>msa</artifactId> 24 <artifactId>msa</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa</groupId> 26 <groupId>org.thingsboard.msa</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <artifactId>msa</artifactId> 26 <artifactId>msa</artifactId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>msa</artifactId> 24 <artifactId>msa</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa</groupId> 26 <groupId>org.thingsboard.msa</groupId>
@@ -19,7 +19,7 @@ FROM thingsboard/openjdk8 @@ -19,7 +19,7 @@ FROM thingsboard/openjdk8
19 RUN apt-get update 19 RUN apt-get update
20 RUN apt-get install -y curl nmap procps 20 RUN apt-get install -y curl nmap procps
21 RUN echo 'deb http://www.apache.org/dist/cassandra/debian 311x main' | tee --append /etc/apt/sources.list.d/cassandra.list > /dev/null 21 RUN echo 'deb http://www.apache.org/dist/cassandra/debian 311x main' | tee --append /etc/apt/sources.list.d/cassandra.list > /dev/null
22 -RUN curl https://www.apache.org/dist/cassandra/KEYS | apt-key add - 22 +RUN curl -L https://www.apache.org/dist/cassandra/KEYS | apt-key add -
23 RUN apt-get update 23 RUN apt-get update
24 RUN apt-get install -y cassandra cassandra-tools 24 RUN apt-get install -y cassandra cassandra-tools
25 RUN update-rc.d cassandra disable 25 RUN update-rc.d cassandra disable
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>msa</artifactId> 24 <artifactId>msa</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa</groupId> 26 <groupId>org.thingsboard.msa</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard.msa</groupId> 22 <groupId>org.thingsboard.msa</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa.transport</groupId> 26 <groupId>org.thingsboard.msa.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard.msa</groupId> 22 <groupId>org.thingsboard.msa</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa.transport</groupId> 26 <groupId>org.thingsboard.msa.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard.msa</groupId> 22 <groupId>org.thingsboard.msa</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa.transport</groupId> 26 <groupId>org.thingsboard.msa.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>msa</artifactId> 24 <artifactId>msa</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa</groupId> 26 <groupId>org.thingsboard.msa</groupId>
1 { 1 {
2 "name": "thingsboard-web-ui", 2 "name": "thingsboard-web-ui",
3 "private": true, 3 "private": true,
4 - "version": "2.4.3", 4 + "version": "2.4.8",
5 "description": "ThingsBoard Web UI Microservice", 5 "description": "ThingsBoard Web UI Microservice",
6 "main": "server.js", 6 "main": "server.js",
7 "bin": "server.js", 7 "bin": "server.js",
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>msa</artifactId> 24 <artifactId>msa</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.msa</groupId> 26 <groupId>org.thingsboard.msa</groupId>
@@ -19,12 +19,12 @@ @@ -19,12 +19,12 @@
19 <modelVersion>4.0.0</modelVersion> 19 <modelVersion>4.0.0</modelVersion>
20 <parent> 20 <parent>
21 <groupId>org.thingsboard</groupId> 21 <groupId>org.thingsboard</groupId>
22 - <version>2.4.3</version> 22 + <version>2.4.8</version>
23 <artifactId>thingsboard</artifactId> 23 <artifactId>thingsboard</artifactId>
24 </parent> 24 </parent>
25 <groupId>org.thingsboard</groupId> 25 <groupId>org.thingsboard</groupId>
26 <artifactId>netty-mqtt</artifactId> 26 <artifactId>netty-mqtt</artifactId>
27 - <version>2.4.3</version> 27 + <version>2.4.8</version>
28 <packaging>jar</packaging> 28 <packaging>jar</packaging>
29 29
30 <name>Netty MQTT Client</name> 30 <name>Netty MQTT Client</name>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <groupId>org.thingsboard</groupId> 21 <groupId>org.thingsboard</groupId>
22 <artifactId>thingsboard</artifactId> 22 <artifactId>thingsboard</artifactId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <packaging>pom</packaging> 24 <packaging>pom</packaging>
25 25
26 <name>Thingsboard</name> 26 <name>Thingsboard</name>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <artifactId>rule-engine</artifactId> 26 <artifactId>rule-engine</artifactId>
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 <modelVersion>4.0.0</modelVersion> 22 <modelVersion>4.0.0</modelVersion>
23 <parent> 23 <parent>
24 <groupId>org.thingsboard</groupId> 24 <groupId>org.thingsboard</groupId>
25 - <version>2.4.3</version> 25 + <version>2.4.8</version>
26 <artifactId>rule-engine</artifactId> 26 <artifactId>rule-engine</artifactId>
27 </parent> 27 </parent>
28 <groupId>org.thingsboard.rule-engine</groupId> 28 <groupId>org.thingsboard.rule-engine</groupId>
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 <modelVersion>4.0.0</modelVersion> 22 <modelVersion>4.0.0</modelVersion>
23 <parent> 23 <parent>
24 <groupId>org.thingsboard</groupId> 24 <groupId>org.thingsboard</groupId>
25 - <version>2.4.3</version> 25 + <version>2.4.8</version>
26 <artifactId>rule-engine</artifactId> 26 <artifactId>rule-engine</artifactId>
27 </parent> 27 </parent>
28 <groupId>org.thingsboard.rule-engine</groupId> 28 <groupId>org.thingsboard.rule-engine</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <artifactId>tools</artifactId> 26 <artifactId>tools</artifactId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.transport</groupId> 26 <groupId>org.thingsboard.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.transport</groupId> 26 <groupId>org.thingsboard.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>transport</artifactId> 24 <artifactId>transport</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard.transport</groupId> 26 <groupId>org.thingsboard.transport</groupId>
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <artifactId>transport</artifactId> 26 <artifactId>transport</artifactId>
1 { 1 {
2 "name": "thingsboard", 2 "name": "thingsboard",
3 "private": true, 3 "private": true,
4 - "version": "2.4.3", 4 + "version": "2.4.8",
5 "description": "ThingsBoard UI", 5 "description": "ThingsBoard UI",
6 "licenses": [ 6 "licenses": [
7 { 7 {
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 <modelVersion>4.0.0</modelVersion> 20 <modelVersion>4.0.0</modelVersion>
21 <parent> 21 <parent>
22 <groupId>org.thingsboard</groupId> 22 <groupId>org.thingsboard</groupId>
23 - <version>2.4.3</version> 23 + <version>2.4.8</version>
24 <artifactId>thingsboard</artifactId> 24 <artifactId>thingsboard</artifactId>
25 </parent> 25 </parent>
26 <groupId>org.thingsboard</groupId> 26 <groupId>org.thingsboard</groupId>