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

Commit01163ea

Browse files
authored
feat: allow users to pause prebuilt workspace reconciliation (#18700)
This PR provides two commands:* `coder prebuilds pause`* `coder prebuilds resume`These allow the suspension of all prebuilds activity, intended for useif prebuilds are misbehaving.
1 parent4072d22 commit01163ea

File tree

42 files changed

+1336
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1336
-4
lines changed

‎coderd/apidoc/docs.go‎

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

‎coderd/apidoc/swagger.json‎

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

‎coderd/audit/diff.go‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type Auditable interface {
2424
database.NotificationsSettings|
2525
database.OAuth2ProviderApp|
2626
database.OAuth2ProviderAppSecret|
27+
database.PrebuildsSettings|
2728
database.CustomRole|
2829
database.AuditableOrganizationMember|
2930
database.Organization|

‎coderd/audit/request.go‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ func ResourceTarget[T Auditable](tgt T) string {
113113
return""// no target?
114114
case database.NotificationsSettings:
115115
return""// no target?
116+
case database.PrebuildsSettings:
117+
return""// no target?
116118
case database.OAuth2ProviderApp:
117119
returntyped.Name
118120
case database.OAuth2ProviderAppSecret:
@@ -176,6 +178,9 @@ func ResourceID[T Auditable](tgt T) uuid.UUID {
176178
case database.NotificationsSettings:
177179
// Artificial ID for auditing purposes
178180
returntyped.ID
181+
case database.PrebuildsSettings:
182+
// Artificial ID for auditing purposes
183+
returntyped.ID
179184
case database.OAuth2ProviderApp:
180185
returntyped.ID
181186
case database.OAuth2ProviderAppSecret:
@@ -231,6 +236,8 @@ func ResourceType[T Auditable](tgt T) database.ResourceType {
231236
returndatabase.ResourceTypeHealthSettings
232237
case database.NotificationsSettings:
233238
returndatabase.ResourceTypeNotificationsSettings
239+
case database.PrebuildsSettings:
240+
returndatabase.ResourceTypePrebuildsSettings
234241
case database.OAuth2ProviderApp:
235242
returndatabase.ResourceTypeOauth2ProviderApp
236243
case database.OAuth2ProviderAppSecret:
@@ -288,6 +295,9 @@ func ResourceRequiresOrgID[T Auditable]() bool {
288295
case database.NotificationsSettings:
289296
// Artificial ID for auditing purposes
290297
returnfalse
298+
case database.PrebuildsSettings:
299+
// Artificial ID for auditing purposes
300+
returnfalse
291301
case database.OAuth2ProviderApp:
292302
returnfalse
293303
case database.OAuth2ProviderAppSecret:

‎coderd/database/dbauthz/dbauthz.go‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2304,6 +2304,10 @@ func (q *querier) GetPrebuildMetrics(ctx context.Context) ([]database.GetPrebuil
23042304
returnq.db.GetPrebuildMetrics(ctx)
23052305
}
23062306

2307+
func (q*querier)GetPrebuildsSettings(ctx context.Context) (string,error) {
2308+
returnq.db.GetPrebuildsSettings(ctx)
2309+
}
2310+
23072311
func (q*querier)GetPresetByID(ctx context.Context,presetID uuid.UUID) (database.GetPresetByIDRow,error) {
23082312
empty:= database.GetPresetByIDRow{}
23092313

@@ -5101,6 +5105,13 @@ func (q *querier) UpsertOAuthSigningKey(ctx context.Context, value string) error
51015105
returnq.db.UpsertOAuthSigningKey(ctx,value)
51025106
}
51035107

5108+
func (q*querier)UpsertPrebuildsSettings(ctx context.Context,valuestring)error {
5109+
iferr:=q.authorizeContext(ctx,policy.ActionUpdate,rbac.ResourceDeploymentConfig);err!=nil {
5110+
returnerr
5111+
}
5112+
returnq.db.UpsertPrebuildsSettings(ctx,value)
5113+
}
5114+
51045115
func (q*querier)UpsertProvisionerDaemon(ctx context.Context,arg database.UpsertProvisionerDaemonParams) (database.ProvisionerDaemon,error) {
51055116
res:=rbac.ResourceProvisionerDaemon.InOrg(arg.OrganizationID)
51065117
ifarg.Tags[provisionersdk.TagScope]==provisionersdk.ScopeUser {

‎coderd/database/dbauthz/dbauthz_test.go‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5071,6 +5071,12 @@ func (s *MethodTestSuite) TestPrebuilds() {
50715071
check.Args().
50725072
Asserts(rbac.ResourceWorkspace.All(),policy.ActionRead)
50735073
}))
5074+
s.Run("GetPrebuildsSettings",s.Subtest(func(db database.Store,check*expects) {
5075+
check.Args().Asserts()
5076+
}))
5077+
s.Run("UpsertPrebuildsSettings",s.Subtest(func(db database.Store,check*expects) {
5078+
check.Args("foo").Asserts(rbac.ResourceDeploymentConfig,policy.ActionUpdate)
5079+
}))
50745080
s.Run("CountInProgressPrebuilds",s.Subtest(func(_ database.Store,check*expects) {
50755081
check.Args().
50765082
Asserts(rbac.ResourceWorkspace.All(),policy.ActionRead).

‎coderd/database/dbmem/dbmem.go‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ type data struct {
297297
presets []database.TemplateVersionPreset
298298
presetParameters []database.TemplateVersionPresetParameter
299299
presetPrebuildSchedules []database.TemplateVersionPresetPrebuildSchedule
300+
prebuildsSettings []byte
300301
}
301302

302303
functryPercentileCont(fs []float64,pfloat64)float64 {
@@ -4277,7 +4278,14 @@ func (*FakeQuerier) GetPrebuildMetrics(_ context.Context) ([]database.GetPrebuil
42774278
returnmake([]database.GetPrebuildMetricsRow,0),nil
42784279
}
42794280

4280-
func (q*FakeQuerier)GetPresetByID(ctx context.Context,presetID uuid.UUID) (database.GetPresetByIDRow,error) {
4281+
func (q*FakeQuerier)GetPrebuildsSettings(_ context.Context) (string,error) {
4282+
q.mutex.RLock()
4283+
deferq.mutex.RUnlock()
4284+
4285+
returnstring(slices.Clone(q.prebuildsSettings)),nil
4286+
}
4287+
4288+
func (q*FakeQuerier)GetPresetByID(_ context.Context,presetID uuid.UUID) (database.GetPresetByIDRow,error) {
42814289
q.mutex.RLock()
42824290
deferq.mutex.RUnlock()
42834291

@@ -12316,6 +12324,14 @@ func (q *FakeQuerier) UpsertOAuthSigningKey(_ context.Context, value string) err
1231612324
returnnil
1231712325
}
1231812326

12327+
func (q*FakeQuerier)UpsertPrebuildsSettings(_ context.Context,valuestring)error {
12328+
q.mutex.Lock()
12329+
deferq.mutex.Unlock()
12330+
12331+
q.prebuildsSettings= []byte(value)
12332+
returnnil
12333+
}
12334+
1231912335
func (q*FakeQuerier)UpsertProvisionerDaemon(_ context.Context,arg database.UpsertProvisionerDaemonParams) (database.ProvisionerDaemon,error) {
1232012336
iferr:=validateDatabaseType(arg);err!=nil {
1232112337
return database.ProvisionerDaemon{},err

‎coderd/database/dbmetrics/querymetrics.go‎

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

‎coderd/database/dbmock/dbmock.go‎

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

‎coderd/database/dump.sql‎

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp