# # 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 ---