Skip to content

Fix Nexus Ubuntu apt proxy pinned to bionic, breaking package installs on jammy VMs#5003

Draft
marrobi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-vm-config-sh-failures
Draft

Fix Nexus Ubuntu apt proxy pinned to bionic, breaking package installs on jammy VMs#5003
marrobi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-vm-config-sh-failures

Conversation

Copilot AI commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Resolves #4992

What is being addressed

The Nexus shared service Ubuntu apt proxy repositories were configured with "distribution": "bionic" (Ubuntu 18.04). Guacamole Linux VMs run Ubuntu 22.04 (jammy) and request jammy packages — Nexus couldn't proxy them, returning 502 errors. With set -o errexit in vm_config.sh, the first apt install failure (gnupg2, gdebi-core, debconf-utils) aborts the entire bootstrap, leaving the VM unconfigured and blocking Guacamole connections.

How is this addressed

  • ubuntu_proxy_conf.json: "distribution": "bionic""jammy"
  • ubuntu_security_proxy_conf.json: "distribution": "bionic-security""jammy-security"
  • porter.yaml: version bump 3.10.03.10.1
  • CHANGELOG.md: bug fix entry added

The Nexus configure_nexus_repos run command re-applies all repo configs on upgrade, so existing deployments pick up this fix without VM recreation.

Copilot AI requested review from Copilot and removed request for Copilot July 24, 2026 20:26
Copilot AI requested review from Copilot and removed request for Copilot July 24, 2026 20:30
Copilot AI changed the title [WIP] Fix Guacamole Linux VM vm_config.sh failures for apt packages Fix Nexus Ubuntu apt proxy pinned to bionic, breaking package installs on jammy VMs Jul 24, 2026
Copilot AI requested a review from marrobi July 24, 2026 20:30
@marrobi

marrobi commented Jul 24, 2026

Copy link
Copy Markdown
Member

@copilot we need to leave the old one for older VMs. We need to proxy for multiple releases.

Copilot AI requested review from Copilot and removed request for Copilot July 24, 2026 20:47

Copilot AI commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

@copilot we need to leave the old one for older VMs. We need to proxy for multiple releases.

Done. I've reverted ubuntu_proxy_conf.json and ubuntu_security_proxy_conf.json back to bionic/bionic-security (preserving support for older VMs) and instead added two new proxy repo configs:

  • ubuntu_jammy_proxy_conf.json (name: ubuntu-jammy, distribution: jammy)
  • ubuntu_security_jammy_proxy_conf.json (name: ubuntu-security-jammy, distribution: jammy-security)

The Guacamole Linux VM's apt_sources_config.yml now points to the new jammy-specific repos. (commit Keep bionic repos, add jammy-specific Nexus apt proxy repos and update linuxvm apt sources)

@marrobi

marrobi commented Jul 24, 2026

Copy link
Copy Markdown
Member

@copilot

Confirmed design: A Nexus apt group repo can front multiple apt proxy members each pinned to a different distribution (bionic/jammy). Clients hit one stable group URL and their own $RELEASE codename routes to the right member — exactly the multi-distro support you want, keeping bionic for backward compat.
Scope: Rework ubuntu, ubuntu-security, and docker into {name}-bionic + {name}-jammy proxy members behind a group that keeps the stable client-facing name, so existing consumers need no edits. Revert PR #5003's jammy-specific apt_sources_config.yml URLs back to the stable group names.
Microsoft apt: flagged for investigation (its remoteUrl is just the host root with per-distro paths), with a documented outcome required.
Loader: no changes needed, but the agent must verify member-before-group create ordering in configure_nexus_repos.sh and match the Nexus REST group.memberNames schema.
Also updates: CHANGELOG, docs/.../nexus.md table, porter.yaml version, and the PR #5003 description rewrite.

Copilot AI requested review from Copilot and removed request for Copilot July 24, 2026 21:33

Copilot AI commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

@copilot

...

Done in commit Rework ubuntu/ubuntu-security/docker into group+member apt repos for multi-distro Nexus proxy support.

What was implemented:

  • ubuntu / ubuntu-security / docker: Each is now a trio of {name}-bionic proxy + {name}-jammy proxy + {name} apt group. Clients hit the stable group URL (/repository/ubuntu/, /repository/ubuntu-security/, /repository/docker/) and Nexus routes to the correct per-distribution member. Existing consumers (VMs, sources lists) require no changes.

  • apt_sources_config.yml: Reverted back to stable group URLs (ubuntu/, ubuntu-security/).

  • configure_nexus_repos.sh: Refactored to a two-pass loop — all non-group repos are created/updated first (Pass 1), then group repos (Pass 2). This guarantees proxy members exist before groups are registered.

  • microsoft-apt investigation: The proxy uses remoteUrl: "https://packages.microsoft.com" (host root) with per-product paths baked into the client's sources list (e.g., /ubuntu/22.04/prod, /repos/edge). Since all current VM images use apt_sku: 22.04 (Ubuntu 22.04/jammy), the distribution was updated bionicjammy. The group/bionic+jammy pattern was not applied here — the apt_sku path already encodes the Ubuntu version, and the stable distribution entries (/repos/edge, /repos/vscode) don't vary by Ubuntu release.

  • nexus.md: Current Repos table updated with group/member rows and a note on microsoft-apt.

Copilot AI requested review from Copilot and removed request for Copilot July 24, 2026 22:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Guacamole Linux VM vm_config.sh fails and prevents guacamole connections

2 participants