Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE REQUEST] Separate package repositories into the previous per major version structure #67778

Open
rossengeorgiev opened this issue Feb 27, 2025 · 2 comments
Labels
Feature new functionality including changes to functionality and code refactors, etc. needs-triage

Comments

@rossengeorgiev
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Currently, all salt packages are in a single repo. That means both LTS and STS releases are in the same repo. Anyone who wants to mirror the repository, and only target a specific version, needs to do extra work that is often hacky to separate the different versions. Specifically, someone who wants to stick to LTS only releases and mirror.

For RPMs I see there is an attempt to implement a workaround with excludes, which also creates a timebomb for someone in the future using an outdated repo file. This is hacky.

https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo

[salt-repo-3006-lts]
name=Salt Repo for Salt v3006 LTS
baseurl=https://packages.broadcom.com/artifactory/saltproject-rpm/
skip_if_unavailable=True
priority=10
enabled=1
enabled_metadata=1
gpgcheck=1
exclude=*3007* *3008* *3009* *3010*
gpgkey=https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public

[salt-repo-3007-sts]
name=Salt Repo for Salt v3007 STS
baseurl=https://packages.broadcom.com/artifactory/saltproject-rpm/
skip_if_unavailable=True
priority=10
enabled=0
enabled_metadata=1
gpgcheck=1
exclude=*3006* *3008* *3009* *3010*
gpgkey=https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public

[salt-repo-latest]
name=Salt Repo for Salt LATEST release
baseurl=https://packages.broadcom.com/artifactory/saltproject-rpm/
skip_if_unavailable=True
priority=10
enabled=0
enabled_metadata=1
gpgcheck=1
gpgkey=https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public

Unfortunately the above can't easily be implemented in a mirroring tool such as Foreman/Satellite.

And Debian/Ubuntu

https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources

X-Repolib-Name: Salt Project
Description: Salt has many possible uses, including configuration management.
  Built on Python, Salt is an event-driven automation tool and framework to deploy,
  configure, and manage complex IT systems. Use Salt to automate common
  infrastructure administration tasks and ensure that all the components of your
  infrastructure are operating in a consistent desired state.
  - Website: https://saltproject.io
  - Public key: https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public
Enabled: yes
Types: deb
URIs: https://packages.broadcom.com/artifactory/saltproject-deb
Signed-By: /etc/apt/keyrings/salt-archive-keyring.pgp
Suites: stable
Components: main

For Debina/Ubuntu, its one repo, there is no separation workaround like for RPMs.

Describe the solution you'd like
Repository per major version as before

Describe alternatives you've considered
Users can use the repos directly, and use tools such as dnf versionlock or apt-mark hold. However, for anyone wanting to mirror only LTS releases, the only alternative is implementing multi staged mirror where some middleware implements package version filtering.

Additional context
Most popular OSS ships separate repositories for major versions of their software

@rossengeorgiev rossengeorgiev added Feature new functionality including changes to functionality and code refactors, etc. needs-triage labels Feb 27, 2025
@OrangeDog
Copy link
Contributor

Please do not do this. At least for Debian, everything is supposed to be in the same repo.
There is no need for a workaround. You are supposed to use version pinning (not lock/hold), and not have to negotiate tons of separate repos.

The only thing that sounds reasonable, is a separate repo for LTS-only releases, but it should still have all the previously released LTS versions in it.

@whytewolf
Copy link
Collaborator

i doubt any of this will happen. Salt is not in control of the repo layout. that is mandated at Broadcom.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature new functionality including changes to functionality and code refactors, etc. needs-triage
Projects
None yet
Development

No branches or pull requests

3 participants