Replies: 9 comments 2 replies
-
Here were the proposals from @tkfu ... Proposal 1: Integrating aktualizr with popular embedded software updatersAktualizr is an Uptane client written in C++ targeting embedded Linux systems. Uptane’s core functionality is securing and validating software updates in very security-sensitive and safety-critical systems. Aktualizr combines two important areas of functionality: implementing Uptane to actually validate software updates, and then installing those software updates. Currently, aktualizr only supports OSTree as a method of installing updates as an Uptane primary. This GSoC project would contribute to aktualizr to implement support for an A/B partition-based update method—either through Swupdate or RAUC, two popular open-source software updaters. There is already support in libaktualizr for using additional package managers, so the integration point is ready. Ideally, however, this would be done with collaboration from the maintainers of these projects. Key skills required: Systems-level programming in C++ Proposal 2: Creating an open-source web UI for OTA Community EditionThe Uptane project has open-source implementations of the core back-end services required to operate an Uptane system at scale, with Scala implementations of a device registry, director server, and TUF image repo server. These services are used in real-world implementations, but generally require some expertise both to set up and to use. A simplified, docker-based method of deploying the services is available with OTA Community Edition, so a developer with sufficient experience can get a working base system. However, this system doesn’t have a UI, a key element for allowing ordinary users to interact with the system. This GSoC project would develop a new, simplified UI from scratch and integrate it into OTA Community Edition, allowing users evaluating Uptane to use the entire system. It should also include a robust test suite for all areas of functionality, to ensure that any upstream changes in the core services don’t break the UI. Key skills required: Front-end/UI development, automated testing, CI/CD Proposal 3: Open-source Uptane server (“OTA Community Edition”) in line with latest 2.1.0 Uptane releaseNote : This is a copy of one of the uncompleted 2022 GSoC proposals. Adding here for further discussion. The Uptane project has an open-source, scalable, high-performance Uptane server implementation. Originally developed by Advanced Telematics Systems (now HERE), it is a collection of microservices written in Scala and BSD licensed. However, there’s one big problem: it’s not that easy to run. There are several reasons for this: It’s a collection of microservices, designed to scale big. You need to do some service orchestration (k8s recommended) to run it. There are public helm charts and k8s configs, but they’re not maintained very actively, or tested automatically as services change. Its internal APIs are mostly undocumented or poorly documented. To figure things out, you have to go read the source code. Currently, no open-source UI that is being maintained. The HERE UI for OTA Connect used to work, but the company eventually decided to stop maintaining and testing the Community Edition UI. As a consequence, the HERE UI is still public and open source, but it assumes the presence of some closed-source, HERE-internal services. As a result, it no longer works with a deployment of just the public open-source services. [Fixing the UI is the focus of proposal 2.] This situation wasn’t a problem when a developer could easily create an account on HERE’s OTA Connect service, and use libaktualizr with that. But since that service is sunsetting, it’s no longer easy for an individual developer to make use of Uptane, be it for an early-stage automotive project using Automotive Grade Linux or just for an IoT project. The open-source community will benefit from having access to a high-quality, usable Uptane implementation. This GSoC project would be to revive and release OTA Community Edition, so that it’s actually possible/reasonable for an individual developer or a small development team to spin up their own Uptane server instance. That would include working on the ota-community-edition repository and the startup scripts/helm charts therein, and writing documentation of the APIs needed for standard Uptane flows. It could also potentially combine several (or all) of the current microservices into a pseudo-monolith to make it easier to run in situations where scaling isn’t important. |
Beta Was this translation helpful? Give feedback.
-
For proposal 2...
Should we include "Scala"? My concern is that this limits who can mentor as well as the possible pool of candidates to do the project. |
Beta Was this translation helpful? Give feedback.
-
@hexsecs I would like to discuss proposal 2 more with mentors to understand more about the project and develop a project proposal regarding it. I am also interested in Proposal 1, but I have less experience with System-level programming (I have good knowledge of C++). Are there any resources from where I can learn more about System-level programming and become a good candidate for Proposal 1? |
Beta Was this translation helpful? Give feedback.
-
Should we add another proposal to update OTA community edition to support the latest specification? 2.1.0 |
Beta Was this translation helpful? Give feedback.
-
@tkfu - is your intent with proposal 2, to include all of scope of proposal 3 (the 2022 community edition proposal)? |
Beta Was this translation helpful? Give feedback.
-
I posted proposals 1 and 2 on the LinuxFoundation site. |
Beta Was this translation helpful? Give feedback.
-
@hexsecs aren't there more proposals? |
Beta Was this translation helpful? Give feedback.
-
Hi. I'm interested in the Proposal 1, but I don't have any knowledge in Systems-level programming. In the other hand, I believe I have a good level in C and C++. Do you think it's possible to succeed in this project only knowing C and C++ and learning system-level programming in the process? |
Beta Was this translation helpful? Give feedback.
-
you can find more details about this on our discord in #gsoc-2024 channel |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
We are looking for project proposal ideas for Google Summer of Code 2024.
Beta Was this translation helpful? Give feedback.
All reactions