Skip to content

Renelick logo

Data-Driven Task Orchestration

Renelick is a full-stack solution to orchestrate tasks and manage the data they produce. Its historical use-case was to test the upstream Linux kernel which is now handled by VIXI. It has since matured into a generic framework for automating pretty much anything: microgrids, home appliances, IT systems monitoring, DevOps...

Beta Testing available

See the Quick Start Guide to access the Beta Testing public instance with a standalone client.

Renelick cycle

Renelick cycle

It brings together the classic concepts of events, tasks and data:

  • New data generate events
  • Events trigger tasks
  • Tasks produce new data

These three features can be used in arbitrary ways to store and retrieve data, schedule tasks or send messages between services as you see fit. Applications decide how to make use of this for their own purposes and how to integrate with other systems.

Status & Roadmap

The full design has now been finalised after a comprehensive review and a successful proof-of-concept stage. A first stable release with the v1.0.0rc1 and v1.0.0rc2 milestones is underway. A public instance has been deployed on beta.renelick.org for Beta Testing. Follow the standalone client Quick Start Guide to get rolling and play with it; no user account is required to access it in read-only mode.

Beta Testing user accounts

Beta Testing user accounts are being gradually issued on a case-by-case basis. They give full access to the API and the web frontend. To request one:

GitLab issue    "New item"    Description template: "Account Request"

Beyond the core services, a reference Weather Watchdog application as well as VIXI, a full-fledged kernel testing project are being developed. They helped getting the API to a stable stage during Alpha Testing and are now being deployed on top of the Beta Testing instance.

In addition to the milestones, some blog posts are being published regularly to share the news.

Overview

The API implementation is based on FastAPI which includes a JSON description. This is used to generate the client-side Python API bindings and command line interface as well as the Typescript frontend client. Additional languages such as Rust can be enabled too.

Runtime environments are where tasks get scheduled and run. This can be done anywhere as long as a driver is available. As of today, the inline driver can be used to run tasks directly in the current Python process and tekton for running Cloud-native pipelines in Tekton. Other runtimes on the roadmap are GCP on-demand VMs, LAVA and local Docker and QEMU.

A basic storage solution is available using SSH for file uploads and HTTP for downloads. For a production deployment, any third-party storage provider may be used with a dedicated driver. The only requirement is that files be reachable via direct URLs since this is how artifacts are managed in the database.

Development

Please take a look at the Quick Start Guide to set up a local development instance. The code is all publicly hosted on GitLab with GitLab CI enabled to automatically run static checks and end-to-end smoke tests on merge requests.

License

Unless explicitly mentioned otherwise, the Renelick software is licensed under GNU LGPL v2.1 or later.

The Renelick frontend is licensed under MIT.

The Renelick documentation is licensed under CC BY-SA 4.0