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
Parameter | Description | Default |
---|---|---|
image.custom | Custom Docker image registry | false |
image.repository | Repository Docker registry names | korewireless (necessary add image pull secrets to deployed pods) |
image.pullPolicy | Image pull policy for deployment | ifNotPresent |
image.tag | Image tag for deployment | latest |
Deployment parameters
Parameter | Description | Default |
---|---|---|
initenv.DEPLOYMENT_SERVER_NAME | Deployment name to Kora-Edge (i.e. Site Location) | nil |
initenv.DEPLOYMENT_API_TOKEN | Deployment API token | nil |
initenv.DEPLOYMENT_BAND | Deployment LoRaWAN band (Available Bands) | nil |
initenv.DEPLOYMENT_COORDINATE_LNG | Deployment longitude cordinate | nil |
initenv.DEPLOYMENT_COORDINATE_LAT | Deployment latitude cordinate | nil |
Network Settings parameters
Parameter | Description | Default |
---|---|---|
networkServerSettings.DISABLE_ADR | Disable Adaptative Data Rate | false |
networkServerSettings.ENABLED_UPLINK_CHANNELS | Setup sub bands | nil |
Forward parameters
Parameter | Description | Default |
---|---|---|
forwardServerSettings.FORWARD_QUEUE_SIZE | Forward queue size (when offline) | nil |
Persistent volumes parameters
Parameter | Description | Default |
---|---|---|
persistentVolume.databasesEnabled | Enable persistent volumes for databases | false |
persistentVolume.storageClassName | Specific storage class name if exist | nil |
persistentVolume.redisClaimName | Persistent volume claim name for redis database | redis-koraedge-claim |
persistentVolume.redisVolumeSize | Persistent volume size for redis database | 2Gi |
persistentVolume.postgresqlClaimName | Persistent volume claim name for postgresql database | postgresql-koraedge-claim |
persistentVolume.postgresqlVolumeSize | Persistent volume size for postgresql database | 2Gi |
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
- AS923 (AS923 without frequency offset)
- AS923-2 (AS923 with -1.80 MHz frequency offset)
- AS923-3 (AS923 with -6.60 MHz frequency offset)
- AS923-4 (AS923 with -5.90 MHz frequency offset)
- AU915
- CN470
- CN779
- EU433
- EU868
- IN865
- KR920
- RU864
- US915
- ISM2400 (LoRaWAN 2.4GHz: https://lora-developers.semtech.com/library/tech-papers-and-guides/physical-layer-proposal-2.4ghz)
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