Skip to content

Commit ff0e813

Browse files
feat: implement autoscaling mechanism for prebuilds
1 parent e4648b6 commit ff0e813

File tree

19 files changed

+1212
-789
lines changed

19 files changed

+1212
-789
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,6 +1104,10 @@ func (q *querier) customRoleCheck(ctx context.Context, role database.CustomRole)
11041104
return nil
11051105
}
11061106

1107+
func (q *querier) InsertPresetPrebuildSchedules(ctx context.Context, arg database.InsertPresetPrebuildSchedulesParams) ([]database.TemplateVersionPresetPrebuildSchedule, error) {
1108+
panic("not implemented")
1109+
}
1110+
11071111
func (q *querier) AcquireLock(ctx context.Context, id int64) error {
11081112
return q.db.AcquireLock(ctx, id)
11091113
}
@@ -3618,6 +3622,10 @@ func (q *querier) InsertPresetParameters(ctx context.Context, arg database.Inser
36183622
return q.db.InsertPresetParameters(ctx, arg)
36193623
}
36203624

3625+
func (q *querier) InsertPresetPrebuildSchedule(ctx context.Context, arg database.InsertPresetPrebuildScheduleParams) ([]database.TemplateVersionPresetPrebuildSchedule, error) {
3626+
panic("not implemented")
3627+
}
3628+
36213629
func (q *querier) InsertProvisionerJob(ctx context.Context, arg database.InsertProvisionerJobParams) (database.ProvisionerJob, error) {
36223630
// TODO: Remove this once we have a proper rbac check for provisioner jobs.
36233631
// Details in https://github.com/coder/coder/issues/16160

coderd/database/dbmem/dbmem.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9156,6 +9156,15 @@ func (q *FakeQuerier) InsertPresetParameters(_ context.Context, arg database.Ins
91569156
return presetParameters, nil
91579157
}
91589158

9159+
func (q *FakeQuerier) InsertPresetPrebuildSchedule(ctx context.Context, arg database.InsertPresetPrebuildScheduleParams) ([]database.TemplateVersionPresetPrebuildSchedule, error) {
9160+
err := validateDatabaseType(arg)
9161+
if err != nil {
9162+
return nil, err
9163+
}
9164+
9165+
panic("not implemented")
9166+
}
9167+
91599168
func (q *FakeQuerier) InsertProvisionerJob(_ context.Context, arg database.InsertProvisionerJobParams) (database.ProvisionerJob, error) {
91609169
if err := validateDatabaseType(arg); err != nil {
91619170
return database.ProvisionerJob{}, err

coderd/database/dbmetrics/querymetrics.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dump.sql

Lines changed: 16 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/foreign_key_constraint.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/migrations/000334_add_autoscaling_to_presets.down.sql

Whitespace-only changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
-- Add new columns to template_version_presets table
2+
ALTER TABLE template_version_presets
3+
ADD COLUMN autoscaling_enabled BOOLEAN DEFAULT false NOT NULL, -- Do we need it?
4+
ADD COLUMN autoscaling_timezone TEXT DEFAULT 'UTC' NOT NULL;
5+
6+
-- New table for autoscaling schedules
7+
CREATE TABLE template_version_preset_prebuild_schedules (
8+
id UUID PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
9+
preset_id UUID NOT NULL,
10+
cron_expression TEXT NOT NULL,
11+
instances INTEGER NOT NULL,
12+
FOREIGN KEY (preset_id) REFERENCES template_version_presets (id) ON DELETE CASCADE
13+
);

coderd/database/models.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

Lines changed: 71 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy