Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions charts/hono/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,24 @@ name: hono
description: |
Eclipse Hono™ provides remote service interfaces for connecting large numbers of IoT devices to a back end and
interacting with them in a uniform way regardless of the device communication protocol.
version: 2.6.6
version: 2.7.0
# Version of Hono being deployed by the chart
appVersion: 2.6.0
appVersion: 2.7.0
keywords:
- iot-chart
- IoT
- connectivity
- messaging
- Kafka
home: https://www.eclipse.org/hono/
home: https://eclipse.dev/hono
sources:
- https://github.com/eclipse-hono/hono
icon: https://eclipse.dev/hono/img/hono-logo_image.svg
maintainers:
- name: dejanb
email: dbosanac@redhat.com
- name: sophokles73
email: kai.hudalla@bosch.io
email: sophokles.kh@gmail.com
dependencies:
- name: "prometheus"
version: "^14.x"
Expand All @@ -44,9 +44,9 @@ dependencies:
condition: "grafana.enabled"
- name: "mongodb"
repository: "oci://registry-1.docker.io/bitnamicharts"
version: "~13.x"
version: "~15.x"
condition: "mongodb.createInstance"
- name: "kafka"
repository: "oci://registry-1.docker.io/bitnamicharts"
version: "^26.8"
version: "^31.1"
condition: "kafkaMessagingClusterExample.enabled"
55 changes: 31 additions & 24 deletions charts/hono/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Eclipse Hono

