mirror of
https://github.com/siderolabs/talos.git
synced 2025-10-14 00:51:12 +02:00
For each task, name follow function name for now (but it could be customized if needed). Phases are after main theme of the tasks inside the phase. Task and phase events are now displayed in `talosctl events`. Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
package runtime
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
)
|
|
|
|
// TaskSetupFunc defines the function that a task will execute for a specific runtime
|
|
// mode.
|
|
type TaskSetupFunc func(seq Sequence, data interface{}) (TaskExecutionFunc, string)
|
|
|
|
// TaskExecutionFunc defines the function that a task will execute for a specific runtime
|
|
// mode.
|
|
type TaskExecutionFunc func(context.Context, *log.Logger, Runtime) error
|
|
|
|
// Phase represents a collection of tasks to be performed concurrently.
|
|
type Phase struct {
|
|
Name string
|
|
Tasks []TaskSetupFunc
|
|
}
|
|
|
|
// ControllerOptions represents the options for a controller.
|
|
type ControllerOptions struct {
|
|
Force bool
|
|
}
|
|
|
|
// ControllerOption represents an option setter.
|
|
type ControllerOption func(o *ControllerOptions) error
|
|
|
|
// WithForce sets the force option to true.
|
|
func WithForce() ControllerOption {
|
|
return func(o *ControllerOptions) error {
|
|
o.Force = true
|
|
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// DefaultControllerOptions returns the default controller options.
|
|
func DefaultControllerOptions() ControllerOptions {
|
|
return ControllerOptions{}
|
|
}
|
|
|
|
// Controller represents the controller responsible for managing the execution
|
|
// of sequences.
|
|
type Controller interface {
|
|
Runtime() Runtime
|
|
Sequencer() Sequencer
|
|
Run(Sequence, interface{}, ...ControllerOption) error
|
|
}
|