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)