Windows 2019 End-of-life

Windows Server 2019 images are no longer available as of 9 January 2024. The details below are provided for historical reference.

Our Windows Server 2019 Dynamic Workers are being upgraded to use Windows Server 2022, this may result in breaking changes for users of community steps or custom scripts.

What is changing?

Due to LTSC Windows Server 2019 ending on 9 January 2024 , we are upgrading our dynamic workers to use Windows Server 2022.

Who will be impacted?

Users of Octopus Cloud utilizing Windows Dynamic Workers (Windows (default) and Windows Server Core 2019 images) and running custom scripts or community steps may be impacted as there are breaking changes between Windows 2019 and Windows 2022. Should any additional components be identified as having breaking changes we will endeavour to inform you via email and Octopus community Slack.

Steps running execution containers on Windows Dynamic Workers may also be impacted as Windows containers can generally only run when the container base image OS version matches the host OS version. This means the Windows 2019 container image you are currently using will likely fail to run on a Windows 2022 Dynamic Worker.

Note: All Octopus Deploy steps will work under Windows 2022 but some community and custom steps may be impacted.

What do I need to do?

To mitigate the risk in this process we will be releasing Windows 2022 Dynamic Workers before the deprecation date so users can test against the new workers prior to deprecation. Please see the timeline below for the details.

If you are running custom scripts, using community steps, or using execution containers on Windows workers, we recommend following the migration guide below to test your deployments on Windows 2022 Dynamic Workers.

Unless you have a specific need for a Windows Dynamic Worker we recommend considering a change to an Ubuntu 22.04 based Dynamic Worker as Ubuntu 22.04 Dynamic Workers are more performant.

Built in steps work on both Ubuntu and Windows Dynamic Workers with the exception of Windows specific steps. Community steps and custom step templates would also need testing.


Octopus preparation

Oct 2023Octopus will produce and test a Windows 2022 Dynamic Worker image.

Customer action required

30 Oct 2023Windows 2022 Dynamic Worker will be made available for customers.
  • Customers should test their impacted deployments and runbooks on a Windows 2022 Dynamic Worker with the aim of completing testing by the 4th of December 2023
4 Dec 2023Octopus will update the Windows (default) image to resolve to Windows Server Core 2022.
  • If customers experience failed deployments or runbooks, they will be able to select the Windows Server Core 2019 worker image until the 9th of January 2024 while they resolve any issues with running on a Windows 2022 Dynamic Worker
9 Jan 2024Windows 2019 Dynamic Workers will no longer be available on Octopus Cloud.

Migration Guide

  1. For each Space on your Cloud instance, find the Windows Dynamic Worker Pool. The Worker Pool name is usually either Hosted Windows or Default Worker Pool. Make a note of the Worker Pool name.

    Windows Worker Pool

  2. For each deployment step, check whether it runs on the Windows Dynamic Worker Pool you noted in Step 1.

    Worker Pool Selection

  3. Create a temporary Dynamic Worker Pool targeting the Windows Server Core 2022 image.

    Worker Pool Selection

  4. Open the deployment process for your project as well as any Runbooks. Make note of any steps using execution containers (these will display a Runs in a container chip) as these will need additional updates.

    Deployment Process

  5. For each step that runs on a Windows Dynamic Worker Pool
    • Change its Worker Pool to the new Windows 2022 Worker Pool you created in Step 3.
    • If the step runs in an execution container, change the container image to the Windows 2022 image that corresponds to your current Windows 2019 image. If your image is multi-platform, it’s still prudent to check that the image still works as expected under Windows 2022.
    • Your step should look something like this:

      Worker Pool Selection

  6. Test your deployment by deploying a new Release of your project (Snapshot for a Runbook)

Optional cleanup after 9 January 2024

To avoid having two Worker Pools that both yield the same Workers, you can restore the steps back to using the original Windows Dynamic Worker Pool:

  1. For each step that you migrated, change the Worker Pool back to the original Windows Dynamic Worker Pool, which should be now running Windows 2022 Dynamic Workers.
  2. Once no steps are using the temporary Windows 2022 Worker Pool, you can delete the temporary Worker Pool.


Why the deadline of 9 January 2024?

Windows 2019 exits LTSC support and will not be patched including any security vulnerability. Consequently, Octopus will not provide an unsupported Dynamic Worker image.

What are the breaking changes between Windows 2019 and Windows 2022 releases?

It is not possible to give a complete and definitive answer as this depends on your use cases. Therefore, please refer to the following documents:

What if I experience a breaking change but I can’t remediate it in time?

There is the option to provision your own worker with Windows Server 2019 and selecting its worker pool for your deployment processes that experience the breaking change.

How does this affect Execution Containers?

Windows containers can generally only run when the container base image OS version matches the host OS version. Please follow the migration guide to make the transition as smooth as possible.

Are the Ubuntu 22.04 Dynamic Workers affected in any way?

This change does not impact the Ubuntu 22.04 Dynamic Workers.

Help us continuously improve

Please let us know if you have any feedback about this page.

Send feedback

Page updated on Tuesday, January 9, 2024