Commit c38b61bbd1388dad06f66b666923fd9744ec3e3a

Authored by Volodymyr Babak
1 parent bd8d64de

Added kafka, zookeeper and redis as stateful services

... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <artifactId>application</artifactId>
... ...
... ... @@ -298,7 +298,7 @@ caffeine:
298 298 redis:
299 299 # standalone or cluster
300 300 connection:
301   - type: standalone
  301 + type: "${REDIS_CONNECTION_TYPE:standalone}"
302 302 standalone:
303 303 host: "${REDIS_HOST:localhost}"
304 304 port: "${REDIS_PORT:6379}"
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>common</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>common</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>common</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <artifactId>common</artifactId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>common</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard.common</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard.common</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard.common</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>common</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard.common</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>common</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.common</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <artifactId>dao</artifactId>
... ...
... ... @@ -31,6 +31,26 @@ Where:
31 31
32 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 54 Execute the following command to deploy resources:
35 55
36 56 `
... ...
... ... @@ -31,8 +31,8 @@ spec:
31 31 path: logback.xml
32 32 containers:
33 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 36 envFrom:
37 37 - configMapRef:
38 38 name: tb-node-db-config
... ...
... ... @@ -15,4 +15,4 @@
15 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 28 requests:
29 29 storage: 5Gi
30 30 ---
31   -apiVersion: extensions/v1beta1
  31 +apiVersion: apps/v1
32 32 kind: Deployment
33 33 metadata:
34 34 name: postgres
... ... @@ -36,6 +36,9 @@ metadata:
36 36 labels:
37 37 app: postgres
38 38 spec:
  39 + selector:
  40 + matchLabels:
  41 + app: postgres
39 42 template:
40 43 metadata:
41 44 labels:
... ... @@ -55,6 +58,8 @@ spec:
55 58 env:
56 59 - name: POSTGRES_DB
57 60 value: "thingsboard"
  61 + - name: POSTGRES_PASSWORD
  62 + value: "postgres"
58 63 - name: PGDATA
59 64 value: /var/lib/postgresql/data/pgdata
60 65 volumeMounts:
... ...
... ... @@ -13,162 +13,7 @@
13 13 # See the License for the specific language governing permissions and
14 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 17 kind: Deployment
173 18 metadata:
174 19 name: tb-js-executor
... ... @@ -185,8 +30,8 @@ spec:
185 30 spec:
186 31 containers:
187 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 35 env:
191 36 - name: REMOTE_JS_EVAL_REQUEST_TOPIC
192 37 value: "js.eval.requests"
... ... @@ -204,13 +49,13 @@ spec:
204 49 value: "1000"
205 50 restartPolicy: Always
206 51 ---
207   -apiVersion: extensions/v1beta1
  52 +apiVersion: apps/v1
208 53 kind: Deployment
209 54 metadata:
210 55 name: tb-node
211 56 namespace: thingsboard
212 57 spec:
213   - replicas: 2
  58 + replicas: 1
214 59 selector:
215 60 matchLabels:
216 61 app: tb-node
... ... @@ -224,60 +69,64 @@ spec:
224 69 configMap:
225 70 name: tb-node-config
226 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 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 130 restartPolicy: Always
282 131 ---
283 132 apiVersion: v1
... ... @@ -290,10 +139,10 @@ spec:
290 139 selector:
291 140 app: tb-node
292 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 146 kind: Deployment
298 147 metadata:
299 148 name: tb-mqtt-transport
... ... @@ -313,45 +162,45 @@ spec:
313 162 configMap:
314 163 name: tb-mqtt-transport-config
315 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 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 204 restartPolicy: Always
356 205 ---
357 206 apiVersion: v1
... ... @@ -364,11 +213,11 @@ spec:
364 213 selector:
365 214 app: tb-mqtt-transport
366 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 221 kind: Deployment
373 222 metadata:
374 223 name: tb-http-transport
... ... @@ -388,45 +237,45 @@ spec:
388 237 configMap:
389 238 name: tb-http-transport-config
390 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 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 279 restartPolicy: Always
431 280 ---
432 281 apiVersion: v1
... ... @@ -439,10 +288,10 @@ spec:
439 288 selector:
440 289 app: tb-http-transport
441 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 295 kind: Deployment
447 296 metadata:
448 297 name: tb-coap-transport
... ... @@ -462,38 +311,38 @@ spec:
462 311 configMap:
463 312 name: tb-coap-transport-config
464 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 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 346 restartPolicy: Always
498 347 ---
499 348 apiVersion: v1
... ... @@ -506,11 +355,11 @@ spec:
506 355 selector:
507 356 app: tb-coap-transport
508 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 363 kind: Deployment
515 364 metadata:
516 365 name: tb-web-ui
... ... @@ -526,33 +375,33 @@ spec:
526 375 app: tb-web-ui
527 376 spec:
528 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 405 restartPolicy: Always
557 406 ---
558 407 apiVersion: v1
... ... @@ -565,10 +414,10 @@ spec:
565 414 selector:
566 415 app: tb-web-ui
567 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 421 kind: Ingress
573 422 metadata:
574 423 name: tb-ingress
... ... @@ -579,30 +428,30 @@ metadata:
579 428 nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
580 429 spec:
581 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 ---
\ No newline at end of file
... ...
  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 21
22 22 <parent>
23 23 <groupId>org.thingsboard</groupId>
24   - <version>2.4.3</version>
  24 + <version>2.4.8</version>
25 25 <artifactId>msa</artifactId>
26 26 </parent>
27 27 <groupId>org.thingsboard.msa</groupId>
... ...
1 1 {
2 2 "name": "thingsboard-js-executor",
3 3 "private": true,
4   - "version": "2.4.3",
  4 + "version": "2.4.8",
5 5 "description": "ThingsBoard JavaScript Executor Microservice",
6 6 "main": "server.js",
7 7 "bin": "server.js",
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>msa</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <artifactId>msa</artifactId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>msa</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa</groupId>
... ...
... ... @@ -19,7 +19,7 @@ FROM thingsboard/openjdk8
19 19 RUN apt-get update
20 20 RUN apt-get install -y curl nmap procps
21 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 23 RUN apt-get update
24 24 RUN apt-get install -y cassandra cassandra-tools
25 25 RUN update-rc.d cassandra disable
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>msa</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard.msa</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard.msa</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard.msa</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>msa</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa</groupId>
... ...
1 1 {
2 2 "name": "thingsboard-web-ui",
3 3 "private": true,
4   - "version": "2.4.3",
  4 + "version": "2.4.8",
5 5 "description": "ThingsBoard Web UI Microservice",
6 6 "main": "server.js",
7 7 "bin": "server.js",
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>msa</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.msa</groupId>
... ...
... ... @@ -19,12 +19,12 @@
19 19 <modelVersion>4.0.0</modelVersion>
20 20 <parent>
21 21 <groupId>org.thingsboard</groupId>
22   - <version>2.4.3</version>
  22 + <version>2.4.8</version>
23 23 <artifactId>thingsboard</artifactId>
24 24 </parent>
25 25 <groupId>org.thingsboard</groupId>
26 26 <artifactId>netty-mqtt</artifactId>
27   - <version>2.4.3</version>
  27 + <version>2.4.8</version>
28 28 <packaging>jar</packaging>
29 29
30 30 <name>Netty MQTT Client</name>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <groupId>org.thingsboard</groupId>
22 22 <artifactId>thingsboard</artifactId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <packaging>pom</packaging>
25 25
26 26 <name>Thingsboard</name>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <artifactId>rule-engine</artifactId>
... ...
... ... @@ -22,7 +22,7 @@
22 22 <modelVersion>4.0.0</modelVersion>
23 23 <parent>
24 24 <groupId>org.thingsboard</groupId>
25   - <version>2.4.3</version>
  25 + <version>2.4.8</version>
26 26 <artifactId>rule-engine</artifactId>
27 27 </parent>
28 28 <groupId>org.thingsboard.rule-engine</groupId>
... ...
... ... @@ -22,7 +22,7 @@
22 22 <modelVersion>4.0.0</modelVersion>
23 23 <parent>
24 24 <groupId>org.thingsboard</groupId>
25   - <version>2.4.3</version>
  25 + <version>2.4.8</version>
26 26 <artifactId>rule-engine</artifactId>
27 27 </parent>
28 28 <groupId>org.thingsboard.rule-engine</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <artifactId>tools</artifactId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>transport</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard.transport</groupId>
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <artifactId>transport</artifactId>
... ...
1 1 {
2 2 "name": "thingsboard",
3 3 "private": true,
4   - "version": "2.4.3",
  4 + "version": "2.4.8",
5 5 "description": "ThingsBoard UI",
6 6 "licenses": [
7 7 {
... ...
... ... @@ -20,7 +20,7 @@
20 20 <modelVersion>4.0.0</modelVersion>
21 21 <parent>
22 22 <groupId>org.thingsboard</groupId>
23   - <version>2.4.3</version>
  23 + <version>2.4.8</version>
24 24 <artifactId>thingsboard</artifactId>
25 25 </parent>
26 26 <groupId>org.thingsboard</groupId>
... ...