Skip to main content

Kora-Edge

Kora-Edge is the most complete and modern solution for IoT delivery deployment for on-premise environments and edge computing for LoRaWAN.

This Helm chart is stable

The Kora-Edge repository is already included in the Hubs and we will continue providing the same cadence of updates, support, etc that we've been keeping here these years. Installation instructions are very similar, just adding the kora-edge repo and using it during the installation (korewireless/kora-edge instead of stable/<chart>)

$ helm repo add korewireless https://kora.korewireless.com/helm
$ helm install kora-edge korewireless/kora-edge # Helm 3
$ helm install --name kora-edge korewireless/kora-edge # Helm 2

To update an exisiting stable deployment with a chart hosted in the Kora repository you can execute

$ helm repo add korewireless https://kora.korewireless.com/helm
$ helm upgrade kora-edge korewireless/kora-edge

Introduction

This chart bootstraps a Kora-Edge deployment on a Kubernetes cluster using the Helm package manager.

Prerequisites

  • Kubernetes 1.12+ and <1.25.9
  • Helm 2.11+ or Helm 3.0-beta3+
  • PV provisioner support in the underlying infrastructure
  • ReadWriteMany volumes for Redis and PostgreSQL deployment scaling

Installing the Chart

To install the chart with the release name kora-edge:

helm install kora-edge korewireless/kora-edge --namespace kore

The command deploys Kora-Edge on the Kubernetes cluster in the default configuration. The Parameters section lists the parameters that can be configured during installation.

Tip: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the kora-edge deployment:

helm delete kora-edge --namespace kore
or
helm uninstall kora-edge --namespace kore

The command removes all the Kubernetes components associated with the chart and deletes the release.

Using the deployment

After its installation, you will be able to see the deployment in you Kora platform. You have to create an Organization that uses this deployment (pick the name on Deployment select) then create applications normally. All devices and gateways created in any application that belongs to this organization will be provisioned in this deployment.

Configuring your gateway

By default, this deployment chart will expose the port 31700 UDP. Configure your gateway to point to your cluster-address:31700 Restart the gateway and you will be able to see gateway stats on Gateway Page

Parameters

The following table lists the configurable parameters of the Kora-Edge chart and their default values per section/component:

Image parameters

ParameterDescriptionDefault
image.customCustom Docker image registryfalse
image.repositoryRepository Docker registry nameskorewireless (necessary add image pull secrets to deployed pods)
image.pullPolicyImage pull policy for deploymentifNotPresent
image.tagImage tag for deploymentlatest

Deployment parameters

ParameterDescriptionDefault
initenv.DEPLOYMENT_SERVER_NAMEDeployment name to Kora-Edge (i.e. Site Location)nil
initenv.DEPLOYMENT_API_TOKENDeployment API tokennil
initenv.DEPLOYMENT_BANDDeployment LoRaWAN band (Available Bands)nil
initenv.DEPLOYMENT_COORDINATE_LNGDeployment longitude cordinatenil
initenv.DEPLOYMENT_COORDINATE_LATDeployment latitude cordinatenil

Network Settings parameters

ParameterDescriptionDefault
networkServerSettings.DISABLE_ADRDisable Adaptative Data Ratefalse
networkServerSettings.ENABLED_UPLINK_CHANNELSSetup sub bandsnil

Forward parameters

ParameterDescriptionDefault
forwardServerSettings.FORWARD_QUEUE_SIZEForward queue size (when offline)nil

Persistent volumes parameters

ParameterDescriptionDefault
persistentVolume.databasesEnabledEnable persistent volumes for databasesfalse
persistentVolume.storageClassNameSpecific storage class name if existnil
persistentVolume.redisClaimNamePersistent volume claim name for redis databaseredis-koraedge-claim
persistentVolume.redisVolumeSizePersistent volume size for redis database2Gi
persistentVolume.postgresqlClaimNamePersistent volume claim name for postgresql databasepostgresql-koraedge-claim
persistentVolume.postgresqlVolumeSizePersistent volume size for postgresql database2Gi

The above parameters map to the env variables defined in labs-kore/kora-edge. For more information please refer to the labs-kore/kora-edge image documentation.

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

helm install kora-edge \
--set initenv.DEPLOYMENT_SERVER_NAME='Demo Deployment'
--set forwardServerSettings.FORWARD_QUEUE_SIZE=5000 \
--set persistentVolume.databasesEnabled=true \
korewireless/kora-edge -n kore

The above command sets the Kora-Edge administrator account username and password to admin and password respectively. Additionally, it sets the MariaDB root user password to secretpassword.

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

helm install kora-edge -f values.yaml korewireless/kora-edge

Tip: You can use the default values.yaml

Persistence

The Kora-Edge image stores the Kora-Edge data and configurations at the /labs-kora path of the container.

Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube. See the Parameters section to configure the PVC or to disable persistence.

Available Bands

Sub Bands (Examples)

To enable specific sub-bands in your deployment you have to specify which channels will be enabled.

Example #1

A 8 channels gateway in AU915, you have to specify:

networkServerSettings.ENABLED_UPLINK_CHANNELS = [0,1,2,3,4,5,6,7,64] It means you are using first sub-band (channels 0 to 7 + downlink channel 64.


Example #2

A 16 channels gateway in US915, you have to specify:

networkServerSettings.ENABLED_UPLINK_CHANNELS = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,64,65] It means you are using first sub-band (channels 0 to 15 + downlink channels 64 and 65.


You can chose any available sub-band in the frequency plan, for reference, check LoRaWAN Regional Parameters

if you set invalid channels, the deployment will fail