Linux Image Deprecations and EOL for 2024

Hello :wave:

We are deprecating the following Linux images, for both ARM64 and AMD64, on CircleCI and will be removing them from our platform on Sept 30, 2024:

Tags:

  • ubuntu-2004:202008-01
  • ubuntu-2004:202010-01
  • ubuntu-2004:202011-01
  • ubuntu-2004:202101-01
  • ubuntu-2004:202104-01
  • ubuntu-2004:202107-01
  • ubuntu-2004:202107-02
  • ubuntu-2004:202111-01
  • ubuntu-2004:202201-01
  • ubuntu-2004:202201-02
  • ubuntu-2004:2022.04.1
  • ubuntu-2004:2022.04.2
  • ubuntu-2004:2022.07.1
  • ubuntu-2004:2023.04.1
  • ubuntu-2204:2022.04.1
  • ubuntu-2204:2022.04.2
  • ubuntu-2204:2022.07.1
  • ubuntu-2204:2022.07.2
  • ubuntu-2204:2022.10.1
  • ubuntu-2204:2023.04.1
  • ubuntu-2204:2023.07.2

Once an image is removed, the CircleCI jobs that use that image will fail with an error message - This job was rejected because the image is unavailable.

CircleCI will email impacted users with a list of projects that must be updated before the EOL date.

Why are these images being deprecated?

To ensure pipelines on CircleCI run with the highest level of reliability & security.

What do I need to do?

You will need to update your CircleCI config to use a valid Linux image as per the tagging conventions in our Linux Image Policy.

The recommended tags to use are as follows:

  • default - latest stable version and version if do not specify anything
  • edge - Development image of latest image

A couple examples:

Before:

 machine:
      image: ubuntu-2004:202008-01 // any of the deprecated image tags above

After:

 machine:
      image: default
 machine:
      image: ubuntu-2204:edge

Updating Orbs

You may need to make additional changes to your config if you are using an Orb that selects a machine image for you. If you’re using old and outdated versions CircleCI Orbs that use deprecated images by default you’ll need to either:

  1. Upgrade the orb to a more recent version (all most recent versions of the CircleCI orbs that use images use non-deprecated images by default). This is the recommended course of action.
  2. Ensure that you are explicitly passing in, via the appropriate Orb parameter, the name of a non deprecated image to use.

The following old versions of Orbs use depreciated Linux machine images by default:

  • circleci/aws-ecr 7.0.0 - 9.0.1
    • You can override the image used by this orb by passing the image parameter to the default executor
  • circleci/aws-sam-serverless 2.0.0 - 6.0.0
    • You can override the image used by this orb by passing the machine_image parameter to the deploy job)
  • circleci/azure-acr 0.2.1
    • You can override the image used by this orb by passing the image parameter to the default executor
  • circleci/docker 2.0.0 - 2.2.0
    • You can override the image used by this orb by passing the image parameter to the machine executor
  • circleci/gcp-cli 2.0.0 - 2.4.1
    • You can override the image used by this orb by passing the image parameter to the machine executor
  • circleci/gcp-gcr 0.15.0 - 0.15.3
    • You can override the image used by this orb by passing the image parameter to the default executor

What will happen after the Sept 30 EOL Date?

If you do not currently specify an image, your job will keep the same behavior, and use the default tag automatically.

Calling any of the deprecated image tag versions directly will cause your job to fail.

Brownout Schedule and EOL

We will be conducting brownouts for the above images on the following dates and times.

  • 4 March 2024
    • 07:00 UTC → 11:00 UTC
    • 13:00 UTC → 17:00 UTC
    • 20:00 UTC → 00:00 UTC
  • 28 May 2024
    • 02:00 UTC → 10:00 UTC
    • 14:00 UTC → 22:00 UTC
  • 28 August 2024
    • 00:00 UTC → 00:00 UTC (24 Hour)
  • 17 September 2024
    • 00:00 UTC → 00:00 UTC (24 Hour)
  • 30 September 2024
    • Deprecated tags are removed and will be unavailable

During these times, all jobs calling these images will fail. Please update your configs as soon as possible to prevent any disruption to your pipelines.

The default tag is available for you to transition to as of writing and we highly recommend updating your config to avoid job failure during these brownouts. If you have already updated your tags, please disregard this email.

What’s Next?

Details on how we manage and maintain our Linux images can be found here: Linux Image Policy.

Feedback

If you have any questions, comments, or concerns, please post a reply in this thread and we will be happy to help!

