Plugin Spotlight: Version Column Plugin

    Most Jenkins controllers with a distributed build configuration will leverage nodes that run a agent.jar to start an agent. Regardless of whether the agent.jar is launched through a Java Web Start or SSH launcher, the jar will be copied from https://yourserver:port/jnlpJars/agent.jar to the build node. Keeping this jar up to date ensures that it picks up the newest features in a more recent release, such as the self-restart feature to keep agent JVMs “clean” and to automatically reconnect to their controller. Additionally, newer versions of this component may fix bugs or implement newer protocol versions with various improvements.

    What is the Version Column Plugin?

    Launch methods designed to pull the latest agent.jar are not always reliable and some launch methods don’t even try to update the agent.jar. Therefore it can be useful to see what agent.jar version is running on a given build node and take offline any nodes which fails to update to the latest version of the jar.

    The Version Column Plugin allows Jenkins controllers to do just this, adding a new column to the “Manage Nodes” view and a new option for version enforcement on the node configuration screen.

    Getting started

    After installing the Version Column Plugin, navigate to the list of nodes in your Jenkins instance by clicking Build Executor Status in the executors widget below the side panel on the Jenkins home page.

    If the plugin installed successfully, you will see a new column simply called “Version”. This column displays the version of the agent.jar that each build node is using.

    versioncolumn plugin screenshot 1 2

    This column is simply displaying the versions, so enforcement of agent.jar versions will need to be configured elsewhere. To activate this, click on the “Configure” link in the node manager’s left-hand menu.

    You will then see a set of options for agents. To activate version enforcement, check the “Version” box and apply your changes.

    versioncolumn plugin screenshot 2

    When you update Jenkins, there’s a chance it’ll come with a new version of agent.jar. Now if the agent.jar on a particular agent doesn’t get updated automatically, the controller will take it offline and show a warning next to the out-of-date agent version number:

    versioncolumn plugin screenshot 3

    The Version Column Plugin is available for download in the Jenkins plugin manager or from its wiki page.

    About the Author
    Daniel Beck
    Daniel Beck

    Daniel is a Jenkins core maintainer and member of the Jenkins security team. He was the inaugural Jenkins security officer from 2015 to 2021. He sometimes contributes to developer documentation and project infrastructure in his spare time.