thingsboard-aplcache
Changes
docker/cassandra/cassandra.yaml 37(+12 -25)
docker/cassandra/Dockerfile 5(+5 -0)
docker/cassandra/Makefile 13(+13 -0)
docker/cassandra/ready-probe.sh 27(+13 -14)
docker/common/common.yaml 9(+9 -0)
docker/thingsboard/Makefile 13(+13 -0)
docker/thingsboard/thingsboard.yaml 35(+17 -18)
docker/thingsboard-db-schema/Makefile 13(+13 -0)
docker/zookeeper/Makefile 7(+4 -3)
docker/zookeeper/zkGenConfig.sh 2(+1 -1)
docker/zookeeper/zookeeper.yaml 62(+39 -23)
Details
docker/cassandra/cassandra.yaml 37(+12 -25)
diff --git a/docker/cassandra/cassandra.yaml b/docker/cassandra/cassandra.yaml
index 9333f4d..c3772b1 100644
--- a/docker/cassandra/cassandra.yaml
+++ b/docker/cassandra/cassandra.yaml
@@ -1,30 +1,23 @@
apiVersion: v1
kind: Service
metadata:
+ name: cassandra-headless
labels:
- app: cassandra
- name: cassandra
+ app: cassandra-headless
spec:
- clusterIP: None
ports:
- port: 9042
+ name: cql
+ clusterIP: None
selector:
app: cassandra
---
-apiVersion: storage.k8s.io/v1beta1
-kind: StorageClass
-metadata:
- name: regular
-provisioner: kubernetes.io/gce-pd
-parameters:
- type: pd-standard
----
apiVersion: "apps/v1beta1"
kind: StatefulSet
metadata:
name: cassandra
spec:
- serviceName: cassandra
+ serviceName: cassandra-headless
replicas: 3
template:
metadata:
@@ -39,11 +32,11 @@ spec:
- key: "app"
operator: In
values:
- - cassandra
+ - cassandra-headless
topologyKey: "kubernetes.io/hostname"
containers:
- name: cassandra
- image: gcr.io/google-samples/cassandra:v12
+ image: thingsboard/cassandra:k8stest
imagePullPolicy: Always
ports:
- containerPort: 7000
@@ -77,7 +70,7 @@ spec:
- name: HEAP_NEWSIZE
value: 100M
- name: CASSANDRA_SEEDS
- value: "cassandra-0.cassandra.default.svc.cluster.local"
+ value: "cassandra-0.cassandra-headless.default.svc.cluster.local"
- name: CASSANDRA_CLUSTER_NAME
value: "K8Demo"
- name: CASSANDRA_DC
@@ -102,22 +95,16 @@ spec:
- /ready-probe.sh
initialDelaySeconds: 15
timeoutSeconds: 5
- # These volume mounts are persistent. They are like inline claims,
- # but not exactly because the names need to match exactly one of
- # the stateful pod volumes.
volumeMounts:
- name: cassandra-data
- mountPath: /cassandra_data
+ mountPath: /var/lib/cassandra/data
- name: cassandra-commitlog
- mountPath: /cassandra_commitlog
- # These are converted to volume claims by the controller
- # and mounted at the paths mentioned above.
- # do not use these in production until ssd GCEPersistentDisk or other ssd pd
+ mountPath: /var/lib/cassandra/commitlog
volumeClaimTemplates:
- metadata:
name: cassandra-data
annotations:
- volume.beta.kubernetes.io/storage-class: regular
+ volume.beta.kubernetes.io/storage-class: slow
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
@@ -126,7 +113,7 @@ spec:
- metadata:
name: cassandra-commitlog
annotations:
- volume.beta.kubernetes.io/storage-class: regular
+ volume.beta.kubernetes.io/storage-class: slow
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
docker/cassandra/Dockerfile 5(+5 -0)
diff --git a/docker/cassandra/Dockerfile b/docker/cassandra/Dockerfile
new file mode 100644
index 0000000..72084cd
--- /dev/null
+++ b/docker/cassandra/Dockerfile
@@ -0,0 +1,5 @@
+FROM cassandra:3.9
+
+COPY ready-probe.sh /
+
+CMD ["cassandra", "-f"]
\ No newline at end of file
docker/cassandra/Makefile 13(+13 -0)
diff --git a/docker/cassandra/Makefile b/docker/cassandra/Makefile
new file mode 100644
index 0000000..ea71c63
--- /dev/null
+++ b/docker/cassandra/Makefile
@@ -0,0 +1,13 @@
+VERSION=k8stest
+PROJECT=thingsboard
+APP=cassandra
+
+all: build
+
+build:
+ docker build --pull -t ${PROJECT}/${APP}:${VERSION} .
+
+push: build
+ docker push ${PROJECT}/${APP}:${VERSION}
+
+.PHONY: all build push
\ No newline at end of file
docker/common/common.yaml 9(+9 -0)
diff --git a/docker/common/common.yaml b/docker/common/common.yaml
new file mode 100644
index 0000000..610c027
--- /dev/null
+++ b/docker/common/common.yaml
@@ -0,0 +1,9 @@
+---
+apiVersion: storage.k8s.io/v1beta1
+kind: StorageClass
+metadata:
+ name: slow
+provisioner: kubernetes.io/gce-pd
+parameters:
+ type: pd-standard
+---
\ No newline at end of file
docker/thingsboard/Makefile 13(+13 -0)
diff --git a/docker/thingsboard/Makefile b/docker/thingsboard/Makefile
new file mode 100644
index 0000000..29203e3
--- /dev/null
+++ b/docker/thingsboard/Makefile
@@ -0,0 +1,13 @@
+VERSION=k8stest
+PROJECT=thingsboard
+APP=application
+
+all: build
+
+build:
+ docker build --pull -t ${PROJECT}/${APP}:${VERSION} .
+
+push: build
+ docker push ${PROJECT}/${APP}:${VERSION}
+
+.PHONY: all build push
\ No newline at end of file
docker/thingsboard/thingsboard.yaml 35(+17 -18)
diff --git a/docker/thingsboard/thingsboard.yaml b/docker/thingsboard/thingsboard.yaml
index 702a721..a9c1df3 100644
--- a/docker/thingsboard/thingsboard.yaml
+++ b/docker/thingsboard/thingsboard.yaml
@@ -8,13 +8,11 @@ metadata:
spec:
ports:
- port: 8080
- name: ui-port
+ name: ui
- port: 1883
- name: mqtt-port
+ name: mqtt
- port: 5683
- name: coap-port
- - port: 9001
- name: rpc-port
+ name: coap
selector:
app: tb
type: LoadBalancer
@@ -27,14 +25,8 @@ metadata:
app: tb-headless
spec:
ports:
- - port: 8080
- name: ui-port
- - port: 1883
- name: mqtt-port
- - port: 5683
- name: coap-port
- port: 9001
- name: rpc-port
+ name: rpc
selector:
app: tb
clusterIP: None
@@ -56,7 +48,7 @@ metadata:
data:
zookeeper.enabled: "true"
zookeeper.url: "zk-headless"
- cassandra.url: "cassandra:9042"
+ cassandra.url: "cassandra-headless:9042"
---
apiVersion: apps/v1beta1
kind: StatefulSet
@@ -84,16 +76,23 @@ spec:
containers:
- name: tb
imagePullPolicy: Always
- image: thingsboard/application:k8test
+ image: thingsboard/application:k8stest
ports:
- containerPort: 8080
- name: ui-port
+ name: ui
- containerPort: 1883
- name: mqtt-port
+ name: mqtt
- containerPort: 5683
- name: coap-port
+ name: coap
- containerPort: 9001
- name: rpc-port
+ name: rpc
+ resources:
+ limits:
+ cpu: "250m"
+ memory: "500Mi"
+ requests:
+ cpu: "250m"
+ memory: "500Mi"
env:
- name: ZOOKEEPER_ENABLED
valueFrom:
docker/thingsboard-db-schema/Makefile 13(+13 -0)
diff --git a/docker/thingsboard-db-schema/Makefile b/docker/thingsboard-db-schema/Makefile
new file mode 100644
index 0000000..6531539
--- /dev/null
+++ b/docker/thingsboard-db-schema/Makefile
@@ -0,0 +1,13 @@
+VERSION=k8stest
+PROJECT=thingsboard
+APP=thingsboard-db-schema
+
+all: build
+
+build:
+ docker build --pull -t ${PROJECT}/${APP}:${VERSION} .
+
+push: build
+ docker push ${PROJECT}/${APP}:${VERSION}
+
+.PHONY: all build push
\ No newline at end of file
docker/zookeeper/Makefile 7(+4 -3)
diff --git a/docker/zookeeper/Makefile b/docker/zookeeper/Makefile
index a28937f..4c7a8c4 100644
--- a/docker/zookeeper/Makefile
+++ b/docker/zookeeper/Makefile
@@ -1,12 +1,13 @@
-VERSION=k8test
+VERSION=k8stest
PROJECT=thingsboard
+APP=zk
all: build
build:
- docker build --pull -t ${PROJECT}/k8szk:${VERSION} .
+ docker build --pull -t ${PROJECT}/${APP}:${VERSION} .
push: build
- docker push ${PROJECT}/k8szk:${VERSION}
+ docker push ${PROJECT}/${APP}:${VERSION}
.PHONY: all build push
docker/zookeeper/zkGenConfig.sh 2(+1 -1)
diff --git a/docker/zookeeper/zkGenConfig.sh b/docker/zookeeper/zkGenConfig.sh
index cef42f6..0b3365b 100755
--- a/docker/zookeeper/zkGenConfig.sh
+++ b/docker/zookeeper/zkGenConfig.sh
@@ -86,7 +86,7 @@ function validate_env() {
function create_config() {
rm -f $ZK_CONFIG_FILE
echo "Creating ZooKeeper configuration"
- echo "#This file was autogenerated by k8szk DO NOT EDIT" >> $ZK_CONFIG_FILE
+ echo "#This file was autogenerated by zk DO NOT EDIT" >> $ZK_CONFIG_FILE
echo "clientPort=$ZK_CLIENT_PORT" >> $ZK_CONFIG_FILE
echo "dataDir=$ZK_DATA_DIR" >> $ZK_CONFIG_FILE
echo "dataLogDir=$ZK_DATA_LOG_DIR" >> $ZK_CONFIG_FILE
docker/zookeeper/zookeeper.yaml 62(+39 -23)
diff --git a/docker/zookeeper/zookeeper.yaml b/docker/zookeeper/zookeeper.yaml
index 4184a3a..00bca9c 100644
--- a/docker/zookeeper/zookeeper.yaml
+++ b/docker/zookeeper/zookeeper.yaml
@@ -20,6 +20,7 @@ metadata:
name: zk-config
data:
ensemble: "zk-0;zk-1;zk-2"
+ replicas: "3"
jvm.heap: "500m"
tick: "2000"
init: "10"
@@ -27,6 +28,9 @@ data:
client.cnxns: "60"
snap.retain: "3"
purge.interval: "1"
+ client.port: "2181"
+ server.port: "2888"
+ election.port: "3888"
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
@@ -63,9 +67,9 @@ spec:
- zk-headless
topologyKey: "kubernetes.io/hostname"
containers:
- - name: k8szk
+ - name: zk
imagePullPolicy: Always
- image: thingsboard/k8szk:k8test
+ image: thingsboard/zk:k8stest
resources:
requests:
memory: "500Mi"
@@ -84,48 +88,60 @@ spec:
name: zk-config
key: ensemble
- name : ZK_REPLICAS
- value: "3"
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: replicas
- name : ZK_HEAP_SIZE
valueFrom:
configMapKeyRef:
- name: zk-config
- key: jvm.heap
+ name: zk-config
+ key: jvm.heap
- name : ZK_TICK_TIME
valueFrom:
configMapKeyRef:
- name: zk-config
- key: tick
+ name: zk-config
+ key: tick
- name : ZK_INIT_LIMIT
valueFrom:
configMapKeyRef:
- name: zk-config
- key: init
+ name: zk-config
+ key: init
- name : ZK_SYNC_LIMIT
valueFrom:
configMapKeyRef:
- name: zk-config
- key: tick
+ name: zk-config
+ key: tick
- name : ZK_MAX_CLIENT_CNXNS
valueFrom:
configMapKeyRef:
- name: zk-config
- key: client.cnxns
+ name: zk-config
+ key: client.cnxns
- name: ZK_SNAP_RETAIN_COUNT
valueFrom:
configMapKeyRef:
- name: zk-config
- key: snap.retain
+ name: zk-config
+ key: snap.retain
- name: ZK_PURGE_INTERVAL
valueFrom:
configMapKeyRef:
- name: zk-config
- key: purge.interval
+ name: zk-config
+ key: purge.interval
- name: ZK_CLIENT_PORT
- value: "2181"
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: client.port
- name: ZK_SERVER_PORT
- value: "2888"
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: server.port
- name: ZK_ELECTION_PORT
- value: "3888"
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: election.port
command:
- sh
- -c
@@ -143,16 +159,16 @@ spec:
initialDelaySeconds: 15
timeoutSeconds: 5
volumeMounts:
- - name: datadir
+ - name: zkdatadir
mountPath: /var/lib/zookeeper
securityContext:
runAsUser: 1000
fsGroup: 1000
volumeClaimTemplates:
- metadata:
- name: datadir
+ name: zkdatadir
annotations:
- volume.alpha.kubernetes.io/storage-class: anything
+ volume.beta.kubernetes.io/storage-class: slow
spec:
accessModes: [ "ReadWriteOnce" ]
resources: