|
| 1 | += CircleCI machine/convenience image lifecycle: A complete guide |
| 2 | +:page-platform: Cloud |
| 3 | +:page-description: CircleCI Machine/Convenience Image Lifecycle |
| 4 | +:experimental: |
| 5 | + |
| 6 | +CircleCI prioritizes support for the most recent stable releases of the following image families: |
| 7 | + |
| 8 | +* Linux VM |
| 9 | +* Android |
| 10 | +* Windows |
| 11 | +* Remote Docker |
| 12 | +* MacOS |
| 13 | +* CUDA |
| 14 | +
|
| 15 | +When a new major version of an image is available, CircleCI will begin the deprecation process of the oldest version supported. |
| 16 | + |
| 17 | +[#image-deprecation-process] |
| 18 | +== Image deprecation process |
| 19 | + |
| 20 | +CircleCI machine image deprecations are announced via link:https://circleci.com/changelog/[changelog], email, and link:https://discuss.circleci.com/c/announcements/39[Discuss] post. Announcements include the list of affected images, scheduled brownout dates and durations, and end of life date. Scheduled brownout dates will also be listed on the CircleCI link:https://status.circleci.com/[status page]. |
| 21 | + |
| 22 | +[#image-brownouts] |
| 23 | +== Image brownouts |
| 24 | + |
| 25 | +A CircleCI machine image brownout is a temporary, planned period during which deprecated virtual machine images are intentionally made unavailable on the CircleCI platform. During a brownout, CI/CD jobs that attempt to use deprecated images will fail, giving users advance notice of upcoming permanent image removals. |
| 26 | + |
| 27 | +Machine image brownouts serve several critical functions in CircleCI's image lifecycle management: |
| 28 | + |
| 29 | +* **Warning Mechanism**: They act as a highly visible alert that certain images are approaching end-of-life (EOL). |
| 30 | +* **Dependency Discovery**: They help teams identify hidden dependencies on deprecated images, particularly through orbs or inherited configurations. |
| 31 | +* **Preventing Major Service Disruption**: A short, planned brownout allows teams to update configurations before permanent image removal would cause extended workflow failures. |
| 32 | +
|
| 33 | +During a brownout, jobs that use deprecated images will fail with the message "This job was rejected because the resource class is unavailable". |
| 34 | + |
| 35 | +If you need to get your workflows running during an active brownout, update your CircleCI config file to use a supported image: |
| 36 | + |
| 37 | +[,yaml] |
| 38 | +---- |
| 39 | +# Change this: |
| 40 | +machine: |
| 41 | +image: ubuntu-2004:202201-01 # Deprecated image |
| 42 | + |
| 43 | +# To this: |
| 44 | +machine: |
| 45 | + image: ubuntu-2004:current # or "default" for the latest supported version |
| 46 | +---- |
| 47 | + |
| 48 | +**For Remote Docker**: Update the version parameter: |
| 49 | + |
| 50 | +[,yaml] |
| 51 | +---- |
| 52 | +- setup_remote_docker: |
| 53 | + version: docker24 # Use a supported version |
| 54 | +---- |
| 55 | +
|
| 56 | +=== Tips to minimize brownout impact |
| 57 | + |
| 58 | +1. **Use dynamic image references**: Instead of pinning to specific dated versions, use the following tags: |
| 59 | +** `default`: Always points to the recommended stable version |
| 60 | +** `current`: Points to the latest stable version |
| 61 | +** `edge`: Points to the newest release (may include experimental features) |
| 62 | +2. **Regularly update orbs**: If you use CircleCI orbs, ensure they are updated to current versions. Outdated orbs may specify deprecated images internally. |
| 63 | +3. **Check hidden dependencies**: Inspect all workflows, including those triggered by external events or scheduled runs. |
| 64 | +4. **Subscribe to deprecation notices**: Follow the CircleCI Discuss forum's link:https://discuss.circleci.com/c/announcements/39[Announcements] category for announcements. |
| 65 | +5. **Use the image updater tool**: CircleCI provides link:https://github.com/CircleCI-Public/image-updater[a tool] to help identify and update deprecated images. |
| 66 | + |
| 67 | +[#brownout-faq] |
| 68 | +== FAQ About CircleCI Brownouts |
| 69 | +**Q: How long do brownouts typically last?** |
| 70 | + |
| 71 | +A: Most brownouts last from 10 minutes to 24 hours, depending on the image type and its usage across the platform. |
| 72 | + |
| 73 | +**Q: Will CircleCI notify me before a brownout occurs?** |
| 74 | + |
| 75 | +A: Yes, CircleCI sends email notifications to organizations whose projects use deprecated images and posts announcements on their Discuss forum. |
| 76 | + |
| 77 | +**Q: What happens if I don't update my images before the EOL date?** |
| 78 | + |
| 79 | +A: After the EOL date, deprecated images will be permanently removed, and any jobs attempting to use them will fail until configurations are updated. |
| 80 | + |
| 81 | +**Q: How can I test my workflows with new images before a brownout?** |
| 82 | + |
| 83 | +A: Create a branch with updated configuration files, then push and test this branch before merging changes to your main branch. |
| 84 | + |
| 85 | +**Q: Are there any costs associated with updating to newer images?** |
| 86 | + |
| 87 | +A: There's no additional cost for using newer CircleCI images, though you should test thoroughly as newer images may have updated software versions that could affect your workflows. |
| 88 | + |
| 89 | +[#additional-resources] |
| 90 | +== Additional resources |
| 91 | + |
| 92 | +- xref:guides:execution-managed:linux-vm-support-policy.adoc[CircleCI Linux VM Support Policy] |
| 93 | +- xref:guides:execution-managed:linux-cuda-images-support-policy.adoc[CircleCI CUDA Support Policy] |
| 94 | +- xref:guides:execution-managed:convenience-images-support-policy.adoc[CircleCI Convenience Image Support Policy] |
| 95 | +- xref:guides:execution-managed:android-images-support-policy.adoc[CircleCI Android Image Support Policy] |
| 96 | +- xref:guides:execution-managed:remote-docker-images-support-policy.adoc[CircleCI Remote Docker Image Support Policy] |
| 97 | +- xref:guides:execution-managed:windows-images-support-policy.adoc[CircleCI Windows Image Support Policy] |
| 98 | +- xref:guides:execution-managed:xcode-policy.adoc[CircleCI XCode Support Policy] |
| 99 | +- link:https://github.com/CircleCI-Public/image-updater[CircleCI Image Updater Tool] |
| 100 | +- link:https://discuss.circleci.com/c/announcements/notices/113[CircleCI Discuss Forum - Notices Category] |
| 101 | +- link:https://support.circleci.com/hc/en-us[CircleCI Support Center] |
0 commit comments