Eclipse Kanto Release v1.0.0

Thursday, June 13, 2024 - 02:41 by Kristiyan Gostev

It has been more than a year since the last Eclipse Kanto release and since then, the project has grown significantly. In the past year, the Kanto community opened almost two hundred pull requests to contribute new features, improvements, and fixes. Eclipse Kanto also received two entirely new components that were contributed by the community – AWS Connector and Update Manager

During that time, we also participated in many exciting open-source partnerships and initiatives with SUSE, Linaro and Oniro. Together we successfully created proof of concepts to highlight the compatibility of our products, created reference architectures and enabled interoperability testing for Kanto. 

Working on this release was an immense pleasure not only due to the progress that we achieved with the project, but mostly because of the interaction with the open-source community. Because of that, the Kanto team and I would like to express our great gratitude towards all contributors, users, and partners! 

Two new components: 

  • The AWS Connector is an optimized, secured, maintained, and synchronized service that enables remote connectivity to an AWS IoT cloud ecosystem. It provides application protection by being the only component with a remote connectivity i.e., all local applications are protected from exposure to the public network. The AWS Connector also has an offline mode so local applications do not need to care about the status of the remote connection, they can stay fully operable in offline mode. And of course - Device Shadows - messages sent to the Twin Channel are converted to messages more suitable for AWS Device Shadow service and sent to it. Find out more about it here
  • The Update Manager empowers the edge device for OTA (Over the air) updates. It is a lightweight core component capable of easily performing complex OTA update scenarios on a target device. The update process is initiated by sending the desired state specification as an MQTT message towards the device. The Update Manager component handles that communication, and it is responsible for processing the desired state specification by distributing the split across different domain agents. The Update Manager orchestrates the update process using MQTT-based commands. The component is also capable of collecting and consolidating the feedback responses from the domain update agents and reporting the result of the campaign to the backend. You can easily try it out with this how-to guide

Container Management Improvements: 

  • Signed container images - Making sure a solution works with trusted container images is an important security aspect for us. That is why we spent lots of time and effort to provide this feature, using the notation library. In the new release, it is now possible to run signed container images and assign notation trust policies. Check out the how-to guide to get a better understanding of the feature and get started. 
  • Container Update Agent – An update agent (or domain agent) is a separate and independent software component, which implements the Update Agent API for interaction with the Update Manager and manages the update logic for a concrete domain. In this case, this is the containers update. The update agent comes with the Container Management service and provides a sophisticated mechanism for updating containers with a rollback mechanism based on the desired state. You can get more details about this feature in this how-to guide
  • Quality of life improvements – To make your experience as good as possible we added several new features to the Kanto Container Management CLI. It is now possible to set different Linux capabilities to a container, create a container from a container configuration JSON file, remove more than one container at a time and filter the `list` command output. The local communication properties are also global for all gRPC services. 

Example applications: 

We have created a repository to accommodate all example applications that can be used by the community to quickly start their projects with Eclipse Kanto. These are the example applications you can use. 

  • The Vehicle Simulator is used to feed simulated vehicle data and showcase the cloud connectivity that comes with Kanto. The data is simple and simulates a small portion of actual data that can be sent by a vehicle.  
  • The Kuksa Example is an application that connects to Eclipse Kuksa Databroker and demonstrates how the COVESA Vehicle Signal Specification (VSS) data could be transformed into a digital twin using Eclipse Kanto.  
  • The Update Agent demonstrates how a custom domain agent works by implementing the Update Agent API to update a certain domain inside the target device. In the case of the Files Update Agent application, it is used to manage the files inside of a directory on the target device. 

Open-source collaborations: 

  • Eclipse Kanto is in the center of Bosch and SUSE’s joined reference architecture for industrial IoT with a hybrid cloud and monitoring as an enabler for devices for the IoT world. Together we combined our software stacks and delivered an interesting PoC (Proof of Concept) featuring an industrial robot. This PoC once again proves how easy it is to tackle the challenges of digital transformation with open-source products and standards.  
  • I am also more than happy to share that Eclipse Kanto is part of Linaro’s ONELab. Integration and interoperability of edge devices is challenging enough, but when you combine that with the constantly growing and developing software world it easily becomes a nightmare. Being part of the ONELab project we can be confident that Eclipse Kanto took a significant step towards overcoming the challenges of cloud-native edge computing. 
  • And last but not least, we teamed up with Oniro to show how to integrate third-party services, specifically Kanto and Mosquitto, into the Oniro-OpenHarmony build system. This is a significant step forward to expand Kanto’s supported platforms and to bring the project to Oniro’s community. You can check out this project to get started. 

Kanto Add-ons: 

To accommodate the growing demand from the industry for domain specific components and features, we need to fully embrace the Eclipse ecosystem and build suitable add-ons for Eclipse Kanto, with its own governance, roadmap and experts. The idea is well described, and it also has it’s first candidate. This is also an invitation to the industries to build their open source solution in an environment and community that is dedicated to working with them for their success. 

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 sharing your experience, our community page is the best place to go. If you are just getting started or simply want 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.