keelinfra / agent8

Agent8 for Jenkins

Run Jenkins agents on hosts stuck on Java 8, 11 or 17.

Jenkins now requires Java 21 on the controller and on every agent. With Agent8 the controller moves on, and the old build host keeps its Java and stays an ordinary node.

Available Free · MIT Linux tested in CI AIX · Solaris · HP-UX experimental
build host · Java 8
# 1. fetch the installer
$ curl -fsSLO https://raw.githubusercontent.com/\
    keelinfra/agent8/main/install.sh

# 2. match the controller, swap the jar
$ sh install.sh --url https://jenkins.example.com/ \
    --replace /path/to/agent.jar

# 3. restart with the same command as before
$ java -jar /path/to/agent.jar -url ... -name aix71
How it works

The controller upgrades. The build host doesn't have to.

Controller
Current Jenkins LTS
Java 21 / 25

Upgraded on schedule, with its security fixes.

Agent8 jar
The Jenkins agent, built for old Java
one release per Jenkins version

Starts the Java agents it needs itself.

Build host
AIX 7.1, RHEL 6, Solaris
Java 8 / 11 / 17

Keeps its OS, its toolchain and its Java.

What keeps working on the old host

  • Labels and executors
  • sh and file steps
  • junit and stash
  • Pipeline, Git checkout and credentials
  • Aborts and agent restarts mid-build
  • The script console
Support

Where it runs today

Linux is tested in CI on every change. AIX, Solaris and HP-UX are experimental until they have run on real hardware; tell us if you can help verify one.

Build hostJavaStatus
Linux, including RHEL/CentOS 6HotSpot 8Tested in CI
Linux, IBM Semeru (OpenJ9, the JVM family of IBM Java 8)OpenJ9 8Tested in CI
LinuxHotSpot 11, 17Tested in CI
AIX 7.1 / 7.2IBM Java 8Experimental
Solaris, HP-UXJava 8, 11Experimental
Install

One script, plain sh, any old Unix

1

It asks your controller

install.sh asks the controller which agent it ships and downloads the agent8 release for that Jenkins version, built for the host's Java.

2

It checks before it swaps

Downloads are checked against sha256sums.txt and test-started on the local Java. The old jar is kept, and --restore puts it back.

3

You restart as usual

Same java -jar command, same service script. Offline hosts use --from DIR; fleets use the Ansible playbook.

jenkins-2.580.1

Releases are named after the Jenkins version they match. Your version is at the bottom right of every Jenkins page.

All releases →

Full options, the Ansible playbook and troubleshooting are in the README. Background: Jenkins requires Java 21. What happens to your AIX 7.1 and RHEL 6 build hosts?

Questions teams ask first

Is this an official Jenkins project?

No. Agent8 is independent and not endorsed or supported by the Jenkins project. Report problems on its GitHub issues, not the Jenkins tracker.

Why not run the build in a container?

That works for many RHEL 6 builds. It can't cover builds that must run natively on AIX, Solaris or HP-UX hardware.

Which launch methods work?

Inbound agents, started with java -jar agent.jar. The SSH Build Agents launcher copies its own jar to the host and isn't supported yet.

What is the license?

MIT. The jars include JvmDowngrader classes under LGPL-2.1.

Get help

Rolling out to AIX, Solaris or HP-UX, or a whole fleet?

Pilots on your platform, plugin compatibility checks and support you can put in a contract. The first answer is free and in writing, within two business days.

Describe your build hosts