fix(bootstrap): rewrite salt.sources URIs to honor -R custom repo URL on Debian/Ubuntu - #2124
Merged
Merged
Conversation
… on Debian/Ubuntu The Debian/Ubuntu repo functions downloaded a salt.sources template that hardcodes packages.broadcom.com/artifactory in its URIs line. Only the GPG key fetch used $_REPO_URL, so -R had no effect on which apt repo packages actually came from. Add a sed rewrite of the URIs line to $_REPO_URL, mirroring how RHEL/SUSE/Photon already parameterize their repo files. Fixes saltstack#2123
The new test_debian_repo_functions_rewrite_custom_repo_url replays the script's sed commands via "bash -c", which broke on non-GNU targets: BSD sed on macOS parses "-i" differently, and on Windows runners "bash" resolves to the WSL launcher stub with no distro installed. Detect GNU sed through the same bash -c path the test uses and skip otherwise, instead of failing on environments the fix doesn't target.
…ip/bootstrap systemd's default tmpfiles.d rule wipes /tmp during early boot (systemd-tmpfiles-setup.service). docker exec was running pip install immediately after docker start, racing that wipe and intermittently deleting pip's /tmp/pip-*-tracker-* scratch dirs mid-install, causing "No such file or directory" failures unrelated to the actual bootstrap logic. Poll systemctl is-system-running until the container settles before running any exec commands.
twangboy
force-pushed
the
fix/2123/develop
branch
from
August 3, 2026 20:41
2d59f22 to
3a21ced
Compare
"--systemd --unit rescue.target" was silently broken: --systemd isn't a real systemd flag, and space-separated --unit rescue.target doesn't parse as --unit=rescue.target. Containers were actually booting their full default target (multi-user/graphical, network-online, getty, etc.) instead of the intended minimal rescue mode. On Debian 11 that full boot pulls in NetworkManager-wait-online.service, which times out after its fixed 90s TimeoutStartSec since the container's network never satisfies NetworkManager's online check - exactly matching the 83-89s "starting" stalls seen in CI. Fix the flag to --unit=rescue.target so containers boot minimally for every distro, accept "maintenance" (its correct terminal state) in the wait condition, and drop the timeout back to 30s now that real convergence is ~2s.
|
Awesome turnaround, tyvm. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
The Debian/Ubuntu repo functions downloaded a salt.sources template that hardcodes packages.broadcom.com/artifactory in its URIs line. Only the GPG key fetch used $_REPO_URL, so -R had no effect on which apt repo packages actually came from. Add a sed rewrite of the URIs line to $_REPO_URL, mirroring how RHEL/SUSE/Photon already parameterize their repo files.
What issues does this PR fix or reference?
Fixes #2123