mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add prebuilds configuration & bootstrapping (#17527)
Closes https://github.com/coder/internal/issues/508 --------- Signed-off-by: Danny Kopping <dannykopping@gmail.com> Co-authored-by: Cian Johnston <cian@coder.com>
This commit is contained in:
co-authored by
Cian Johnston
parent
e562e3c882
commit
08ad910171
@@ -14,10 +14,10 @@ var ErrNoClaimablePrebuiltWorkspaces = xerrors.New("no claimable prebuilt worksp
|
||||
type ReconciliationOrchestrator interface {
|
||||
Reconciler
|
||||
|
||||
// RunLoop starts a continuous reconciliation loop that periodically calls ReconcileAll
|
||||
// Run starts a continuous reconciliation loop that periodically calls ReconcileAll
|
||||
// to ensure all prebuilds are in their desired states. The loop runs until the context
|
||||
// is canceled or Stop is called.
|
||||
RunLoop(ctx context.Context)
|
||||
Run(ctx context.Context)
|
||||
|
||||
// Stop gracefully shuts down the orchestrator with the given cause.
|
||||
// The cause is used for logging and error reporting.
|
||||
|
||||
@@ -10,41 +10,28 @@ import (
|
||||
|
||||
type NoopReconciler struct{}
|
||||
|
||||
func NewNoopReconciler() *NoopReconciler {
|
||||
return &NoopReconciler{}
|
||||
}
|
||||
|
||||
func (NoopReconciler) RunLoop(context.Context) {}
|
||||
|
||||
func (NoopReconciler) Stop(context.Context, error) {}
|
||||
|
||||
func (NoopReconciler) ReconcileAll(context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopReconciler) Run(context.Context) {}
|
||||
func (NoopReconciler) Stop(context.Context, error) {}
|
||||
func (NoopReconciler) ReconcileAll(context.Context) error { return nil }
|
||||
func (NoopReconciler) SnapshotState(context.Context, database.Store) (*GlobalSnapshot, error) {
|
||||
return &GlobalSnapshot{}, nil
|
||||
}
|
||||
|
||||
func (NoopReconciler) ReconcilePreset(context.Context, PresetSnapshot) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopReconciler) ReconcilePreset(context.Context, PresetSnapshot) error { return nil }
|
||||
func (NoopReconciler) CalculateActions(context.Context, PresetSnapshot) (*ReconciliationActions, error) {
|
||||
return &ReconciliationActions{}, nil
|
||||
}
|
||||
|
||||
var _ ReconciliationOrchestrator = NoopReconciler{}
|
||||
var DefaultReconciler ReconciliationOrchestrator = NoopReconciler{}
|
||||
|
||||
type AGPLPrebuildClaimer struct{}
|
||||
type NoopClaimer struct{}
|
||||
|
||||
func (AGPLPrebuildClaimer) Claim(context.Context, uuid.UUID, string, uuid.UUID) (*uuid.UUID, error) {
|
||||
func (NoopClaimer) Claim(context.Context, uuid.UUID, string, uuid.UUID) (*uuid.UUID, error) {
|
||||
// Not entitled to claim prebuilds in AGPL version.
|
||||
return nil, ErrNoClaimablePrebuiltWorkspaces
|
||||
}
|
||||
|
||||
func (AGPLPrebuildClaimer) Initiator() uuid.UUID {
|
||||
func (NoopClaimer) Initiator() uuid.UUID {
|
||||
return uuid.Nil
|
||||
}
|
||||
|
||||
var DefaultClaimer Claimer = AGPLPrebuildClaimer{}
|
||||
var DefaultClaimer Claimer = NoopClaimer{}
|
||||
|
||||
Reference in New Issue
Block a user