Closed Starbix closed 3 months ago
Well okay that seems to be another complex feature request, I never heard of modules and groups to be honest and I can't just remove createrepo.
Like I said in some other issues I don't have time these days to work on such hard features which require a lot of changes and tests. I'm coding Repomanager on my own personal time and such feature could require a complete day to be implemented and tested. I'm sorry but don't expect it to be released any day soon.
I don't know about Spacewalk but if you really need a solution that can fully integrate into your IT system, maybe have a look at paid solutions (i.e. Redhat Satellite & co)?
Yeah I totally get that. Depending on the decision of Spacewalk's replacement I may be able to implement this change on company time, if you are interested in PRs. We are looking for something that is less complex than Spacewalk (its performance is also really bad and thus hinders our workflow) and without a subscription.
Anyways, enjoy your summer:)
I am open to PRs, feel free to contribute if you wish, others have already done so :)
It's been a rainy day today and I took some time to work on this. I think I should be able to provide a "beta" release of this feature for the next week but I will need your help to do some tests because I am very not comfortable with those modules and groups things.
I will keep you in touch.
I think I have finished developing the feature.
On your side, could you set up a new docker instance for tests, based on the devel branch? You will have access to the 4.4.0 release version and the feature. It would help me a lot if you could confirm that dnf groups and modules are working as expected before merging and realeasing.
To build a container from the devel sources, you have to specify env: devel
in the build arguments. E.g. with docker-compose:
---
version: "3"
services:
repomanager:
container_name: repomanager
image: repomanager
build:
context: .
dockerfile: Dockerfile
args:
env: devel # <--- here
fqdn: repomanager.example.com # change to your FQDN
max_upload_size: 32M
restart: always
ports:
- "8080:8080"
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/lib/docker/volumes/repomanager-data:/var/lib/repomanager
- /var/lib/docker/volumes/repomanager-repo:/home/repo
Thanks for the help.
Wow thanks so much! Modules, groups and updateinfo are all working now!! Setting "Task execution memory limit" to 1GiB also seems to fix the issues with XML parsing for Oracle Linux repos.
Thanks for the feedback, I will merge this.
Note: I just opened a discord channel here https://discord.gg/34yeNsMmkQ if you need quick help or ask questions (french or english spoken). In some case I think it can be easier to chat for quick debugging.
I'm currently evaluating repomanager as a replacement for Spacewalk since it only causes trouble for us. We're almost exclusively using Oracle Linux 8 and rely on DNF module streams. Repomanager doesn't download information about modules and thus if we were to replace Spacewalk with repomanager our machines would break. Example: We're using the default 5.26 perl module stream and thus we only get perl 5.26 packages. Repomanager doesn't have module information so our hosts would try to install perl 5.32, breaking lots of packages.
This module information is stored in
*-modules.yaml.gz
files (see https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/repodata/). Other files may also be necessary for all functionality.I've tried simply downloading all the files present in repodata/ to the corresponding directory in /home/repo and the client was able to get information about modules.
I'm not quite sure of the architecture of repomanager, but having the modules file present on disk and in the repomd.xml should suffice I think. It would be amazing if this could be implemented!
If modules aren't working the module list looks like this (note @modulefailsafe):
If it does it looks like this:
EDIT: the same goes for DNF groups
I found the corresponding documentation from Red Hat:
You should not use createrepo on a RHEL 8 repository or you will delete the module data. reposync was updated to download all of the repodata for you making a local repository, a single command. How to create a local mirror of the latest update for Red Hat Enterprise Linux 8 and 9 without using Satellite server?
Raw
If you use createrepo on a RHEL 8 repository, you must also: add the comps.xml with createrepo for groups add the updateinfo.xml from cache for security package identification add the modules.yaml from cache for modules, and you have to do this or you will encounter massive dependency issues.
Raw