[Eclipse Hono™](https://www.eclipse.org/hono/) provides remote service interfaces for connecting large
[Eclipse Hono™](https://eclipse.dev/hono/) provides remote service interfaces for connecting large
numbers of IoT devices to a back end and interacting with them in a uniform way regardless of the device
communication protocol.

Expand All @@ -10,11 +10,11 @@ This repository contains a *chart* that can be used to install Hono to a Kuberne
## Prerequisites

Installing Hono using the chart requires the Helm tool to be installed as described on the
[IoT Packages chart repository prerequisites](https://www.eclipse.org/packages/prereqs/#helm)
[IoT Packages chart repository prerequisites](https://eclipse.dev/packages/prereqs/#helm)
page.

In addition, a Kubernetes cluster to install the chart to is required.
See the corresponding section on the [IoT Packages prerequisites](https://www.eclipse.org/packages/prereqs/#kubernetes-cluster)
See the corresponding section on the [IoT Packages prerequisites](https://eclipse.dev/packages/prereqs/#kubernetes-cluster)
page for information on how to set up a cluster suitable for running Hono.

The Helm chart is being tested to successfully install on the four most recent Kubernetes versions.
Expand Down Expand Up @@ -101,6 +101,13 @@ The command removes all the Kubernetes components associated with the chart and

## Release Notes

### 2.7.0

* Use Hono 2.7.0 container images.
* Explicitly allow usage of binamilegacy images by default.
* Updated Apache ActibeMQ Artemis image to most recent version.
* Updated Infinispan server to version 15.2

### 2.6.6

* Update the Hono Grafana dashboards from schemaVersion 16 to 38.
Expand Down Expand Up @@ -344,7 +351,7 @@ adapters:
```

*adapters.kafkaMessagingSpec* needs to contain configuration properties as described in Hono's
[Kafka client admin guide](https://www.eclipse.org/hono/docs/admin-guide/hono-kafka-client-configuration/).
[Kafka client admin guide](https://eclipse.dev/hono/docs/admin-guide/hono-kafka-client-configuration/).
Make sure to adapt/add properties as required by the Kafka cluster.

Assuming that the file is named `customKafkaCluster.yaml`, the values can then be passed in to the Helm `install`
Expand Down Expand Up @@ -411,7 +418,7 @@ adapters:
```

All of the *specs* need to contain Hono client configuration properties as described in the
[client admin guide](https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/).
[client admin guide](https://eclipse.dev/hono/docs/admin-guide/hono-client-configuration/).
Make sure to adapt/add properties as required by the custom service implementations.
The information contained in the *specs* will then be used by all protocol adapters that get deployed.

Expand Down Expand Up @@ -518,7 +525,7 @@ adapters:
```

Both the *amqpMessagingNetworkSpec* and the *commandAndControlSpec* need to contain Hono client configuration properties
as described in the [client admin guide](https://www.eclipse.org/hono/docs/admin-guide/hono-client-configuration/).
as described in the [client admin guide](https://eclipse.dev/hono/docs/admin-guide/hono-client-configuration/).
Make sure to adapt/add properties as required by the AMQP Messaging Network.

Note that *my-secret* is expected to already exist in the namespace that Hono gets installed to, i.e. the Helm chart
Expand Down Expand Up @@ -562,7 +569,7 @@ The dashboard can then be opened by pointing your browser to `http://localhost:3
The chart can be customized to use container images other than the default ones. This can be used to install an older
version of the images or to install a Hono milestone using the chart. It can also be used to install custom built
images that need to be pulled from a different (private) container registry. Please refer to Hono's
[build instructions](https://www.eclipse.org/hono/docs/dev-guide/building_hono/#pushing-images) for details regarding
[build instructions](https://eclipse.dev/hono/docs/dev-guide/building_hono/#pushing-images) for details regarding
building custom images and pushing them to a private container registry.

The `values.yaml` file contains configuration properties for setting the container image and tag names to use for
Expand All @@ -573,15 +580,15 @@ The following command installs Hono using custom built images published on a pri
*2.0.0-custom* instead of the ones indicated by the chart's *appVersion* property:

```bash
helm install eclipse-hono eclipse-iot/hono -n hono --wait --set honoImagesTag=2.0.0-custom --set honoContainerRegistry=my-registry:9090
helm install eclipse-hono eclipse-iot/hono -n hono --wait --set honoImagesTag=2.7.0-custom --set honoContainerRegistry=my-registry:9090
```

It is also possible to define the image and tag names and container registry for each component separately.
The easiest way to do that is to create a YAML file that specifies the particular properties:

```yaml
# pull standard adapter images in version 2.0.0 from Docker Hub by default
honoImagesTag: "2.0.0"
# pull standard adapter images in version 2.7.0 from Docker Hub by default
honoImagesTag: "2.7.0"

deviceRegistryExample:
# pull custom Device Registry image from private container registry
Expand All @@ -592,7 +599,7 @@ deviceRegistryExample:
authServer:
# pull "older" release from Docker Hub
imageName: "eclipse/hono-service-auth"
imageTag: "1.12.2"
imageTag: "2.6.0"
```

Assuming that the file is named `customImages.yaml`, the values can then be passed in to the
Expand All @@ -614,28 +621,28 @@ details regarding the setup and configuration of a private container registry.

### Deploying via a private Registry

Please refer to Hono's [Building from Source](https://www.eclipse.org/hono/docs/dev-guide/building_hono/) instructions
Please refer to Hono's [Building from Source](https://eclipse.dev/hono/docs/dev-guide/building_hono/) instructions
for details regarding getting the source code, building and pushing the container images.

As in the previous section, the names of the custom images are configured in a YAML file:

```yaml
# use version 2.0.0-CUSTOM
honoImagesTag: "2.0.0-CUSTOM"
# use version 2.7.0-CUSTOM
honoImagesTag: "2.7.0-CUSTOM"

deviceRegistryExample:
imageName: "my.registry.io/eclipse/hono-service-device-registry-mongodb"
imageName: "my.registry.io/eclipsehono/hono-service-device-registry-mongodb"
authServer:
imageName: "my.registry.io/eclipse/hono-service-auth"
imageName: "my.registry.io/eclipsehono/hono-service-auth"
commandRouterService:
imageName: "my.registry.io/eclipse/hono-service-command-router-infinispan"
imageName: "my.registry.io/eclipsehono/hono-service-command-router-infinispan"
adapters:
amqp:
imageName: "my.registry.io/eclipse/hono-adapter-amqp"
imageName: "my.registry.io/eclipsehono/hono-adapter-amqp"
mqtt:
imageName: "my.registry.io/eclipse/hono-adapter-mqtt"
imageName: "my.registry.io/eclipsehono/hono-adapter-mqtt"
http:
imageName: "my.registry.io/eclipse/hono-adapter-http"
imageName: "my.registry.io/eclipsehono/hono-adapter-http"
```

Assuming that the file is named `customImages.yaml`, the values can then be passed in to the
Expand Down Expand Up @@ -700,7 +707,7 @@ with 80% of the container's memory limit being available to the process like thi

```yaml
authServer:
imageName: "eclipse/hono-service-auth-native"
imageName: "eclipsehono/hono-service-auth-native"
cmdLineArgs:
- "-Xmx24m"
resources:
Expand All @@ -715,10 +722,10 @@ authServer:
## Configuring Storage for Command Routing Data

Hono needs to store information about the connection status of devices during runtime.
This kind of information is used for determining how [command & control](https://www.eclipse.org/hono/docs/concepts/command-and-control/)
This kind of information is used for determining how [command & control](https://eclipse.dev/hono/docs/concepts/command-and-control/)
messages, that are sent by business applications, can be routed to the protocol adapters that the target devices are connected to.

Hono's protocol adapters can use the [Command Router API](https://www.eclipse.org/hono/docs/api/command-router/) to supply
Hono's protocol adapters can use the [Command Router API](https://eclipse.dev/hono/docs/api/command-router/) to supply
device connection information with which a Command Router service component can route command & control messages to the
protocol adapters that the target devices are connected to.

Expand Down Expand Up @@ -791,7 +798,7 @@ cluster and how to install Hono to it. The steps described include:
* Helm based installation of Hono to the AKS instance.
* (Optionally) using a managed [Azure Service Bus](https://docs.microsoft.com/azure/service-bus-messaging) instance as the
broker component for Hono's
[AMQP 1.0 based messaging infrastructure](https://www.eclipse.org/hono/docs/architecture/component-view/#amqp-10-based-messaging-infrastructure)
[AMQP 1.0 based messaging infrastructure](https://eclipse.dev/hono/docs/architecture/component-view/#amqp-10-based-messaging-infrastructure)
instead of the Apache ActiveMQ Artemis instance that is installed by the chart by default.
- [Virtual Network (VNet) service endpoints](https://docs.microsoft.com/azure/virtual-network) ensure protected communication
between AKS and Azure Service Bus.
Expand Down
22 changes: 7 additions & 15 deletions charts/hono/ci/quarkus-native-images-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,48 +32,42 @@ kafka:
create: false

authServer:
imageName: "eclipse/hono-service-auth-native"
imageName: "eclipsehono/hono-service-auth-native"
cmdLineArgs:
- "-Xmx24m"
resources:
requests:
cpu:
memory: "30Mi"
limits:
cpu:
memory: "30Mi"

commandRouterService:
imageName: "eclipse/hono-service-command-router-infinispan-native"
imageName: "eclipsehono/hono-service-command-router-infinispan-native"
cmdLineArgs:
- "-Xmx96m"
- "-Xmx110m"
resources:
requests:
cpu:
memory: "120Mi"
memory: "140Mi"
limits:
cpu:
memory: "120Mi"
memory: "140Mi"

deviceRegistryExample:
embeddedJdbcDeviceRegistry:
imageName: "eclipse/hono-service-device-registry-jdbc-native"
imageName: "eclipsehono/hono-service-device-registry-jdbc-native"
cmdLineArgs:
- "-Xmx160m"
resources:
requests:
cpu:
memory: "120Mi"
limits:
cpu:
memory: "120Mi"

adapters:
amqp:
enabled: false
coap:
enabled: true
imageName: "eclipse/hono-adapter-coap-native"
imageName: "eclipsehono/hono-adapter-coap-native"
cmdLineArgs:
- "-Xmx96m"
hono:
Expand All @@ -86,10 +80,8 @@ adapters:
maxConnections: 70
resources:
requests:
cpu:
memory: "120Mi"
limits:
cpu:
memory: "120Mi"
http:
enabled: false
Expand Down
6 changes: 3 additions & 3 deletions charts/hono/config/artemis/liveness-probe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#

brokerName=${1:-hono-broker}
url="http://localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=%22${brokerName}%22/Version"

curl -s --user artemis:artemis -H "Origin: http://0.0.0.0" ${url}
brokerIP=`hostname -I | cut -f 1 -d ' '`
url="http://${brokerIP}:8161/console/jolokia/read/org.apache.activemq.artemis:broker=%22${brokerName}%22/Version"

curl -s --user artemis:artemis -H "Origin: http://${brokerIP}" ${url}
6 changes: 3 additions & 3 deletions charts/hono/config/artemis/readiness-probe.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

brokerName=${1:-hono-broker}
acceptorName=${2:-amqps}
url="http://localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=%22${brokerName}%22,component=acceptors,name=%22${acceptorName}%22/Started"

curl -s --user artemis:artemis -H "Origin: http://0.0.0.0" ${url} | grep "\"value\":true"
brokerIP=`hostname -I | cut -f 1 -d ' '`
url="http://${brokerIP}:8161/console/jolokia/read/org.apache.activemq.artemis:broker=%22${brokerName}%22,component=acceptors,name=%22${acceptorName}%22/Started"

curl -s --user artemis:artemis -H "Origin: http://${brokerIP}" ${url} | grep "\"value\":true"
11 changes: 5 additions & 6 deletions charts/hono/config/command-router/embedded-cache-config.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2021, 2022 Contributors to the Eclipse Foundation
Copyright (c) 2021 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional
information regarding copyright ownership.
Expand All @@ -11,15 +11,14 @@

SPDX-License-Identifier: EPL-2.0
-->
<infinispan
<infinispan
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:13.0 https://infinispan.org/schemas/infinispan-config-13.0.xsd"
xmlns="urn:infinispan:config:13.0">

xsi:schemaLocation="urn:infinispan:config:15.2 https://infinispan.org/schemas/infinispan-config-15.2.xsd"
xmlns="urn:infinispan:config:15.2">
<cache-container default-cache="command-router">
<local-cache name="command-router" simple-cache="true">
<encoding media-type="application/x-protostream" />
<memory max-count="200" storage="OFF_HEAP" when-full="REMOVE"></memory>
<memory max-size="10 MB" storage="OFF_HEAP" when-full="REMOVE"></memory>
</local-cache>
</cache-container>
</infinispan>
Loading