Add mirror/keyserver override support across feature installers#1620
Add mirror/keyserver override support across feature installers#1620bbartels wants to merge 30 commits intodevcontainers:mainfrom
Conversation
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/47fca3d3-4eb7-487d-9af5-e4b462552066 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
…support Add mirror/keyserver override support across feature installers (incl. dotnet feed wiring)
|
@microsoft-github-policy-service agree |
…lback Agent-Logs-Url: https://github.com/bbartels/features/sessions/e1ae3385-4a58-45e6-ab36-dd2e1c4ea537 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/e1ae3385-4a58-45e6-ab36-dd2e1c4ea537 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
…tics Agent-Logs-Url: https://github.com/bbartels/features/sessions/e1ae3385-4a58-45e6-ab36-dd2e1c4ea537 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/e1ae3385-4a58-45e6-ab36-dd2e1c4ea537 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
…irror writes Agent-Logs-Url: https://github.com/bbartels/features/sessions/58d9ab00-c56e-435b-a7c0-72bc0d413cdb Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
…additions Agent-Logs-Url: https://github.com/bbartels/features/sessions/e372413f-942b-4e04-bc36-e4e1d8707978 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/fc3bae77-8d60-43af-970f-a51666be21e4 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
fix: make PowerShell aka.ms version resolution resilient with fallback
Co-authored-by: Benjamin Bartels <benjamin@bartels.dev>
Co-authored-by: Benjamin Bartels <benjamin@bartels.dev>
Agent-Logs-Url: https://github.com/bbartels/features/sessions/f4770407-c8bf-457f-91d4-9ed1af88d766 Co-authored-by: bbartels <23058572+bbartels@users.noreply.github.com>
Bump minor feature versions for mirror/keyserver-updated manifests
|
Hi @abdurriq , we've been trying to get devcontainers to work internally. Unfortunately, we have an air-gapped on-prem setup here with an artifactory proxy that allows us to mirror releases/package repositories etc. This PR makes it so that an initial batch of features support overriding artifact urls so we dont need to maintain an internal fork that overrides baseurls. |
Co-authored-by: Benjamin Bartels <benjamin@bartels.dev>
Co-authored-by: Benjamin Bartels <benjamin@bartels.dev>
| INSTALL_DOCKER_COMPOSE_SWITCH="${INSTALLDOCKERCOMPOSESWITCH:-"false"}" | ||
| MICROSOFT_GPG_KEYS_URI="https://packages.microsoft.com/keys/microsoft.asc" | ||
| MICROSOFT_GPG_KEYS_ROLLING_URI="https://packages.microsoft.com/keys/microsoft-rolling.asc" | ||
| MICROSOFT_PACKAGES_MIRROR="${MICROSOFT_PACKAGES_MIRROR:-https://packages.microsoft.com}" |
There was a problem hiding this comment.
Hi @bbartels
Thank you for the contribution. However adding parameters such as the above MICROSOFT_PACKAGES_MIRROR in the installation script doesn't appear to be the complete solution for using custom mirror/ repository paths unless the respective input parameters are added in the feature configuration. Also it could be great to have additional test cases with those input parameters for respective features. Kindly let me know in case of any clarification.
This PR makes feature install scripts mirror/proxy-friendly by introducing env-var-based download base URL overrides while preserving existing defaults when unset. It also adds cross-script keyserver override behavior and updates PowerShell/Ruby/dotnet flows where URL resolution/bootstrap behavior needed structural changes.
Cross-cutting mirror/keyserver support
GITHUB_RELEASE_MIRRORsupport (via localGITHUB_RELEASE_URL) for GitHub Releases HTTP artifact downloads in affected scripts.get_gpg_key_servers()probing helpers to honorGPG_KEYSERVERas a single authoritative keyserver when provided.Per-feature URL override additions
github-cli: GitHub release.debdownloads now useGITHUB_RELEASE_URL.nvidia-cuda:NVIDIA_REPO_URLnow derives fromNVIDIA_MIRROR.rust: exported/persistedRUSTUP_DIST_SERVERandRUSTUP_UPDATE_ROOT.go: addedGO_MIRRORfor tarball/signature downloads andGO_TAG_SOURCEfor tag resolution.node: added/exportedNVM_NODEJS_ORG_MIRRORand threaded it acrosssu ... -cboundaries.java: addedADOPTIUM_API_URL(ADOPTIUM_MIRROR), andSDKMAN_SERVICE_MIRRORsupport viasdkman_apiconfig rewrite.php: addedPHP_MIRROR,COMPOSER_MIRROR,COMPOSER_SIG_MIRROR.powershell: addedMICROSOFT_PACKAGES_MIRROR+GITHUB_RELEASE_URL; replaced hardcoded Microsoft/GitHub download bases.kubectl-helm-minikube: addedKUBECTL_MIRROR,HELM_MIRROR,MINIKUBE_MIRROR,GITHUB_RELEASE_URL; removed non-configurable kubectl fallback URL.python: addedPYTHON_MIRROR+GITHUB_RELEASE_URLfor CPython/cosign artifacts.terraform: retainedCUSTOM_DOWNLOAD_SERVER; addedGITHUB_RELEASE_URLfor satellite tools andHASHICORP_KEY_URL(HASHICORP_GPG_KEY_MIRROR) for Noble key fetch path.docker-in-docker: addedGITHUB_RELEASE_MIRROR,MICROSOFT_PACKAGES_MIRROR,DOCKER_MIRRORsupport for compose/buildx/switch, Microsoft repo assets, and Docker CE repo/key setup.Required structural adjustments
aka.ms/powershell-releaseredirect-based version resolution path; version selection now relies on existing git-tag helpers.RVM_INSTALL_MIRRORis set (.../rvm/rvm.git+binscripts/rvm-installer stable ...)./etc/rvmrcmirror entries forrvm_rubies_urlandrvm_binaries_urlwhen corresponding vars are set.DOTNET_RELEASES_INDEX_URLnow usesDOTNET_RELEASES_MIRRORfallback pattern.install_sdk()andinstall_runtime()now append--azure-feed "${DOTNET_RELEASES_MIRROR}"when set.Example pattern applied across scripts: