Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat: implement autoscaling mechanism for prebuilds#18126

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
evgeniy-scherbina wants to merge1 commit intomain
base:main
Choose a base branch
Loading
fromyevhenii/prebuilds-autoscaling-mechanism

Conversation

evgeniy-scherbina
Copy link
Contributor

@evgeniy-scherbinaevgeniy-scherbina commentedMay 30, 2025
edited
Loading

Closescoder/internal#312
Depends oncoder/terraform-provider-coder#408

This PR adds support for defining anautoscaling block for prebuilds, allowing number of desired instances to scale dynamically based on a schedule.

Example usage:

data "coder_workspace_preset" "us-nix" {  ...    prebuilds = {    instances = 0                  # default to 0 instances        autoscaling = {      timezone = "UTC"             # a single timezone is used for simplicity            # Scale to 3 instances during the work week      schedule {        cron = "* 8-18 * * 1-5"    # from 8AM–6:59PM, Mon–Fri, UTC        instances = 3              # scale to 3 instances      }            # Scale to 1 instance on Saturdays for urgent support queries      schedule {        cron = "* 8-14 * * 6"      # from 8AM–2:59PM, Sat, UTC        instances = 1              # scale to 1 instance      }    }  }}

Behavior

  • Multipleschedule blocks perprebuilds block are supported.
  • If the current time matches any defined autoscaling schedule, the corresponding number of instances is used.
  • If no schedule matches, thedefault instance count (prebuilds.instances) is used as a fallback.

Why

This feature allows prebuild instance capacity to adapt to predictable usage patterns, such as:

  • Scaling up during business hours or high-demand periods
  • Reducing capacity during off-hours to save resources

Cron specification

The cron specification is interpreted as acontinuous time range.

For example, the expression:

* 9-18 * * 1-5

is intended to represent a continuous range from09:00 to 18:59, Monday through Friday.

However, due to minor implementation imprecision, it is currently interpreted as a range from08:59:00 to 18:58:59, Monday through Friday.

This slight discrepancy arises because the evaluation is based on whether a specificpoint in time falls within the range, using thegithub.com/coder/coder/v2/coderd/schedule/cron library, which performs per-minute matching rather than strict range evaluation.

@evgeniy-scherbinaevgeniy-scherbinaforce-pushed theyevhenii/prebuilds-autoscaling-mechanism branch from606894f toff0e813CompareMay 30, 2025 12:25
@evgeniy-scherbinaevgeniy-scherbina changed the titleImplement autoscaling mechanism for prebuildsfeat: implement autoscaling mechanism for prebuildsMay 30, 2025
@evgeniy-scherbinaevgeniy-scherbinaforce-pushed theyevhenii/prebuilds-autoscaling-mechanism branch 5 times, most recently from9af5e02 tobcfbb04CompareJune 6, 2025 19:53
@evgeniy-scherbinaevgeniy-scherbinaforce-pushed theyevhenii/prebuilds-autoscaling-mechanism branch 4 times, most recently from3a25178 toe0d1de7CompareJune 11, 2025 19:05
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@spikecurtisspikecurtisAwaiting requested review from spikecurtisspikecurtis is a code owner

@johnstcnjohnstcnAwaiting requested review from johnstcnjohnstcn is a code owner

At least 1 approving review is required to merge this pull request.

Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

coderd: implement autoscaling mechanism
1 participant
@evgeniy-scherbina

[8]ページ先頭

©2009-2025 Movatter.jp