Respectfully,
CircleCI Images Team

2 Likes

This advice is not accurate for ubuntu-2204 images.

In particular “default” does not seem to be a supported tag but “current” is.

(per CircleCI Developer - Machine Imagesubuntu-2204 - CircleCI and actual attempt to use default which did not work)

4 Likes

Hi @jonseymour,

Do you mind sending a snippet of your code that you are using? Have tested this out and seems to work in a job when I tested it.

version: 2.1

workflows:
  main:
    jobs:
      - test:
          matrix:
            parameters:
              resource_class: [medium]

jobs:
  test:
    parameters:
      resource_class:
        type: string
    machine:
      image: default
    steps:
      - run: echo "im a machine provisioned job"
      - run: uname -a

Thanks,
Brent

We do not specify machine anywhere, all our pipelines are on the Docker executors yet we’re getting this deprecation warning. Can I assume you will update your Docker executors to run on the updated images and there’s nothing for us to do?

1 Like

Hi @johnjmaguire ,

By chance are you using remote-docker? If you can provide a snippet of your config as reference I can try helping to understand root of this issue for you and your team.

Thanks,
Brent

1 Like

I would love to switch to the new image, but my Cypress tests are crashing on the new image, with this message:

We detected that the Chromium Renderer process just crashed.

This can happen for a number of different reasons.

If you’re running lots of tests on a memory intense application.

  • Try increasing the CPU/memory on the machine you’re running on.
  • Try enabling experimentalMemoryManagement in your config file.
  • Try lowering numTestsKeptInMemory in your config file during ‘cypress open’.

I interpret this to mean that the new image has less memory than the one I was previously using. Do you have any advice for how to debug this issue?

Hi @abbyhowell,

Do you mind sending the current image you are on and what image you are trying to move to?

Thanks,
Brent

thanks for getting back to me! we’re currently on ubuntu-2204:2022.04.2 and the deprecation notice i got in CircleCI asked me to change it to “default” so that’s what I’m trying.

The image should not change the underlying machine you are running on, resulting in same memory and CPU you are getting. I am wondering if this is an issue with the image or the tests that are being run. Would suggest seeing if increasing the size of the image fixes this as maybe the newer version of image upgraded something that is affecting the Cypress tests. If that does not help your issue, would request submitting a support ticket with links so we can help find the root cause of your issue.

Hi folks, we use the version ubuntu-2204:2023.04.2 but it’s not listed in the first message above. Still, we see the banner with the message " This job is using a deprecated image please update to newer image".
Should we do the update still? And perhaps update the list above?

Hi @blv-chelo,

I checked with our internal metrics and don’t see any jobs being warned for that image. If you are still seeing this issue, do you mind submitting a support ticket so we can get your build links and investigate further?

Thanks,
Brent

Hi @brentmmarks,
Thanks for answering. I can definitely submit a support ticket. Could you please guide me to where to do it?
Thanks!

Believe this should be the link to submit a request: https://support.circleci.com/hc/en-us/requests/new

Thanks, Brent!
I have already found our problem. We indeed have a listed version for deprecation in one of our jobs. The rest were ok.
Thanks for the help!

Hi, I notice that the Schema Store config rules have not been updated to match (I get a validation error that default is not a valid machine type)
On github SchemaStore/schemastore/blob/master/src/schemas/json/circleciconfig.json
Is someone actively maintaining that repo?

Hi @benglanville,

I have reached out to one of our internal teams for some help in this area. Will get back to you when get an update on this issue.

Thanks,
Brent

Hi @benglanville,

We have a PR in to fix this issue on that repo. Hope to get this merged once we get eyes on this. Thank you for your patience.

Thanks,
Brent

Hi, I received that alert for the aws orbs I’m using

  aws-ecr: circleci/aws-ecr@9.0
  aws-ecs: circleci/aws-ecs@4.0
  aws-cli: circleci/aws-cli@4.1

How can I adjust the linux image version for them?

Hi @motic-guy,

I have raised this with my team to update this orb and will get back to you on orb version to update too when complete. Thank you for your patience.

Thanks,
Brent

1 Like

I got an email warning me that I am referencing the deprecated “ubuntu-2204:2022.10.1” image in a number of workflows.

As far as I can tell, though, those workflows don’t use the machine executor or specify that image.

They use docker: image: cimg/python:3.10.13. (Would I get warnings about the OS inside of that cimg/python:3.10.13?)

Would I get warning about really old branches? Or would that warning just come from recent builds?