diff --git a/k8s/.env b/k8s/.env
deleted file mode 100644
index 4f0478683b..0000000000
--- a/k8s/.env
+++ /dev/null
@@ -1,8 +0,0 @@
-# Can be either basic (with single instance of Zookeeper, Kafka and Redis) or high-availability (with Zookeeper, Kafka and Redis in cluster modes).
-# According to the deployment type corresponding kubernetes resources will be deployed (see content of the directories ./basic and ./high-availability for details).
-DEPLOYMENT_TYPE=basic
-
-# Database used by ThingsBoard, can be either postgres (PostgreSQL) or hybrid (PostgreSQL for entities database and Cassandra for timeseries database).
-# According to the database type corresponding kubernetes resources will be deployed (see postgres.yml, cassandra.yml for details).
-DATABASE=postgres
-
diff --git a/k8s/README.md b/k8s/README.md
deleted file mode 100644
index 9d91c8c0e8..0000000000
--- a/k8s/README.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# Kubernetes resources configuration for ThingsBoard Microservices
-
-This folder containing scripts and Kubernetes resources configurations to run ThingsBoard in Microservices mode.
-
-## Prerequisites
-
-ThingsBoard Microservices run on the Kubernetes cluster.
-You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster.
-If you do not have a cluster already, you can create one by using [Minikube](https://kubernetes.io/docs/setup/minikube),
-or you can choose any other available [Kubernetes cluster deployment solutions](https://kubernetes.io/docs/setup/pick-right-solution/).
-
-### Enable ingress addon
-
-By default ingress addon is disabled in the Minikube, and available only in cluster providers.
-To enable ingress, please execute the following command:
-
-`
-$ minikube addons enable ingress
-`
-
-## Installation
-
-Before performing initial installation you can configure the type of database to be used with ThingsBoard and the type of deployment.
-To set database type change the value of `DATABASE` variable in `.env` file to one of the following:
-
-- `postgres` - use PostgreSQL database;
-- `hybrid` - use PostgreSQL for entities database and Cassandra for timeseries database;
-
-**NOTE**: According to the database type corresponding kubernetes resources will be deployed (see `postgres.yml`, `cassandra.yml` for details).
-
-To set deployment type change the value of `DEPLOYMENT_TYPE` variable in `.env` file to one of the following:
-
-- `basic` - startup with a single instance of Zookeeper, Kafka and Redis;
-- `high-availability` - startup with Zookeeper, Kafka, and Redis in cluster modes;
-
-**NOTE**: According to the deployment type corresponding kubernetes resources will be deployed (see the content of the directories `./basic` and `./high-availability` for details).
-
-Execute the following command to run the installation:
-
-`
-$ ./k8s-install-tb.sh --loadDemo
-`
-
-Where:
-
-- `--loadDemo` - optional argument. Whether to load additional demo data.
-
-## Running
-
-Execute the following command to deploy third-party resources:
-
-`
-$ ./k8s-deploy-thirdparty.sh
-`
-
-Type **'yes'** when prompted, if you are running ThingsBoard in `high-availability` `DEPLOYMENT_TYPE` for the first time and don't have configured Redis cluster.
-
-Execute the following command to deploy resources:
-
-`
-$ ./k8s-deploy-resources.sh
-`
-
-After a while when all resources will be successfully started you can open `http://{your-cluster-ip}` in your browser (for ex. `http://192.168.99.101`).
-You should see the ThingsBoard login page.
-
-Use the following default credentials:
-
-- **System Administrator**: sysadmin@thingsboard.org / sysadmin
-
-If you installed DataBase with demo data (using `--loadDemo` flag) you can also use the following credentials:
-
-- **Tenant Administrator**: tenant@thingsboard.org / tenant
-- **Customer User**: customer@thingsboard.org / customer
-
-In case of any issues, you can examine service logs for errors.
-For example to see ThingsBoard node logs execute the following commands:
-
-1) Get the list of the running tb-node pods:
-
-`
-$ kubectl get pods -l app=tb-node
-`
-
-2) Fetch logs of the tb-node pod:
-
-`
-$ kubectl logs -f [tb-node-pod-name]
-`
-
-Where:
-
-- `tb-node-pod-name` - tb-node pod name obtained from the list of the running tb-node pods.
-
-Or use `kubectl get pods` to see the state of all the pods.
-Or use `kubectl get services` to see the state of all the services.
-Or use `kubectl get deployments` to see the state of all the deployments.
-See [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) command reference for details.
-
-Execute the following command to delete all ThingsBoard microservices:
-
-`
-$ ./k8s-delete-resources.sh
-`
-
-Execute the following command to delete all third-party microservices:
-
-`
-$ ./k8s-delete-thirdparty.sh
-`
-
-Execute the following command to delete all resources (including database):
-
-`
-$ ./k8s-delete-all.sh
-`
-
-## Upgrading
-
-In case when database upgrade is needed, execute the following commands:
-
-```
-$ ./k8s-delete-resources.sh
-$ ./k8s-upgrade-tb.sh --fromVersion=[FROM_VERSION]
-$ ./k8s-deploy-resources.sh
-```
-
-Where:
-
-- `FROM_VERSION` - from which version upgrade should be started. See [Upgrade Instructions](https://thingsboard.io/docs/user-guide/install/upgrade-instructions) for valid `fromVersion` values.
diff --git a/k8s/basic/tb-node-cache-configmap.yml b/k8s/basic/tb-node-cache-configmap.yml
deleted file mode 100644
index 3a81044f0a..0000000000
--- a/k8s/basic/tb-node-cache-configmap.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-node-cache-config
- namespace: thingsboard
- labels:
- name: tb-node-cache-config
-data:
- CACHE_TYPE: redis
- REDIS_HOST: tb-redis
\ No newline at end of file
diff --git a/k8s/basic/thirdparty.yml b/k8s/basic/thirdparty.yml
deleted file mode 100644
index edba32532e..0000000000
--- a/k8s/basic/thirdparty.yml
+++ /dev/null
@@ -1,181 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: zookeeper
- namespace: thingsboard
-spec:
- selector:
- matchLabels:
- app: zookeeper
- template:
- metadata:
- labels:
- app: zookeeper
- spec:
- containers:
- - name: server
- imagePullPolicy: Always
- image: zookeeper:3.5
- ports:
- - containerPort: 2181
- readinessProbe:
- periodSeconds: 5
- tcpSocket:
- port: 2181
- livenessProbe:
- initialDelaySeconds: 15
- periodSeconds: 5
- tcpSocket:
- port: 2181
- env:
- - name: ZOO_MY_ID
- value: "1"
- - name: ZOO_SERVERS
- value: "server.1=0.0.0.0:2888:3888;0.0.0.0:2181"
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: zookeeper
- namespace: thingsboard
-spec:
- type: ClusterIP
- selector:
- app: zookeeper
- ports:
- - name: zk-port
- port: 2181
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-kafka
- namespace: thingsboard
-spec:
- selector:
- matchLabels:
- app: tb-kafka
- template:
- metadata:
- labels:
- app: tb-kafka
- spec:
- containers:
- - name: server
- imagePullPolicy: Always
- image: wurstmeister/kafka:2.12-2.2.1
- ports:
- - containerPort: 9092
- readinessProbe:
- periodSeconds: 20
- tcpSocket:
- port: 9092
- livenessProbe:
- initialDelaySeconds: 25
- periodSeconds: 5
- tcpSocket:
- port: 9092
- env:
- - name: KAFKA_ZOOKEEPER_CONNECT
- value: "zookeeper:2181"
- - name: KAFKA_LISTENERS
- value: "INSIDE://:9093,OUTSIDE://:9092"
- - name: KAFKA_ADVERTISED_LISTENERS
- value: "INSIDE://:9093,OUTSIDE://tb-kafka:9092"
- - name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
- value: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT"
- - name: KAFKA_INTER_BROKER_LISTENER_NAME
- value: "INSIDE"
- - name: KAFKA_CREATE_TOPICS
- 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"
- - name: KAFKA_AUTO_CREATE_TOPICS_ENABLE
- value: "false"
- - name: KAFKA_LOG_RETENTION_BYTES
- value: "1073741824"
- - name: KAFKA_LOG_SEGMENT_BYTES
- value: "268435456"
- - name: KAFKA_LOG_RETENTION_MS
- value: "300000"
- - name: KAFKA_LOG_CLEANUP_POLICY
- value: "delete"
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-kafka
- namespace: thingsboard
-spec:
- type: ClusterIP
- selector:
- app: tb-kafka
- ports:
- - name: tb-kafka-port
- port: 9092
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-redis
- namespace: thingsboard
-spec:
- selector:
- matchLabels:
- app: tb-redis
- template:
- metadata:
- labels:
- app: tb-redis
- spec:
- containers:
- - name: server
- imagePullPolicy: Always
- image: redis:4.0
- ports:
- - containerPort: 6379
- readinessProbe:
- periodSeconds: 5
- tcpSocket:
- port: 6379
- livenessProbe:
- periodSeconds: 5
- tcpSocket:
- port: 6379
- volumeMounts:
- - mountPath: /data
- name: redis-data
- volumes:
- - name: redis-data
- emptyDir: {}
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-redis
- namespace: thingsboard
-spec:
- type: ClusterIP
- selector:
- app: tb-redis
- ports:
- - name: tb-redis-port
- port: 6379
----
\ No newline at end of file
diff --git a/k8s/common/cassandra.yml b/k8s/common/cassandra.yml
deleted file mode 100644
index 056851242d..0000000000
--- a/k8s/common/cassandra.yml
+++ /dev/null
@@ -1,164 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: storage.k8s.io/v1
-kind: StorageClass
-metadata:
- name: fast
- namespace: thingsboard
-provisioner: k8s.io/minikube-hostpath
-parameters:
- type: pd-ssd
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cassandra-probe-config
- namespace: thingsboard
- labels:
- name: cassandra-probe-config
-data:
- probe: |
- if [[ $(nodetool status | grep $POD_IP) == *"UN"* ]]; then
- if [[ $DEBUG ]]; then
- echo "UN";
- fi
- exit 0;
- else
- if [[ $DEBUG ]]; then
- echo "Not Up";
- fi
- exit 1;
- fi
----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: cassandra
- namespace: thingsboard
- labels:
- app: cassandra
-spec:
- serviceName: cassandra
- replicas: 1
- selector:
- matchLabels:
- app: cassandra
- template:
- metadata:
- labels:
- app: cassandra
- spec:
- volumes:
- - name: cassandra-probe-config
- configMap:
- name: cassandra-probe-config
- items:
- - key: probe
- path: ready-probe.sh
- mode: 0777
- terminationGracePeriodSeconds: 1800
- containers:
- - name: cassandra
- image: cassandra:3.11.3
- imagePullPolicy: Always
- ports:
- - containerPort: 7000
- name: intra-node
- - containerPort: 7001
- name: tls-intra-node
- - containerPort: 7199
- name: jmx
- - containerPort: 9042
- name: cql
- - containerPort: 9160
- name: thrift
- resources:
- limits:
- cpu: "1000m"
- memory: 2Gi
- requests:
- cpu: "1000m"
- memory: 2Gi
- securityContext:
- capabilities:
- add:
- - IPC_LOCK
- lifecycle:
- preStop:
- exec:
- command:
- - /bin/sh
- - -c
- - nodetool drain
- env:
- - name: CASSANDRA_SEEDS
- value: "cassandra-0.cassandra.thingsboard.svc.cluster.local"
- - name: MAX_HEAP_SIZE
- value: 1024M
- - name: HEAP_NEWSIZE
- value: 256M
- - name: CASSANDRA_CLUSTER_NAME
- value: "Thingsboard Cluster"
- - name: CASSANDRA_DC
- value: "datacenter1"
- - name: CASSANDRA_RACK
- value: "Rack-Thingsboard-Cluster"
- - name: CASSANDRA_AUTO_BOOTSTRAP
- value: "false"
- - name: CASSANDRA_ENDPOINT_SNITCH
- value: GossipingPropertyFileSnitch
- - name: POD_IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- readinessProbe:
- exec:
- command:
- - /bin/bash
- - -c
- - /probe/ready-probe.sh
- initialDelaySeconds: 60
- timeoutSeconds: 5
- volumeMounts:
- - name: cassandra-probe-config
- mountPath: /probe
- - name: cassandra-data
- mountPath: /var/lib/cassandra
- volumeClaimTemplates:
- - metadata:
- name: cassandra-data
- spec:
- accessModes: [ "ReadWriteOnce" ]
- storageClassName: fast
- resources:
- requests:
- storage: 1Gi
----
-apiVersion: v1
-kind: Service
-metadata:
- labels:
- app: cassandra
- name: cassandra
- namespace: thingsboard
-spec:
- clusterIP: None
- ports:
- - port: 9042
- selector:
- app: cassandra
----
diff --git a/k8s/common/database-setup.yml b/k8s/common/database-setup.yml
deleted file mode 100644
index 1c7cd48a1b..0000000000
--- a/k8s/common/database-setup.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: Pod
-metadata:
- name: tb-db-setup
- namespace: thingsboard
-spec:
- volumes:
- - name: tb-node-config
- configMap:
- name: tb-node-config
- items:
- - key: conf
- path: thingsboard.conf
- - key: logback
- path: logback.xml
- containers:
- - name: tb-db-setup
- imagePullPolicy: Always
- image: thingsboard/tb-node:latest
- envFrom:
- - configMapRef:
- name: tb-node-db-config
- volumeMounts:
- - mountPath: /config
- name: tb-node-config
- command: ['sh', '-c', 'while [ ! -f /tmp/install-finished ]; do sleep 2; done;']
- restartPolicy: Never
diff --git a/k8s/common/postgres.yml b/k8s/common/postgres.yml
deleted file mode 100644
index 40ed35d066..0000000000
--- a/k8s/common/postgres.yml
+++ /dev/null
@@ -1,102 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
- name: postgres-pv-claim
- namespace: thingsboard
- labels:
- app: postgres
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 5Gi
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: postgres
- namespace: thingsboard
- labels:
- app: postgres
-spec:
- selector:
- matchLabels:
- app: postgres
- template:
- metadata:
- labels:
- app: postgres
- spec:
- volumes:
- - name: postgres-data
- persistentVolumeClaim:
- claimName: postgres-pv-claim
- containers:
- - name: postgres
- imagePullPolicy: Always
- image: postgres:12
- ports:
- - containerPort: 5432
- name: postgres
- env:
- - name: POSTGRES_DB
- value: "thingsboard"
- - name: POSTGRES_PASSWORD
- value: "postgres"
- - name: PGDATA
- value: /var/lib/postgresql/data/pgdata
- volumeMounts:
- - mountPath: /var/lib/postgresql/data
- name: postgres-data
- livenessProbe:
- exec:
- command:
- - pg_isready
- - -h
- - localhost
- - -U
- - postgres
- initialDelaySeconds: 60
- timeoutSeconds: 30
- readinessProbe:
- exec:
- command:
- - pg_isready
- - -h
- - localhost
- - -U
- - postgres
- initialDelaySeconds: 5
- timeoutSeconds: 1
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-database
- namespace: thingsboard
-spec:
- type: ClusterIP
- selector:
- app: postgres
- ports:
- - port: 5432
- name: postgres
----
diff --git a/k8s/common/tb-coap-transport-configmap.yml b/k8s/common/tb-coap-transport-configmap.yml
deleted file mode 100644
index 0f0ea0a8e5..0000000000
--- a/k8s/common/tb-coap-transport-configmap.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-coap-transport-config
- namespace: thingsboard
- labels:
- name: tb-coap-transport-config
-data:
- conf: |
- export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=/var/log/tb-coap-transport/${TB_SERVICE_ID}-gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
- export JAVA_OPTS="$JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tb-coap-transport/${TB_SERVICE_ID}-heapdump.bin"
- export JAVA_OPTS="$JAVA_OPTS -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
- export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:MaxTenuringThreshold=10"
- export JAVA_OPTS="$JAVA_OPTS -XX:+ExitOnOutOfMemoryError"
- export LOG_FILENAME=tb-coap-transport.out
- export LOADER_PATH=/usr/share/tb-coap-transport/conf
- logback: |
-
-
-
-
- /var/log/tb-coap-transport/${TB_SERVICE_ID}/tb-coap-transport.log
-
- /var/log/tb-coap-transport/${TB_SERVICE_ID}/tb-coap-transport.%d{yyyy-MM-dd}.%i.log
- 100MB
- 30
- 3GB
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
-
-
-
diff --git a/k8s/common/tb-http-transport-configmap.yml b/k8s/common/tb-http-transport-configmap.yml
deleted file mode 100644
index 582df2e5e8..0000000000
--- a/k8s/common/tb-http-transport-configmap.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-http-transport-config
- namespace: thingsboard
- labels:
- name: tb-http-transport-config
-data:
- conf: |
- export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=/var/log/tb-http-transport/${TB_SERVICE_ID}-gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
- export JAVA_OPTS="$JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tb-http-transport/${TB_SERVICE_ID}-heapdump.bin"
- export JAVA_OPTS="$JAVA_OPTS -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
- export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:MaxTenuringThreshold=10"
- export JAVA_OPTS="$JAVA_OPTS -XX:+ExitOnOutOfMemoryError"
- export LOG_FILENAME=tb-http-transport.out
- export LOADER_PATH=/usr/share/tb-http-transport/conf
- logback: |
-
-
-
-
- /var/log/tb-http-transport/${TB_SERVICE_ID}/tb-http-transport.log
-
- /var/log/tb-http-transport/${TB_SERVICE_ID}/tb-http-transport.%d{yyyy-MM-dd}.%i.log
- 100MB
- 30
- 3GB
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
-
-
-
diff --git a/k8s/common/tb-mqtt-transport-configmap.yml b/k8s/common/tb-mqtt-transport-configmap.yml
deleted file mode 100644
index 0d82938842..0000000000
--- a/k8s/common/tb-mqtt-transport-configmap.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-mqtt-transport-config
- namespace: thingsboard
- labels:
- name: tb-mqtt-transport-config
-data:
- conf: |
- export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=/var/log/tb-mqtt-transport/${TB_SERVICE_ID}-gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
- export JAVA_OPTS="$JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tb-mqtt-transport/${TB_SERVICE_ID}-heapdump.bin"
- export JAVA_OPTS="$JAVA_OPTS -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
- export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:MaxTenuringThreshold=10"
- export JAVA_OPTS="$JAVA_OPTS -XX:+ExitOnOutOfMemoryError"
- export LOG_FILENAME=tb-mqtt-transport.out
- export LOADER_PATH=/usr/share/tb-mqtt-transport/conf
- logback: |
-
-
-
-
- /var/log/tb-mqtt-transport/${TB_SERVICE_ID}/tb-mqtt-transport.log
-
- /var/log/tb-mqtt-transport/${TB_SERVICE_ID}/tb-mqtt-transport.%d{yyyy-MM-dd}.%i.log
- 100MB
- 30
- 3GB
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
-
-
-
diff --git a/k8s/common/tb-namespace.yml b/k8s/common/tb-namespace.yml
deleted file mode 100644
index c2056c7dd8..0000000000
--- a/k8s/common/tb-namespace.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: Namespace
-metadata:
- name: thingsboard
- labels:
- name: thingsboard
diff --git a/k8s/common/tb-node-configmap.yml b/k8s/common/tb-node-configmap.yml
deleted file mode 100644
index 3e796215ab..0000000000
--- a/k8s/common/tb-node-configmap.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-node-config
- namespace: thingsboard
- labels:
- name: tb-node-config
-data:
- conf: |
- export JAVA_OPTS="$JAVA_OPTS -Dplatform=deb -Dinstall.data_dir=/usr/share/thingsboard/data"
- export JAVA_OPTS="$JAVA_OPTS -Xlog:gc*,heap*,age*,safepoint=debug:file=/var/log/thingsboard/${TB_SERVICE_ID}-gc.log:time,uptime,level,tags:filecount=10,filesize=10M"
- export JAVA_OPTS="$JAVA_OPTS -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/thingsboard/${TB_SERVICE_ID}-heapdump.bin"
- export JAVA_OPTS="$JAVA_OPTS -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
- export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:MaxTenuringThreshold=10"
- export JAVA_OPTS="$JAVA_OPTS -XX:+ExitOnOutOfMemoryError"
- export LOG_FILENAME=thingsboard.out
- export LOADER_PATH=/usr/share/thingsboard/conf,/usr/share/thingsboard/extensions
- logback: |
-
-
-
-
- /var/log/thingsboard/${TB_SERVICE_ID}/thingsboard.log
-
- /var/log/thingsboard/${TB_SERVICE_ID}/thingsboard.%d{yyyy-MM-dd}.%i.log
- 100MB
- 30
- 3GB
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
- %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/k8s/common/tb-node-hybrid-configmap.yml b/k8s/common/tb-node-hybrid-configmap.yml
deleted file mode 100644
index 0ef6fc4dfb..0000000000
--- a/k8s/common/tb-node-hybrid-configmap.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-node-db-config
- namespace: thingsboard
- labels:
- name: tb-node-db-config
-data:
- SPRING_JPA_DATABASE_PLATFORM: org.hibernate.dialect.PostgreSQLDialect
- SPRING_DRIVER_CLASS_NAME: org.postgresql.Driver
- SPRING_DATASOURCE_URL: jdbc:postgresql://tb-database:5432/thingsboard
- SPRING_DATASOURCE_USERNAME: postgres
- SPRING_DATASOURCE_PASSWORD: postgres
- DATABASE_TS_TYPE: cassandra
- CASSANDRA_URL: cassandra:9042
- CASSANDRA_SOCKET_READ_TIMEOUT: "60000"
diff --git a/k8s/common/tb-node-postgres-configmap.yml b/k8s/common/tb-node-postgres-configmap.yml
deleted file mode 100644
index 63cc0cb42c..0000000000
--- a/k8s/common/tb-node-postgres-configmap.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-node-db-config
- namespace: thingsboard
- labels:
- name: tb-node-db-config
-data:
- DATABASE_TS_TYPE: sql
- SPRING_JPA_DATABASE_PLATFORM: org.hibernate.dialect.PostgreSQLDialect
- SPRING_DRIVER_CLASS_NAME: org.postgresql.Driver
- SPRING_DATASOURCE_URL: jdbc:postgresql://tb-database:5432/thingsboard
- SPRING_DATASOURCE_USERNAME: postgres
- SPRING_DATASOURCE_PASSWORD: postgres
diff --git a/k8s/common/tb-node.yml b/k8s/common/tb-node.yml
deleted file mode 100644
index 2520bf8e76..0000000000
--- a/k8s/common/tb-node.yml
+++ /dev/null
@@ -1,98 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-node
- namespace: thingsboard
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: tb-node
- template:
- metadata:
- labels:
- app: tb-node
- spec:
- volumes:
- - name: tb-node-config
- configMap:
- name: tb-node-config
- items:
- - key: conf
- path: thingsboard.conf
- - key: logback
- path: logback.xml
- containers:
- - name: server
- imagePullPolicy: Always
- image: thingsboard/tb-node:latest
- ports:
- - containerPort: 8080
- name: http
- - containerPort: 9001
- name: rpc
- env:
- - name: TB_SERVICE_ID
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: TB_SERVICE_TYPE
- value: "monolith"
- - name: TB_QUEUE_TYPE
- value: "kafka"
- - name: ZOOKEEPER_ENABLED
- value: "true"
- - name: ZOOKEEPER_URL
- value: "zookeeper:2181"
- - name: TB_KAFKA_SERVERS
- value: "tb-kafka:9092"
- - name: JS_EVALUATOR
- value: "remote"
- - name: TRANSPORT_TYPE
- value: "remote"
- - name: HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE
- value: "false"
- envFrom:
- - configMapRef:
- name: tb-node-db-config
- - configMapRef:
- name: tb-node-cache-config
- volumeMounts:
- - mountPath: /config
- name: tb-node-config
- livenessProbe:
- httpGet:
- path: /login
- port: http
- initialDelaySeconds: 300
- timeoutSeconds: 10
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-node
- namespace: thingsboard
-spec:
- type: ClusterIP
- selector:
- app: tb-node
- ports:
- - port: 8080
- name: http
\ No newline at end of file
diff --git a/k8s/common/thingsboard.yml b/k8s/common/thingsboard.yml
deleted file mode 100644
index 73b7133433..0000000000
--- a/k8s/common/thingsboard.yml
+++ /dev/null
@@ -1,451 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-js-executor
- namespace: thingsboard
-spec:
- replicas: 20
- selector:
- matchLabels:
- app: tb-js-executor
- template:
- metadata:
- labels:
- app: tb-js-executor
- spec:
- containers:
- - name: server
- imagePullPolicy: Always
- image: thingsboard/tb-js-executor:latest
- env:
- - name: REMOTE_JS_EVAL_REQUEST_TOPIC
- value: "js_eval.requests"
- - name: TB_KAFKA_SERVERS
- value: "tb-kafka:9092"
- - name: LOGGER_LEVEL
- value: "info"
- - name: LOG_FOLDER
- value: "logs"
- - name: LOGGER_FILENAME
- value: "tb-js-executor-%DATE%.log"
- - name: DOCKER_MODE
- value: "true"
- - name: SCRIPT_BODY_TRACE_FREQUENCY
- value: "1000"
- restartPolicy: Always
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-mqtt-transport
- namespace: thingsboard
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: tb-mqtt-transport
- template:
- metadata:
- labels:
- app: tb-mqtt-transport
- spec:
- volumes:
- - name: tb-mqtt-transport-config
- configMap:
- name: tb-mqtt-transport-config
- items:
- - key: conf
- path: tb-mqtt-transport.conf
- - key: logback
- path: logback.xml
- containers:
- - name: server
- imagePullPolicy: Always
- image: thingsboard/tb-mqtt-transport:latest
- ports:
- - containerPort: 1883
- name: mqtt
- env:
- - name: TB_SERVICE_ID
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: TB_QUEUE_TYPE
- value: "kafka"
- - name: MQTT_BIND_ADDRESS
- value: "0.0.0.0"
- - name: MQTT_BIND_PORT
- value: "1883"
- - name: MQTT_TIMEOUT
- value: "10000"
- - name: TB_KAFKA_SERVERS
- value: "tb-kafka:9092"
- volumeMounts:
- - mountPath: /config
- name: tb-mqtt-transport-config
- readinessProbe:
- periodSeconds: 20
- tcpSocket:
- port: 1883
- livenessProbe:
- initialDelaySeconds: 120
- periodSeconds: 20
- tcpSocket:
- port: 1883
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-mqtt-transport
- namespace: thingsboard
-spec:
- type: LoadBalancer
- selector:
- app: tb-mqtt-transport
- ports:
- - port: 1883
- targetPort: 1883
- name: mqtt
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-http-transport
- namespace: thingsboard
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: tb-http-transport
- template:
- metadata:
- labels:
- app: tb-http-transport
- spec:
- volumes:
- - name: tb-http-transport-config
- configMap:
- name: tb-http-transport-config
- items:
- - key: conf
- path: tb-http-transport.conf
- - key: logback
- path: logback.xml
- containers:
- - name: server
- imagePullPolicy: Always
- image: thingsboard/tb-http-transport:latest
- ports:
- - containerPort: 8080
- name: http
- env:
- - name: TB_SERVICE_ID
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: TB_QUEUE_TYPE
- value: "kafka"
- - name: HTTP_BIND_ADDRESS
- value: "0.0.0.0"
- - name: HTTP_BIND_PORT
- value: "8080"
- - name: HTTP_REQUEST_TIMEOUT
- value: "60000"
- - name: TB_KAFKA_SERVERS
- value: "tb-kafka:9092"
- volumeMounts:
- - mountPath: /config
- name: tb-http-transport-config
- readinessProbe:
- periodSeconds: 20
- tcpSocket:
- port: 8080
- livenessProbe:
- initialDelaySeconds: 120
- periodSeconds: 20
- tcpSocket:
- port: 8080
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-http-transport
- namespace: thingsboard
-spec:
- type: ClusterIP
- selector:
- app: tb-http-transport
- ports:
- - port: 8080
- name: http
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-coap-transport
- namespace: thingsboard
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: tb-coap-transport
- template:
- metadata:
- labels:
- app: tb-coap-transport
- spec:
- volumes:
- - name: tb-coap-transport-config
- configMap:
- name: tb-coap-transport-config
- items:
- - key: conf
- path: tb-coap-transport.conf
- - key: logback
- path: logback.xml
- containers:
- - name: server
- imagePullPolicy: Always
- image: thingsboard/tb-coap-transport:latest
- ports:
- - containerPort: 5683
- name: coap
- protocol: UDP
- env:
- - name: TB_SERVICE_ID
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: TB_QUEUE_TYPE
- value: "kafka"
- - name: COAP_BIND_ADDRESS
- value: "0.0.0.0"
- - name: COAP_BIND_PORT
- value: "5683"
- - name: COAP_TIMEOUT
- value: "10000"
- - name: TB_KAFKA_SERVERS
- value: "tb-kafka:9092"
- volumeMounts:
- - mountPath: /config
- name: tb-coap-transport-config
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-coap-transport
- namespace: thingsboard
-spec:
- type: LoadBalancer
- selector:
- app: tb-coap-transport
- ports:
- - port: 5683
- name: coap
- protocol: UDP
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-lwm2m-transport
- namespace: thingsboard
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: tb-lwm2m-transport
- template:
- metadata:
- labels:
- app: tb-lwm2m-transport
- spec:
- volumes:
- - name: tb-lwm2m-transport-config
- configMap:
- name: tb-lwm2m-transport-config
- items:
- - key: conf
- path: tb-lwm2m-transport.conf
- - key: logback
- path: logback.xml
- containers:
- - name: server
- imagePullPolicy: Always
- image: thingsboard/tb-lwm2m-transport:latest
- ports:
- - containerPort: 5685
- name: lwm2m
- protocol: UDP
- env:
- - name: TB_SERVICE_ID
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- - name: TB_QUEUE_TYPE
- value: "kafka"
- - name: LWM2M_BIND_ADDRESS
- value: "0.0.0.0"
- - name: LWM2M_BIND_PORT
- value: "5685"
- - name: LWM2M_TIMEOUT
- value: "10000"
- - name: TB_KAFKA_SERVERS
- value: "tb-kafka:9092"
- volumeMounts:
- - mountPath: /config
- name: tb-lwm2m-transport-config
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-lwm2m-transport
- namespace: thingsboard
-spec:
- type: LoadBalancer
- selector:
- app: tb-lwm2m-transport
- ports:
- - port: 5685
- name: lwm2m
- protocol: UDP
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: tb-web-ui
- namespace: thingsboard
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: tb-web-ui
- template:
- metadata:
- labels:
- app: tb-web-ui
- spec:
- containers:
- - name: server
- imagePullPolicy: Always
- image: thingsboard/tb-web-ui:latest
- ports:
- - containerPort: 8080
- name: http
- env:
- - name: HTTP_BIND_ADDRESS
- value: "0.0.0.0"
- - name: HTTP_BIND_PORT
- value: "8080"
- - name: TB_ENABLE_PROXY
- value: "false"
- - name: LOGGER_LEVEL
- value: "info"
- - name: LOG_FOLDER
- value: "logs"
- - name: LOGGER_FILENAME
- value: "tb-web-ui-%DATE%.log"
- - name: DOCKER_MODE
- value: "true"
- livenessProbe:
- httpGet:
- path: /index.html
- port: http
- initialDelaySeconds: 120
- timeoutSeconds: 10
- restartPolicy: Always
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-web-ui
- namespace: thingsboard
-spec:
- type: ClusterIP
- selector:
- app: tb-web-ui
- ports:
- - port: 8080
- name: http
----
-apiVersion: networking.k8s.io/v1beta1
-kind: Ingress
-metadata:
- name: tb-ingress
- namespace: thingsboard
- annotations:
- nginx.ingress.kubernetes.io/use-regex: "true"
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
-spec:
- rules:
- - http:
- paths:
- - path: /api/v1/.*
- backend:
- serviceName: tb-http-transport
- servicePort: 8080
- - path: /api/.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /swagger.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /webjars.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /v2/.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /v3/.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /static/rulenode/.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /assets/help/.*/rulenode/.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /oauth2/.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /login/oauth2/.*
- backend:
- serviceName: tb-node
- servicePort: 8080
- - path: /
- backend:
- serviceName: tb-web-ui
- servicePort: 8080
- - path: /.*
- backend:
- serviceName: tb-web-ui
- servicePort: 8080
----
diff --git a/k8s/high-availability/tb-node-cache-configmap.yml b/k8s/high-availability/tb-node-cache-configmap.yml
deleted file mode 100644
index 46800e4fe8..0000000000
--- a/k8s/high-availability/tb-node-cache-configmap.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-node-cache-config
- namespace: thingsboard
- labels:
- name: tb-node-cache-config
-data:
- CACHE_TYPE: redis
- REDIS_CONNECTION_TYPE: cluster
- REDIS_NODES: tb-redis:6379
\ No newline at end of file
diff --git a/k8s/high-availability/thirdparty.yml b/k8s/high-availability/thirdparty.yml
deleted file mode 100644
index 61f1fa73ce..0000000000
--- a/k8s/high-availability/thirdparty.yml
+++ /dev/null
@@ -1,301 +0,0 @@
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: zookeeper
- namespace: thingsboard
-spec:
- serviceName: "zookeeper"
- replicas: 3
- podManagementPolicy: Parallel
- selector:
- matchLabels:
- app: zookeeper
- template:
- metadata:
- labels:
- app: zookeeper
- spec:
- containers:
- - name: zookeeper
- imagePullPolicy: Always
- image: zookeeper:3.5
- ports:
- - containerPort: 2181
- name: client
- - containerPort: 2888
- name: server
- - containerPort: 3888
- name: election
- readinessProbe:
- periodSeconds: 60
- tcpSocket:
- port: 2181
- livenessProbe:
- periodSeconds: 60
- tcpSocket:
- port: 2181
- env:
- - name: ZOO_SERVERS
- 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"
- - name: JVMFLAGS
- value: "-Dzookeeper.electionPortBindRetry=0"
- volumeMounts:
- - name: data
- mountPath: /data
- readOnly: false
- initContainers:
- - command:
- - /bin/bash
- - -c
- - |-
- set -ex;
- mkdir -p "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR";
- chown "$ZOO_USER:$ZOO_USER" "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR"
- if [[ ! -f "$ZOO_DATA_DIR/myid" ]]; then
- echo $HOSTNAME| rev | cut -d "-" -f1 | rev > "$ZOO_DATA_DIR/myid"
- fi
- env:
- - name: HOSTNAME
- valueFrom:
- fieldRef:
- fieldPath: metadata.name
- image: zookeeper:3.5
- imagePullPolicy: IfNotPresent
- name: zookeeper-init
- securityContext:
- runAsUser: 0
- volumeMounts:
- - name: data
- mountPath: /data
- readOnly: false
- volumeClaimTemplates:
- - metadata:
- name: data
- spec:
- accessModes: [ "ReadWriteOnce" ]
- resources:
- requests:
- storage: 100Mi
----
-apiVersion: v1
-kind: Service
-metadata:
- name: zookeeper
- namespace: thingsboard
-spec:
- type: ClusterIP
- ports:
- - port: 2181
- targetPort: 2181
- name: client
- - port: 2888
- targetPort: 2888
- name: server
- - port: 3888
- targetPort: 3888
- name: election
- selector:
- app: zookeeper
----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: tb-kafka
- namespace: thingsboard
-spec:
- serviceName: "tb-kafka"
- replicas: 3
- podManagementPolicy: Parallel
- selector:
- matchLabels:
- app: tb-kafka
- template:
- metadata:
- labels:
- app: tb-kafka
- spec:
- containers:
- - name: tb-kafka
- imagePullPolicy: Always
- image: wurstmeister/kafka:2.12-2.2.1
- ports:
- - containerPort: 9092
- name: kafka-int
- readinessProbe:
- periodSeconds: 5
- timeoutSeconds: 5
- tcpSocket:
- port: 9092
- initialDelaySeconds: 60
- livenessProbe:
- timeoutSeconds: 5
- periodSeconds: 5
- tcpSocket:
- port: 9092
- initialDelaySeconds: 80
- env:
- - name: BROKER_ID_COMMAND
- value: "hostname | cut -d'-' -f3"
- - name: KAFKA_ZOOKEEPER_CONNECT
- value: "zookeeper:2181"
- - name: KAFKA_ZOOKEEPER_CONNECTION_TIMEOUT_MS
- value: "60000"
- - name: KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE
- value: "true"
- - name: KAFKA_LISTENERS
- value: "INSIDE://:9092"
- - name: KAFKA_ADVERTISED_LISTENERS
- value: "INSIDE://:9092"
- - name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
- value: "INSIDE:PLAINTEXT"
- - name: KAFKA_INTER_BROKER_LISTENER_NAME
- value: "INSIDE"
- - name: KAFKA_CONTROLLER_SHUTDOWN_ENABLE
- value: "true"
- - name: KAFKA_CREATE_TOPICS
- 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"
- - name: KAFKA_AUTO_CREATE_TOPICS_ENABLE
- value: "false"
- - name: KAFKA_LOG_RETENTION_BYTES
- value: "1073741824"
- - name: KAFKA_LOG_SEGMENT_BYTES
- value: "268435456"
- - name: KAFKA_LOG_RETENTION_MS
- value: "300000"
- - name: KAFKA_LOG_CLEANUP_POLICY
- value: "delete"
- - name: KAFKA_PORT
- value: "9092"
- - name: KAFKA_LOG_DIRS
- value: "/kafka-logs"
- volumeMounts:
- - name: logs
- mountPath: /kafka-logs
- subPath: logs
- volumeClaimTemplates:
- - metadata:
- name: logs
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-kafka
- namespace: thingsboard
-spec:
- type: ClusterIP
- ports:
- - port: 9092
- targetPort: 9092
- name: kafka-int
- selector:
- app: tb-kafka
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: tb-redis
- namespace: thingsboard
-data:
- update-node.sh: |
- #!/bin/sh
- REDIS_NODES="/data/nodes.conf"
- 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}
- exec "$@"
- redis.conf: |+
- cluster-enabled yes
- cluster-require-full-coverage no
- cluster-node-timeout 15000
- cluster-config-file /data/nodes.conf
- cluster-migration-barrier 1
- appendonly yes
- protected-mode no
----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
- name: tb-redis
- namespace: thingsboard
-spec:
- serviceName: server
- replicas: 6
- selector:
- matchLabels:
- app: tb-redis
- template:
- metadata:
- labels:
- app: tb-redis
- spec:
- containers:
- - name: redis
- image: redis:5.0.1-alpine
- ports:
- - containerPort: 6379
- name: client
- - containerPort: 16379
- name: gossip
- command: ["/conf/update-node.sh", "redis-server", "/conf/redis.conf"]
- env:
- - name: POD_IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- volumeMounts:
- - name: conf
- mountPath: /conf
- readOnly: false
- - name: data
- mountPath: /data
- readOnly: false
- volumes:
- - name: conf
- configMap:
- name: tb-redis
- defaultMode: 0755
- volumeClaimTemplates:
- - metadata:
- name: data
- spec:
- accessModes: [ "ReadWriteOnce" ]
- resources:
- requests:
- storage: 100Mi
----
-apiVersion: v1
-kind: Service
-metadata:
- name: tb-redis
- namespace: thingsboard
-spec:
- type: ClusterIP
- ports:
- - port: 6379
- targetPort: 6379
- name: client
- - port: 16379
- targetPort: 16379
- name: gossip
- selector:
- app: tb-redis
diff --git a/k8s/k8s-delete-all.sh b/k8s/k8s-delete-all.sh
deleted file mode 100755
index 75dbd6fa60..0000000000
--- a/k8s/k8s-delete-all.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-kubectl -n thingsboard delete svc,sts,deploy,cm,po,ing --all
-
-kubectl -n thingsboard get pvc --no-headers=true | awk '//{print $1}' | xargs kubectl -n thingsboard delete --ignore-not-found=true pvc
\ No newline at end of file
diff --git a/k8s/k8s-delete-resources.sh b/k8s/k8s-delete-resources.sh
deleted file mode 100755
index 3dea9a465d..0000000000
--- a/k8s/k8s-delete-resources.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -e
-
-source .env
-
-kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
-
-kubectl delete -f common/thingsboard.yml
-kubectl delete -f common/tb-node.yml
diff --git a/k8s/k8s-delete-thirdparty.sh b/k8s/k8s-delete-thirdparty.sh
deleted file mode 100755
index fc5fd3ce16..0000000000
--- a/k8s/k8s-delete-thirdparty.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -e
-
-source .env
-
-kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
-kubectl delete -f $DEPLOYMENT_TYPE/thirdparty.yml
diff --git a/k8s/k8s-deploy-resources.sh b/k8s/k8s-deploy-resources.sh
deleted file mode 100755
index 899b2e399d..0000000000
--- a/k8s/k8s-deploy-resources.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -e
-
-source .env
-
-kubectl apply -f common/tb-namespace.yml
-kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
-kubectl apply -f common/tb-node-configmap.yml
-kubectl apply -f common/tb-mqtt-transport-configmap.yml
-kubectl apply -f common/tb-http-transport-configmap.yml
-kubectl apply -f common/tb-coap-transport-configmap.yml
-kubectl apply -f common/thingsboard.yml
-kubectl apply -f $DEPLOYMENT_TYPE/tb-node-cache-configmap.yml
-kubectl apply -f common/tb-node.yml
diff --git a/k8s/k8s-deploy-thirdparty.sh b/k8s/k8s-deploy-thirdparty.sh
deleted file mode 100755
index 6fd94c3674..0000000000
--- a/k8s/k8s-deploy-thirdparty.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -e
-
-source .env
-
-kubectl apply -f common/tb-namespace.yml
-kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
-
-kubectl apply -f $DEPLOYMENT_TYPE/thirdparty.yml
-
-
-if [ "$DEPLOYMENT_TYPE" == "high-availability" ]; then
- echo -n "waiting for all redis pods to be ready";
- while [[ $(kubectl get pods tb-redis-5 -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}' 2>/dev/null) != "True" ]];
- do
- echo -n "." && sleep 5;
- done
-
- if [[ $(kubectl exec -it tb-redis-0 -- redis-cli cluster info 2>&1 | head -n 1) =~ "cluster_state:ok" ]]
- then
- echo "redis cluster is already configured"
- else
- echo "starting redis cluster"
- redisNodes=$(kubectl get pods -l app=tb-redis -o jsonpath='{range.items[*]}{.status.podIP}:6379 ')
- kubectl exec -it tb-redis-0 -- redis-cli --cluster create --cluster-replicas 1 $redisNodes
- fi
-
-fi
-
diff --git a/k8s/k8s-install-tb.sh b/k8s/k8s-install-tb.sh
deleted file mode 100755
index 3dd714bac9..0000000000
--- a/k8s/k8s-install-tb.sh
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/bin/bash
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-function installTb() {
-
- loadDemo=$1
-
- kubectl apply -f common/tb-node-configmap.yml
- kubectl apply -f common/database-setup.yml &&
- kubectl wait --for=condition=Ready pod/tb-db-setup --timeout=120s &&
- kubectl exec tb-db-setup -- sh -c 'export INSTALL_TB=true; export LOAD_DEMO='"$loadDemo"'; start-tb-node.sh; touch /tmp/install-finished;'
-
- kubectl delete pod tb-db-setup
-
-}
-
-function installPostgres() {
-
- kubectl apply -f common/postgres.yml
- kubectl apply -f common/tb-node-postgres-configmap.yml
-
- kubectl rollout status deployment/postgres
-}
-
-function installHybrid() {
-
- kubectl apply -f common/postgres.yml
- kubectl apply -f common/cassandra.yml
- kubectl apply -f common/tb-node-hybrid-configmap.yml
-
- kubectl rollout status deployment/postgres
- kubectl rollout status statefulset/cassandra
-
- kubectl exec -it cassandra-0 -- bash -c "cqlsh -e \
- \"CREATE KEYSPACE IF NOT EXISTS thingsboard \
- WITH replication = { \
- 'class' : 'SimpleStrategy', \
- 'replication_factor' : 1 \
- };\""
-}
-
-while [[ $# -gt 0 ]]
-do
-key="$1"
-
-case $key in
- --loadDemo)
- LOAD_DEMO=true
- shift # past argument
- ;;
- *)
- # unknown option
- ;;
-esac
-shift # past argument or value
-done
-
-if [ "$LOAD_DEMO" == "true" ]; then
- loadDemo=true
-else
- loadDemo=false
-fi
-
-source .env
-
-kubectl apply -f common/tb-namespace.yml
-kubectl config set-context $(kubectl config current-context) --namespace=thingsboard
-
-case $DEPLOYMENT_TYPE in
- basic)
- ;;
- high-availability)
- ;;
- *)
- echo "Unknown DEPLOYMENT_TYPE value specified: '${DEPLOYMENT_TYPE}'. Should be either basic or high-availability." >&2
- exit 1
-esac
-
-case $DATABASE in
- postgres)
- installPostgres
- installTb ${loadDemo}
- ;;
- hybrid)
- installHybrid
- installTb ${loadDemo}
- ;;
- *)
- echo "Unknown DATABASE value specified: '${DATABASE}'. Should be either postgres or hybrid." >&2
- exit 1
-esac
-
diff --git a/k8s/k8s-upgrade-tb.sh b/k8s/k8s-upgrade-tb.sh
deleted file mode 100755
index 5e81e500a3..0000000000
--- a/k8s/k8s-upgrade-tb.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-#
-# Copyright © 2016-2021 The Thingsboard Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-for i in "$@"
-do
-case $i in
- --fromVersion=*)
- FROM_VERSION="${i#*=}"
- shift
- ;;
- *)
- # unknown option
- ;;
-esac
-done
-
-if [[ -z "${FROM_VERSION// }" ]]; then
- echo "--fromVersion parameter is invalid or unspecified!"
- echo "Usage: k8s-upgrade-tb.sh --fromVersion={VERSION}"
- exit 1
-else
- fromVersion="${FROM_VERSION// }"
-fi
-
-kubectl apply -f common/database-setup.yml &&
-kubectl wait --for=condition=Ready pod/tb-db-setup --timeout=120s &&
-kubectl exec tb-db-setup -- sh -c 'export UPGRADE_TB=true; export FROM_VERSION='"$fromVersion"'; start-tb-node.sh; touch /tmp/install-finished;'
-
-kubectl delete pod tb-db-setup