Debian Package Manager MVC
We want to add Debian archive/repository support to our Artifact repository, to allow it to serve
Suggested MVC:
- Utilizes new
repositories
API endpoint: https://gitlab.com/gitlab-org/gitlab-ee/issues/5838- Only support a single repository with the name
debian
for now. Automatic layout.
- Only support a single repository with the name
- HTTP(S) based on GitLab's config (no ftp/sftp for now)
- Authentication
-
apt
does support HTTP basic authentication, but we will need to see if it supports header based authentication which we utilize today with our API - If so, we should add support for PAT token or CI Job Token, since our API supports that today
-
- Storage
- Local and Object Storage
- Downloading packages
- Making packages available seems to be simple,
apt
just expects a specific layout and file formats for indices
- Making packages available seems to be simple,
- Uploading packages
- Generally files get placed into a queue on disk, which are then processed
- For the MVC we can consider two stages. First is a package/upload stage, which persists the package as an artifact. The second can be a process stage, which is triggered via an API which automatically adds the package to the desired archive. This stage could be a canonical CI job which does the index regeneration based on a CI image for now, to be built into GitLab later.
See #5835 (comment 414103286) for implementation plan and MR progress and #5835 (comment 463532286) for proposed model structure.
Edited by Steve Abrams