Removing older images in Azure Pipelines hosted pools

Whitney Jenkins

Whitney

Over the past year, we have been able to update Azure Pipelines hosted images faster than ever before. We have also rolled out new images – Windows Server 2019 with Visual Studio 2019, Ubuntu 18.04, and macOS Mojave 10.14. We have seen a phenomenal growth in the use of hosted pools.

To prepare for another set of exciting updates this year and to better serve the needs of our growing user base, we have to make room – both in terms of Azure capacity and in terms of human support resources – and remove some of the less used, older images. On March 23, 2020, we’ll be removing the following Azure Pipelines hosted images:

  • Windows Server 2012R2 with Visual Studio 2015, a.k.a vs2015-win2012r2 or Hosted
  • macOS X High Sierra 10.13, a.k.a macOS-10.13
  • Windows Server Core 1803, a.k.a win1803

This blog outlines the steps you must take now if you use one of these images.

Schedule changes

Based on user feedback and higher usage of the vs2015-win2012r2 image, we have decided to delay removal of the vs2015-win2012r2 image until March 31, 2020. Pipelines using the Hosted agent pool will be automatically redirected to use the vs2017-win2016 image.

Current Status

As of March 31, 2020 the following Azure Pipelines hosted images have been removed.

  • Windows Server 2012R2 with Visual Studio 2015, a.k.a vs2015-win2012r2 or Hosted
  • macOS X High Sierra 10.13, a.k.a macOS-10.13
  • Windows Server Core 1803, a.k.a win1803

In addition to removing these hosted images, the Hosted agent pool has been redirected to use the vs2017-win2016 image.

Windows Server 2012R2 with Visual Studio 2015 (vs2015-win2012r2 or Hosted)

We have decided to remove the vs2015-win2012r2 image because it has not been updated in several years, lacks various security patches and hotfixes, and less than 5% of our users use it. This includes the agent pool labeled Hosted. While we have decided to remove the vs2015-win2012r2 image, there are two newer versions of Visual Studio images available in Azure Pipelines – vs2017-win2016 and windows-2019.

We understand that some of you still build your older apps using this image. Here are your options to move forward:

  • Identify pipelines using the vs2015-win2012r2 image, by navigating to https://dev.azure.com/{yourorganization}/{yourproject}/_settings/agentqueues. From there, you will need to check both the Azure Pipelines and Hosted agent pool for pipelines impacted by this change. Please note, in the Azure Pipelines pool, you will need to use the agent specification dropdown to filter for vs2015-win2012r2. In addition, you can use the query job history for retired images script.

The pipeline name is underneath the job (e.g. PartsUnlimited (2) is the pipeline)

  • Use one of the newer versions of Visual Studio, if that is an option for you. In many cases, your apps can be migrated to build on a newer version of Visual Studio with minimal effort. The vs2017-win2016 and windows-2019 images are kept up to date. If you use classic pipelines, edit your pipeline and change the image to one of these. If you use YAML pipelines, update your pipeline by editing its YAML file.
    jobs:
    - job: Windows
      pool:
        vmImage: 'vs2017-win2016'
      steps:
      - script: echo hello from Windows
  • Run your builds on a self-hosted agent pool. You can use Azure to create new virtual machines in the cloud, and to install Visual Studio 2015. Once created, configure a self-hosted agent pool in your Azure Pipelines organization, and configure each of your pipelines to use the self-hosted agent pool.

macOS High Sierra 10.13 (macOS-10.13)

We have decided to remove the macOS-10.13 image because less than 5% of users use macOS High Sierra 10.13 and there is a later macOS version image – macOS-10.14 available. In addition, we will be adding the latest macOS version – Catalina or macOS-10.15 on February 3, 2020.

This means that versions of Xcode older than 9.4.1, will no longer be supported. If your builds run on an older version of Xcode, please take some time to update to Xcode 10 or later to continue taking advantage of the Hosted macOS images. You can also set up a self-hosted macOS agent pool with your desired tools and configure your pipelines to use that pool.

To identify pipelines using the macOS-10.13 image, navigate to https://dev.azure.com/{yourorganization}/{yourproject}/_settings/agentqueues. From there, you will need to check both the Azure Pipelines and Hosted macOS High Sierra agent pool for pipelines impacted by this change. Please note, in the Azure Pipelines pool, you will need to use the agent specification dropdown to filter for macOS-10.13. In addition, you can use the query job history for retired images script.

The pipeline name is underneath the job (e.g. PartsUnlimited (2) is the pipeline)

If you have specific questions regarding our Hosted macOS pools, please reach out to Nilofer on Twitter at @nilli_minaj

Windows Container (win1803).

The usage of this image is the lowest among our pools – less than 1%. Any builds that target this pool will start failing on March 23, 2020.

To identify pipelines using the win1803 image, navigate to https://dev.azure.com/{yourorganization}/{yourproject}/_settings/agentqueues. From there, you will need to check both the Azure Pipelines and Hosted Windows Container agent pool for pipelines impacted by this change. Please note, in the Azure Pipelines pool, you will need to use the agent specification dropdown to filter for win1803. In addition, you can use the query job history for retired images script.

The pipeline name is underneath the job (e.g. PartsUnlimited (2) is the pipeline)

To mitigate this:

Brownout schedule

During the next couple of weeks, we will conduct a series of brownouts to highlight builds and releases using these soon-to-be-removed images. We will conduct our first brownout on March 9th from 1800-1900 UTC. After that we will continue to fail builds that use these images for up to 3 hours every day at different times. You will see the following error message in your build or release, if you are affected by a brownout:

This job was temporarily blocked because it uses a Microsoft hosted agent () that will be permanently removed on March 23, 2020. See https://aka.ms/blocked-hosted-agent for more information.

During these periods, any builds and releases that use vs2015-win2012r2, macOS-10.13, or win1803 images will fail. After each brownout period, we will revert the change. If your builds and releases fail during these brownout periods and if you see the error message shown above, please update your image to one of the supported images highlighted in this blog post.

Feedback

We’d really like to hear from you regarding what capabilities you’d like to see us add to the Hosted Agents experience in Azure Pipelines. Please contact us by reaching out @AzureDevOps or by creating an issue on our GitHub repository.

Thank you for using Azure Pipelines!

30 comments

Leave a comment