Skip to content

[4.x] jenkins-agent-terraform-2306: Node 24 LTS, eMudhra/emSign CA store refresh - #1178

Open
austindimmer wants to merge 2 commits into
opendevstack:4.xfrom
austindimmer:fix/INFIAAS-11916-terraform-2306-4.x
Open

austindimmer wants to merge 2 commits into
opendevstack:4.xfrom
austindimmer:fix/INFIAAS-11916-terraform-2306-4.x

Conversation

@austindimmer

@austindimmer austindimmer commented Oct 26, 2026 •

Copy link
Copy Markdown

Backport of #1176 (master) to 4.x, same agent and docs diff (cherry-pick; only the CHANGELOG context differs, since 4.x has no #1173 entry). Precedent for direct 4.x fixes: #1096, #1097.

Refreshes every CA store in jenkins-agent-terraform-2306 after the eMudhra/emSign incident and moves Node off the EOL 18 line: Node 24 LTS, uv 0.13.5, pip>=26.2.2 + certifi>=2026.10.23 for the uv-managed Python 3.11, dnf update ca-certificates. Python 3.8 and 3.9 (EOL, no fixed pip) are no longer installed; uv python install 3.8 / 3.9 remain available. Behaviour change: python3/python/python3-config are now the default Python 3.11 with the agent's libraries (before: the RHEL platform 3.9), and pipenv defaults to 3.11. The Python CLIs (pipenv, az, ...) are linked onto PATH explicitly, and the Python install loop now fails loudly.

See #1176 for details and verification output.

Tasks:

  • Updated documentation in docs/modules/... directory
  • Ran tests in <quickstarter>/testdata directory (n/a: agent image only)

Austin Dimmer added 2 commits October 26, 2026 14:55
…/emSign CA refresh

The eMudhra/emSign incident (eight compromised intermediates) needs every CA
store in the agent refreshed: pip always loads its vendored certifi in
addition to the system store, so OS ca-certificates alone is not enough.

- NODEJS_VERSION 18 -> 24 (Node 18 is EOL; 24.22.1 ships the fixed root store)
- uv 0.10.9 -> 0.13.5 (embedded CA store fix)
- pip >= 26.2.2 and certifi >= 2026.10.23 for the uv-managed Python
- dnf update ca-certificates in the package layer
- drop Python 3.8 and 3.9: EOL, and no pip release with the fix supports
  them (pip >= 26.1 requires Python >= 3.10); the 3.8 pip's vendored
  certifi 2024.02.02 still trusted the AAA cross-signed intermediates.
  uv is installed, so users can still `uv python install 3.8` / `3.9`
- the default Python (PYTHON_DEFAULT_VERSION=3.11, defined once) becomes
  python3, python and python3-config (an exec wrapper, because the script
  derives its prefix from its own path), and its console scripts (pipenv,
  virtualenv, az, pre-commit, ...) are linked into /usr/local/bin, which
  already precedes /usr/bin on PATH. Before, python3 and these scripts had
  the agent's libraries only because `--system --python 3.9` resolved to the
  RHEL platform python3.9. The build asserts python3, its libraries,
  python3-config, the CLIs, and that dnf still works on the platform python3
- the Python loop now fails the build on the first interpreter that fails;
  before, `fi;` let a later successful iteration mask an earlier failure
- CHANGELOG: the python3/pipenv default under Changed, the Python 3.8/3.9
  removal under Removed
- docs: Node/Python versions, python3 and uv-managed Pythons for 2306
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.

1 participant