End of support for Azure Pipelines agents running on CentOS 6, Debian 4.9, Fedora 32, Ubuntu 16, macOS 10.14, and older versions

Bohdan Janousek

In the blog post Upgrade of .NET agent for Azure Pipelines, we explained our plan to update the agent implementation from .NET Core 3.1 to .NET 6 in order to support newer operating systems. If you run your agents on any operating system supported by .NET 6, then this will be seamless to you. However, if you run the agent on one of the following operating systems, then this blog has some steps that you must take now in order to prevent pipelines from failing.

System/Distribution Version not supported by .NET 6
CentOS < 7
Debian <= 4.9
Fedora <= 32
RedHat EL <= 6
Ubuntu <> 18.04, < 20.04
MacOS < 10.15

Starting with 2.218 version of the agent that is going to be released in March 2023, pipelines running on any of the above operating systems will fail with the following error message. Note that this change has already been rolled out to agents running on Red Hat Enterprise Linux (RHEL) 6 with version 2.214 of the agent.

This operating system will stop receiving updates of the Pipelines Agent in the future. To be able to continue to run pipelines please upgrade the operating system or set an environment variable or agent knob “AGENT_ACKNOWLEDGE_NO_UPDATES” to “true”. See https://aka.ms/azdo-pipeline-agent-v2-eos for more information.

You have two options once you get the above error in your pipelines:

  1. (Preferred) Move your agents to machines with newer operating systems. This is the best option as it will allow you to get future updates to the agent.
  2. Set the AGENT_ACKNOWLEDGE_NO_UPDATES variable on the agent.

Different methods to set AGENT_ACKNOWLEDGE_NO_UPDATES

To acknowledge the agent will no longer receive updates, you can configure an environment variable on the agent (e.g. /etc/environment, /etc/profile.d):

AGENT_ACKNOWLEDGE_NO_UPDATES=true

You can also set a pipeline variable from a YAML pipeline:

jobs:
- job: 'agentWithVariables'
  displayName: 'Agent with variables'

  variables:
    AGENT_ACKNOWLEDGE_NO_UPDATES: 'true' # Required to not fail job on operating system that is not supported by .NET 6

And here is an example of setting a pipeline variable in a classic pipeline: Image showing how to set the AGENT_ACKNOWLEDGE_NO_UPDATES variable to true in classic pipeline

Any of the above methods to set AGENT_ACKNOWLEDGE_NO_UPDATES=true will let the 2.218 or later 2.x agent continue to operate on the operating system that is not supported by the .NET 6.

Additional references

  1. Azure DevOps 3.x agent – additional information for 3.x agent.

FAQ

Q: I am running the 2.x agent on an operating system supported by .NET 6. what will happen after version 2.218 is released?
A: To summarize, nothing. You are not impacted by this change. Your agents will continue to be upgraded to future versions of 2.x and at some point to future versions of 3.x.

Q: How can I find agents running on unsupported operating systems?
A: You can run a script that will process all pools in your organization and identify 2.x agents on operating systems that are not supported by the 3.x agent.

Q: I got the error and set the variable AGENT_ACKNOWLEDGE_NO_UPDATES. How long can I operate in this model?
A: Setting the variable is a temporary solution to give you some time (say, a month or two) to update the operating systems. We recommend that you upgrade the operating systems as soon as possible. In the next few months, we will no longer ship any updates to 2.x agents and expect everyone to be on operating systems supported by .NET 6. If you continue with 2.x agents that cannot be upgraded, then any new features or pipelines that require a 3.x agent may fail, and there is no variable that you can set to get out of that situation.

Q: I use Azure DevOps Server and not Azure DevOps Service. Does this change impact me?
A: No. The new agent is only applicable for Azure DevOps Service customers at this time. However, a future version of Azure DevOps Server (2022.1) will include the new agent. So, it is recommended that you update your agent machines to newer operating systems that are supported by .NET 6 now if you plan to keep up with the Azure DevOps Server releases in the future.

5 comments

Discussion is closed. Login to edit/delete existing comments.

  • Justin Holbrook 0

    Will this potentially resolve, or is it a known issue that if a job is defined without setting the pool explicitly it defaults to ubuntu16 instead of latest, then fails indicating “An image label with the label Ubuntu16 does not exist.” ?

    • Bohdan JanousekMicrosoft employee 0

      Thanks for the comment, Justin. Nonetheless this is unrelated to this blog post.

      Justin, suggest you file a support ticket for this assuming you notice this on Microsoft-hosted pool.

      • Justin Holbrook 0

        Correct my comment was regarding hosted agents.

  • Huajun Gu 0

    Thanks for sharing. I need to install a newer version of Python 3 then run ansible-lint.
    I can wait several days to rebuild my agent container, really frustrated to find the right version for libicu* before.

    • Bohdan JanousekMicrosoft employee 0

      Huajun, are you sure your comment was not added to this blog accidentally?

Feedback usabilla icon