This proposal has been approved and the Eclipse Ankaios project has been created.
Visit the project page for the latest information and development.

Eclipse Ankaios

Wednesday, April 5, 2023 - 10:57 by Holger Dormann
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Project
Parent Project
Proposal State
Created
Background

Modern automotive vehicle architecture is getting more and more complex, which comes with various challenges. Lots of applications and functionality need to be managed and updated frequently for many years, in areas such as cockpit, body and safety, and driving functions. Traditional automotive architecture mostly provides updates for whole images, which requires huge download volumes and long update times. The larger number of applications increases the resource consumption, even though not all applications are needed at the same time. Software orchestration provides several benefits to overcome these challenges. However, technologies like Kubernetes, which are proven in the cloud native world, do not match the specific requirements of automotive HPC software. Kubernetes is designed for huge distributed data centers with eventual consistency. Neither its performance nor resource usage is suited for an in-vehicle platform. A large share of functionality of existing cloud-native tools, like load balancing in Kubernetes, is not required for automotive.

Scope

Eclipse Ankaios provides workload and container orchestration for automotive High Performance Computing Software (HPCs). While it can be used for various fields of applications, it is developed from scratch for automotive use cases. It is build using Elektrobit's experience with in-vehicle software and provides a slim yet powerful solution to manage containerized applications. It supports various container runtimes with Podman as the first one, but other container runtimes and even native applications can be supported. Eclipse Ankaios is independent of existing communication frameworks like SOME/IP, DDS, or REST API.

Description

Eclipse Ankaios manages multiple nodes and virtual machines with a single unique API in order to start, stop, configure, and update containers and workloads. It provides a central place to manage automotive applications with a setup consisting of one server and multiple agents. Usually one agent per node connects to one or more runtimes that are running the workloads.

Eclipse Ankaios follows the UNIX philosophy to have one tool for one job and do that job well. It does not depend on a specific init system like systemd but can be started with any init system. It also does not handle persistency but can use an existing automotive persistency handling, e.g. provided by AUTOSAR Adaptive.

The workloads are provided access to the Eclipse Ankaios API using access control and thus are able to dynamically reconfigure the system. One possible use case is the dynamic startup of an application that is only required in a particular situation such as a parking assistant. When the driver wants to park the car, a control workload can start the parking assistant application. When the parking is finished, the parking assistant workload is stopped again.

Eclipse Ankaios also provides a CLI that allows developers to develop and test configurations. In order to gain compatibility with Kubernetes, Eclipse Ankaios accepts pod specifications.

A cloud connector can use the Eclipse Ankaios API to connect to a cloud-based software update system, which allows an OEM to manage a fleet of vehicles and provide new states to Eclipse Ankaios in order to update single or all applications. The cloud connection is optional, Eclipse Ankaios also works as standalone component.

In order to support the Automotive SPICE process, Eclipse Ankaios comes with requirements tracing supported by OpenFastTrace.

Why Here?

Eclipse SDV is the foundation of a community-driven ecosystem that consists of automotive software components and solutions for a Software Defined Vehicle. Eclipse Ankaios contributes to that open technology platform with an automotive grade component for managing complexity and software update requirements of modern automotive HPC software architectures by applying cloud native concepts to in-vehicle use cases.

As a long-term automotive software supplier, Elektrobit strives to evolve and improve the value proposition of modern cars and to develop the Software Defined Vehicle. Eclipse SDV is the perfect community for contributing Eclipse Ankaios as a vital component for making the idea of the SDV a reality.

Eclipse Ankaios can be used by existing Eclipse projects (e.g. Eclipse Kanto) but can also attract other projects and new Eclipse SDV members.

Future Work
  • Access control
  • Cloud connector sample
  • Addtional runtimes like native applications or web assembly
  • Dependency management
  • Resource quotas for applicable workloads
Project Scheduling
  • Initial contribution planned for Q3/2023
  • New releases are planned frequently at least once per quarter
Project Leads
Committers
Rostislav Matura (This committer does not have an Eclipse Account)
Interested Parties
  • Eclipse Kanto
  • Continental
Initial Contribution

Ankaios MVP with Linux support

  • Server and agent (Rust)
  • CLI (Rust)
  • VSCode development container
  • Workload examples (Rust)
  • Documentation
    • Getting started
    • Reference documentation
  • Podman runtime support
Source Repository Type