ThingsBoard is an open-source IoT platform for data collection, processing, visualization, and device management.
This Helm chart installs thingsboard in a Kubernetes cluster.
- Kubernetes cluster 1.10+
- Helm 3.0+
- PV provisioner support in the underlying infrastructure.
Thingsboard enables device connectivity via industry standard IoT protocols - MQTT, CoAP and HTTP and supports both cloud and on-premises deployments. ThingsBoard combines scalability, fault-tolerance and performance so you will never lose your data.
RabbitMQ is an open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
ThingsBoard is able to use various messaging systems/brokers for storing the messages and communication between ThingsBoard services, this helm Chart uses RabbitMQ.
RabbitMQ is recommended if you don’t have much load and you already have experience with this messaging system.
we're using bitnami/rabbitmq helm chart. for more info about how to use it, please check the documentation .
The items of section Configuration can be set via --set
flag during installation or change the values according to the need of the environment in helm-thingsboard/values.yaml
file.
- Ingress: The ingress controller must be installed in the Kubernetes cluster.
- ClusterIP: Exposes the service on a cluster-internal IP. Choosing this value makes the service only reachable from within the cluster.
- NodePort: Exposes the service on each Node’s IP at a static port (the NodePort). You’ll be able to contact the NodePort service, from outside the cluster, by requesting
NodeIP:NodePort
. - LoadBalancer: Exposes the service externally using a cloud provider’s load balancer.
Access a Kubernetes cluster.
Add Helm repo:
helm repo add cetic https://cetic.github.io/helm-charts
Update the list helm chart available for installation (like apt-get update
). This is recommend before install/upgrade a helm chart:
helm repo update
helm dep up
Change the values according to the environment in the file values.yaml
.
Install the thingsboard helm chart with a release name my-release
:
helm install my-release cetic/thingsboard
View the pods.
kubectl get pods
To uninstall/delete the thingsboard
deployment:
helm delete my-release
After deploying the chart in your cluster, you can use the following command to access the thingsboard frontend service:
minikube service <my-release>-thingsboard
The following tables lists the configurable parameters of the chart and their default values.
Key | Type | Default | Description |
---|---|---|---|
affinity | object | {} |
Affinity configurations |
ingress.annotations | object | {} |
Ingress annotations |
ingress.enabled | bool | false |
Enables Ingress |
ingress.hosts | list | [{"host":null,"paths":[]}] |
Ingress hosts |
ingress.tls | list | [] |
Ingress TLS configuration |
nodeSelector | object | {} |
nodeSelector configurations |
rabbitmq.enabled | bool | true |
enable rabbitmq |
rabbitmq.auth.username | string | "admin" |
userName of rabbitmq |
rabbitmq.auth.password | string | "password1" |
Password of rabbitmq |
rabbitmq.ldap.enabled | bool | false | enable/disable ldad for user authentication |
rabbitmq.ldap.server | string | my-openldap |
ldap server adress |
rrabbitmq.ldap.port | int | 389 |
ldap server port |
rabbitmq.ldap.user_dn_pattern | string | cn=${username},dc=example,dc=org |
ldap user dn pattern |
readinessProbe.enabled | bool | true | enable/disbale ReadinessProbe |
readinessProbe.initialDelaySeconds | int | 60 |
Specifies the number of the readinessProbe's delay seconds |
readinessProbe.periodSeconds | int | 7 |
readinessProbe's period seconds |
TB_RABBIT_MQ.TB_QUEUE_TYPE | string | "rabbitmq" |
ThingsBoard QUEUE TYPE |
TB_RABBIT_MQ.TB_QUEUE_RABBIT_MQ_USERNAME | string | "admin" |
rabbitmq's username |
TB_RABBIT_MQ.TB_QUEUE_RABBIT_MQ_PASSWORD | string | "password1" |
rabbitmq's password |
TB_RABBIT_MQ.TB_QUEUE_RABBIT_MQ_HOST | string | "rabbitmq" |
rabbitmq's host |
TB_RABBIT_MQ.TB_QUEUE_RABBIT_MQ_PORT | int | 5672 |
rabbitmq's port |
To delete the thingsboard release:
helm delete my-release