From 21ba4ed2b7a7d626971ba39a535301877f7efcd3 Mon Sep 17 00:00:00 2001 From: Can Bulut Bayburt Date: Tue, 20 Feb 2024 14:16:47 +0100 Subject: [PATCH 1/5] RFC for Native AppStream support in Uyuni --- accepted/00101-native-appstreams.md | 74 ++++++++++++++++++ .../00101-native-appstreams-er-diagram.png | Bin 0 -> 48769 bytes .../00101-native-appstreams-test-repo.png | Bin 0 -> 37235 bytes 3 files changed, 74 insertions(+) create mode 100644 accepted/00101-native-appstreams.md create mode 100644 accepted/images/00101-native-appstreams-er-diagram.png create mode 100644 accepted/images/00101-native-appstreams-test-repo.png diff --git a/accepted/00101-native-appstreams.md b/accepted/00101-native-appstreams.md new file mode 100644 index 00000000..40e7e51d --- /dev/null +++ b/accepted/00101-native-appstreams.md @@ -0,0 +1,74 @@ +- Feature Name: Native AppStream support +- Start Date: 2024-02-19 + +# Summary +[summary]: #summary + +This RFC proposes native support for AppStreams repositories in Uyuni. + +# Motivation +[motivation]: #motivation + +Following the integration of [modularity and modular repositories](https://docs.fedoraproject.org/en-US/modularity/) in RHEL and its derivatives, Uyuni initially implemented modularity through content lifecycle management and the [introduction of AppStream filters](https://github.com/uyuni-project/uyuni-rfc/blob/master/accepted/00064-modular-repos-with-clm.md). These filters effectively remove modularity features from a repository, enabling consumption through the Uyuni UI. However, this approach introduced complexity and limited functionality, prompting the need for a more comprehensive solution. + +The goal is to seamlessly support modularity in its native form within uyuni, ensuring a user-friendly and intuitive experience across all workflows involving modular repositories. + +# Detailed design +[design]: #detailed-design + +## Overview + +The design encompasses core functionality, new UI operations, modifications to the existing CLM feature, and testing infrastructure. + +## The core design + +The core design involves three key components for data collection and filtering of packages for client consuption: + +1. **Repo-sync**: A standalone Python module that extracts module metadata from source channels using `dnf`'s `libmodulemd` library during repo-sync, serving as the source of truth for the module information. As the data gathered during this process is critical to the feature, it must be executed as a single unit with the repo-sync. + +2. **Package profile update**: A Salt state that retrieves current module information from clients, storing the data in the database. The state calls `dnf module` commands to retrieve the list of enabled module streams together with their *name*, *stream*, *version*, *context*, and *arch* values. + +3. **Package cache**: Incorporates data from repo-sync and package profile update into existing queries, ensuring proper filtering of non-enabled modular packages. The existing tables, queries and stored procedures will be updated with additional joins and proper indexing to ensure minimum performance impact. + +### ER diagram + +The following figure shows the proposed ER diagram for the core design. + +![ER diagram](images/00101-native-appstreams-er-diagram.png) + +## New UI operations + +The proposed UI includes a new page under the `System > Software` tab, visible only for clients with modular channels assigned. It displays available modules and their streams, allowing users to select and apply module changes to clients. + +The main workflow is as follows: + +1. Select an assigned modular channel. +2. Select enabled modules and their streams. +3. *Optional:* Run `mgr-libmod` for dependency resolution with real-time feedback. +4. Schedule an Uyuni action to apply the selection on the client. +5. The action calls `dnf` with the selection of module streams on the client via Salt. +6. On job return, update the selection of modules in the database. + +To allow working on multiple clients at once, SSM will be used. In the SSM, the clients in the set will be first grouped by the modular channels they are assigned to. Then the user will select a group and makes a selection of modules that applies to the whole group. + +## Content lifecycle management + +The current CLM approach will be replaced with regular *ALLOW/DENY* logic in AppStream filters. During build, module filters will be translated to package filters that apply to all packages of the module. A module will only be included in the target repository if all its packages are visible. + +During repository metadata generation, `libmodulemd` will parse and index the modular metadata from the source channels and generate the modular metadata for the target repository following the rules enforced by the attached filters. + +If all the modules are denied as a result of the enabled filters, no module metadata will be generated in the target repository. + +## Testing + +A "dummy" modular repository will be built in OBS for comprehensive testing in the CI environment. + +Below is an example of a minimal test repository: + +![Test repository](images/00101-native-appstreams-test-repo.png) + +# Unresolved questions +[unresolved]: #unresolved-questions + +- Final UI design considerations +- Whether the Salt module for profile update should be native or packaged with Uyuni diff --git a/accepted/images/00101-native-appstreams-er-diagram.png b/accepted/images/00101-native-appstreams-er-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b591c0377c2e8599f4a32725b06e69641ce2990a GIT binary patch literal 48769 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 a*XUt@P7b^-3lrI literal 0 HcmV?d00001 diff --git a/accepted/images/00101-native-appstreams-test-repo.png b/accepted/images/00101-native-appstreams-test-repo.png new file mode 100644 index 0000000000000000000000000000000000000000..822f4c6eeb08ac5563feb4f893aff92561fc8cef GIT binary patch literal 37235 zcmd3NWpo@tmz^wGlEo}pOcpaUSj=oO^N5+5nHg;{iIu$~^V&umK~*iNBeA+xU^t+f4wAC1R)7O&^3Aza;be#(-ic z8x+pCd2q+gjZj;AuWf!|Sou^oqWzNH{{%s-bj`(W&PXmd7GXHG}p(p+i z9;WG7!AP^V<6XgsCg7VQQ$b;le1fDFEMY+7F0Go6({8T8>!XP|?XUaKYu{e2H%lft z+iOszZj7}UKEV)nPgJsTk90S2B>%XOME{(PDOE^Q z2?taIeZP-ed2$s`SJyrdvUCkE7vgF?PvO5Vy>h%H3F5{e-^Pl=AKh<0`-*)H2Jis$Z`DN;Yf z6fw1z-6&a&?`LN}(X!=dI8Q-vRGQzCBnpRwQ+T*fx_R7FRP>M?fwFtVoj-<-K8tYM zRtK}sz$5jaG%dzO5K<>w|WwHMC?# zzdw6(sPZYnFvX<^+Yhxmav#UOsfM3rJmCO0#C8g-(?cUezrMOeFLK!FgR+e^rS0^6 zjQI+J$oG12WzK4lGRlB?tcRAq;{%U6eqJZUpMEUi@m_(?jHP!0tz`r%!7gX!9B@{+ zybl_C5cmV8q>gcC#8Xg6=3G^hJ)V|aNezqldkmCsdL{eczc-nhj1le3 zUp=P3ceQVT`_+aNGc`WB8w0cA7e8K+Xk}4@BCs0)GN`{H9wLN3&NNaoneaMxh~dw< z#1~Soq@MTL#G*n^nH-kmX|XOKgBQIwnY}!57EIEc007iAx{EE81(#9haRR+n@u=5@ z;Kt^G_^M5j0uO75^GId&_K0DPZ%ApS`V1S$BLg36Y<8jDE|Q@BTz06p4FwE5T)ru~ z7j4UKpf6ExI2@}hi&!;Z7N?zKh{FQBHF~8N7OUU&`ObLm#DS@!WXALrUI-WODkCv{ zks%#f*f;UwjoKLBS)a=MliJ{z+gAh@#A25@G7knL$3s#Z=r39pKw@lEc%fXXKKAKw zfWga?@OxO1HZ(8H1=s`HE@}afHG$qf1=)jlH_Syoc4I#((hGj$)z54P*}^C^va08o zpL*Wkjn)nAq8~xj~7RH<4Egt~z?aeUm<^-0Ko-mmRqr^>xBpj?+dFcZvQ&t1d>2Hl5 zAOlakUoO~BWgDBFet+NKSYI7VRTi)^4R(tZ07yCO=zjW?GT=j{ z?Hvo*3J<}jV@7c0ML9|-^LMxyEGdmc_HM6ldryLwrZ=Cj^E{kyG}6wL4hj?v8Nm5L zeBKN6C0q6@-&d;C5OcBj^&kBXIG>U14fue=s?W`E6+3B{ku=XcaCp8cWB@r7@7J}- zQhhkknYz5wwMjkbn2}U~*?TuS_pLxMyHlF)lt~5=DG*dh8b?;>0g89sGcFWnboE+@ zy8=N2@H8Nbvtj=nCo_m9@Mx=cR^&RAVsd0!d=C=ayKW|O!O`UlLBlo%GY^#(no?^Z zFXJ`%(gEmv
  • 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 YAN^T!Wp37={|rFj>FVdQ&MBb@0J*3ncK`qY literal 0 HcmV?d00001 From fb8aa3714e1edd0e568224257b8e5d11fdc5e42d Mon Sep 17 00:00:00 2001 From: Can Bulut Bayburt Date: Tue, 20 Feb 2024 14:33:28 +0100 Subject: [PATCH 2/5] Add links to the PoC code --- accepted/00101-native-appstreams.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/accepted/00101-native-appstreams.md b/accepted/00101-native-appstreams.md index 40e7e51d..a186028a 100644 --- a/accepted/00101-native-appstreams.md +++ b/accepted/00101-native-appstreams.md @@ -24,12 +24,14 @@ The design encompasses core functionality, new UI operations, modifications to t The core design involves three key components for data collection and filtering of packages for client consuption: -1. **Repo-sync**: A standalone Python module that extracts module metadata from source channels using `dnf`'s `libmodulemd` library during repo-sync, serving as the source of truth for the module information. As the data gathered during this process is critical to the feature, it must be executed as a single unit with the repo-sync. +1. **Repo-sync**: A standalone Python module that extracts module metadata from source channels using `dnf`'s `libmodulemd` library during repo-sync, serving as the source of truth for the module information. As the data gathered during this process is critical to the feature, it must be executed as a single unit with the repo-sync ([See the PoC](https://github.com/cbbayburt/uyuni/commit/ed9391e8c6e0a66d1dd7cb0f3501332b0884f2f3)). -2. **Package profile update**: A Salt state that retrieves current module information from clients, storing the data in the database. The state calls `dnf module` commands to retrieve the list of enabled module streams together with their *name*, *stream*, *version*, *context*, and *arch* values. +2. **Package profile update**: A Salt state that retrieves current module information from clients, storing the data in the database. The state calls `dnf module` commands to retrieve the list of enabled module streams together with their *name*, *stream*, *version*, *context*, and *arch* values ([see the PoC](https://github.com/cbbayburt/uyuni/commit/2c788f3144f5bfe8ddd904045e0a757a7a432923)). 3. **Package cache**: Incorporates data from repo-sync and package profile update into existing queries, ensuring proper filtering of non-enabled modular packages. The existing tables, queries and stored procedures will be updated with additional joins and proper indexing to ensure minimum performance impact. +A prototype showcasing the core functionality can be found [here](https://github.com/cbbayburt/uyuni/tree/native_appstreams_poc). + ### ER diagram The following figure shows the proposed ER diagram for the core design. From 8572ab8b5f07afac9b91c4934c1dda6de43c61a0 Mon Sep 17 00:00:00 2001 From: Can Bulut Bayburt Date: Wed, 21 Feb 2024 21:39:28 +0100 Subject: [PATCH 3/5] Add 'migration plan' question --- accepted/00101-native-appstreams.md | 1 + 1 file changed, 1 insertion(+) diff --git a/accepted/00101-native-appstreams.md b/accepted/00101-native-appstreams.md index a186028a..c531104c 100644 --- a/accepted/00101-native-appstreams.md +++ b/accepted/00101-native-appstreams.md @@ -74,3 +74,4 @@ Below is an example of a minimal test repository: - Final UI design considerations - Whether the Salt module for profile update should be native or packaged with Uyuni +- Migration plan for the typical user From 98397ce324f062c46970739423e1a35d937c9183 Mon Sep 17 00:00:00 2001 From: Can Bulut Bayburt Date: Fri, 23 Feb 2024 17:02:22 +0100 Subject: [PATCH 4/5] Resolve some questions --- accepted/00101-native-appstreams.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/accepted/00101-native-appstreams.md b/accepted/00101-native-appstreams.md index c531104c..eee66b91 100644 --- a/accepted/00101-native-appstreams.md +++ b/accepted/00101-native-appstreams.md @@ -72,6 +72,4 @@ Below is an example of a minimal test repository: # Unresolved questions [unresolved]: #unresolved-questions -- Final UI design considerations -- Whether the Salt module for profile update should be native or packaged with Uyuni - Migration plan for the typical user From ffcbad650859c4b121bbf41c857e10f214c933a0 Mon Sep 17 00:00:00 2001 From: Can Bulut Bayburt Date: Fri, 1 Mar 2024 09:48:59 +0100 Subject: [PATCH 5/5] Update UI user story Skip modular channel selection page, show all modules from all channels --- accepted/00101-native-appstreams.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/accepted/00101-native-appstreams.md b/accepted/00101-native-appstreams.md index eee66b91..2cbd5d21 100644 --- a/accepted/00101-native-appstreams.md +++ b/accepted/00101-native-appstreams.md @@ -44,8 +44,8 @@ The proposed UI includes a new page under the `System > Software` tab, visible o The main workflow is as follows: -1. Select an assigned modular channel. -2. Select enabled modules and their streams. +1. Display modules and their available streams from all the assigned modular channels +2. The user selects module streams to be enabled on the client 3. *Optional:* Run `mgr-libmod` for dependency resolution with real-time feedback. 4. Schedule an Uyuni action to apply the selection on the client. 5. The action calls `dnf` with the selection of module streams on the client via Salt.