Skip to content

Commit d9e31d3

Browse files
authored
Merge pull request #9903 from circleci/adding-resource-class-lifecycle
Adding new page for resource class lifecycle
2 parents 0daca71 + b8db692 commit d9e31d3

File tree

2 files changed

+109
-0
lines changed

2 files changed

+109
-0
lines changed

docs/guides/modules/ROOT/nav.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
* Execute on managed compute
7171
** xref:execution-managed:executor-intro.adoc[Execution environments overview]
7272
** xref:execution-managed:resource-class-overview.adoc[Resource class overview]
73+
** xref:execution-managed:resource-class-lifecycle.adoc[Resource class lifecycle]
7374
** Docker
7475
*** xref:execution-managed:using-docker.adoc[Using Docker]
7576
*** xref:execution-managed:circleci-images.adoc[Convenience images]
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
= Resource class lifecycle process
2+
3+
CircleCI periodically introduces new compute as "resource classes," consisting of new underlying compute infrastructure. As older compute infrastructure ages, CircleCI deprecates and retires it from the fleet.
4+
5+
CircleCI announces resource class deprecations via the link:https://circleci.com/changelog/[changelog] and email. Announcements include the list of affected resource classes, scheduled brownout dates and durations, and end-of-life (EOL) date.
6+
7+
Scheduled brownout dates are also listed on the link:https://status.circleci.com/[CircleCI status page].
8+
9+
== Resource class brownouts
10+
11+
A CircleCI resource class brownout is a temporary, planned period during which deprecated resource classes are intentionally made unavailable on the CircleCI platform.
12+
13+
During a brownout, CI/CD jobs that attempt to use deprecated resource classes fail, giving users advance notice of upcoming permanent removals.
14+
15+
Resource class brownouts serve several critical functions:
16+
17+
*Warning Mechanism*:: They act as a highly visible alert that certain resource classes are approaching end-of-life.
18+
19+
*Dependency Discovery*:: They assist teams in identifying hidden dependencies on deprecated resource classes, especially through orbs or inherited configurations.
20+
21+
*Preventing Major Service Disruption*:: A short, planned brownout allows teams to update configurations before permanent removal causes extended workflow failures.
22+
23+
During a brownout, jobs that use deprecated resource classes fail with the message: "This job was rejected because the resource class is unavailable".
24+
25+
== Responding to a brownout
26+
27+
When a brownout occurs, you have two options:
28+
29+
=== Option 1: Update your configuration (recommended)
30+
31+
Update your link:/guides/execution-managed/resource-class-overview/[CircleCI config file] to use supported resource classes:
32+
33+
*For Docker executor:*
34+
35+
[source,yaml]
36+
----
37+
# Change this:
38+
docker:
39+
- image: cimg/node:lts
40+
resource_class: old.medium # Deprecated resource class
41+
42+
# To this:
43+
docker:
44+
- image: cimg/node:lts
45+
resource_class: new.medium # Supported resource class
46+
----
47+
48+
*For machine executor:*
49+
50+
[source,yaml]
51+
----
52+
# Change this:
53+
machine:
54+
image: ubuntu-2204:current
55+
resource_class: old.medium # Deprecated resource class
56+
57+
# To this:
58+
machine:
59+
image: ubuntu-2204:current
60+
resource_class: new.medium # Supported resource class
61+
----
62+
63+
=== Option 2: Temporarily disable brownouts
64+
65+
If you need immediate relief to restore workflows during an active brownout, you can temporarily disable brownouts.
66+
67+
Navigate to *Organization Settings > Advanced > Enable resource class brownouts* and toggle the setting off.
68+
69+
[IMPORTANT]
70+
====
71+
Disabling brownouts is only a temporary solution. Access to deprecated resource classes ends by the final EOL date regardless of brownout settings.
72+
73+
You must update your configurations before the EOL date.
74+
====
75+
76+
== Tips to minimize brownout impact
77+
78+
*Review resource class usage*:: Audit your resource class specifications to ensure you use actively supported options. Consider whether your workloads might benefit from link:/guides/execution-managed/resource-class-overview/[newer, more efficient resource classes].
79+
80+
*Update orbs*:: If you use CircleCI orbs, ensure you update them to current versions. Outdated orbs may specify deprecated resource classes internally.
81+
82+
*Check hidden dependencies*:: Inspect all workflows, including those triggered by external events or scheduled runs, to identify all resource class usage.
83+
84+
*Subscribe to deprecation notices*:: Follow the CircleCI changelog for deprecation announcements.
85+
86+
*Test before EOL*:: Create a test branch with updated resource classes to validate performance and compatibility before the brownout period.
87+
88+
== FAQ
89+
90+
*Q: How long do brownouts typically last?*::
91+
A: Most brownouts last from 10 minutes to 24 hours, depending on the resource class and its usage across the platform.
92+
93+
*Q: Does CircleCI notify me before a resource class brownout occurs?*::
94+
A: Yes, CircleCI sends email notifications to organizations whose projects use deprecated resource classes and posts announcements on the changelog.
95+
96+
*Q: What happens if I don't update my configuration before the EOL date?*::
97+
A: After the EOL date, deprecated resource classes are permanently removed. Any jobs attempting to use them fail until you update configurations.
98+
99+
*Q: How can I test my workflows with new resource classes before a brownout?*::
100+
A: Create a branch with updated configuration files, then push and test this branch before merging changes to your main branch.
101+
102+
*Q: Are there any costs associated with updating to different resource classes?*::
103+
A: Different resource classes have different pricing, so switching resource classes may affect your compute costs. Review the link:https://circleci.com/pricing/price-list/[pricing documentation] and test thoroughly to understand the impact on both cost and performance.
104+
105+
*Q: How do I know which resource class to migrate to?*::
106+
A: Deprecation announcements include recommended migration paths.
107+
+
108+
Generally, you should choose a resource class that matches or exceeds the compute capacity of your deprecated class.

0 commit comments

Comments
 (0)