Eclipse Kanto Advances and Expands with M3 Release

Wednesday, June 7, 2023 - 03:26 by Kristiyan Gostev

Eclipse Kanto™  is a modular IoT edge software that enables devices for IoT with all essentials like cloud connectivity, digital twins, local communication, container management, and software updates - all configurable and remotely manageable by an IoT cloud ecosystem of choice.

The previous M2 release included several changes to enhance Kanto’s flexibility and improve its usability. Since then, Kanto grew significantly and established strong base for future continuous delivery and integration. We focused on implementing some of the best practices in order to achieve better resilience, smooth extendibility and simplified development process. All this is now available in the latest M3 release, published on May 30, 2023. Here are more details.

Enriched Container Management:

When you are developing containerized application there is always a need for observability, automation and service discovery. For those reasons in M3 we implemented several features that will boost the monitoring, deployment, security and container to container communication.

Reading the logs of a container is essential part of almost, if not all, steps of the effective CI/CD process. For that reason, the container management service provides two new methods for fetching the logs from the container. The first one is using the `kanto-cm` CLI tool. It can also be used remotely, without the need to be installed on the actual device. This method is suitable for development and testing purposes. For productive use cases one may prefer to utilize the other method that the container management service provides, which is fetching the logs directly form the gRPC Logs service. This method is suitable not only to fetch the logs on demand, but also you can use it to build a service around it that will get and store the container logs periodically.

There are scenarios that required certain components to be pre-configured, but not installed, or more specifically in our case, certain containers to be deployed on the first boot of the device. In other cases, you would need those containers not only to be initially deployed, but also to be updated by the container management itself on each restart of the service, similarly to the static pods in Kubernetes. With the much-appreciated help of our contributors those features are now a good way to provision your containers in an offline environment, where having cloud connectivity and utilizing the ContainerFactory feature is not suitable.

Container to container communication is not unusual, so one container must know how to connect to the other(s). However, in bridge network the IP assigned to your container will most certainly be changed when the container management service is restarted, or if the container is recreated. For that reason, in M3 we implemented a mechanism in which you can add extra hosts mappings between the containers using the container names.

Improved Connectivity:

Cloud connectivity is an essential part of Kanto, and our goal is to constantly improve in that direction. Kanto already supports various mechanisms for remote connectivity, so in M3 we focused on improving and enhancing what we already have by providing ALPN support, adding more flexibility to the MQTT communication, and we also laid the foundations of supporting connectivity to the AWS IoT Core in the near future.

Enhanced User and Contributor experience:

As Kanto continues to mature, the feature set that it provides is rapidly growing. One of our goals in M3 was to establish smooth development experience, quick onboarding of new contributors, automation and ensuring that the ever – changing requirements and the constant demand for new features are met in quick and efficient manner.

We continued our efforts to support the colorful palette of devices, some of them being with constrained capabilities and legacy hardware modules by adding support for the latest Yocto versions as well as automated workflow that verifies the integrity of the Yocto builds.

The user experience of getting started with Kanto is improved by providing new detailed how-to guides for backing up and restoring files, as well as monitoring system metrics using a Dash application. Contributor experience was also drastically improved, because verifying that each contribution preserves the integrity of Kanto has never been easier. The continuous integration and delivery processes, that are so important for the growth of any project, as well as the overall quality were heavily reinforced with integration tests that cover extensive quantity of all Kanto capabilities.

Check Out the Documentation and Get Involved:

Kanto continues to grow, and we value all our community feedback and ideas, so if you’re interested in learning more about the project, getting involved, or just share your experience, our community page is the best place to go. If you are just getting started or simply wants to explore and try it out our how-to guides will walk you through, supported by configuration references and concept insights for a deeper dive.