60 lines
1.2 KiB
Go
60 lines
1.2 KiB
Go
package worker
|
|
|
|
import (
|
|
"github.com/cirruslabs/orchard/internal/dialer"
|
|
"github.com/cirruslabs/orchard/internal/worker/runtime"
|
|
v1 "github.com/cirruslabs/orchard/pkg/resource/v1"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type Option func(*Worker)
|
|
|
|
func WithName(name string) Option {
|
|
return func(worker *Worker) {
|
|
worker.name = name
|
|
}
|
|
}
|
|
|
|
func WithNameSuffix(nameSuffix string) Option {
|
|
return func(worker *Worker) {
|
|
worker.nameSuffix = nameSuffix
|
|
}
|
|
}
|
|
|
|
func WithResources(resources v1.Resources) Option {
|
|
return func(worker *Worker) {
|
|
worker.resources = resources
|
|
}
|
|
}
|
|
|
|
func WithLabels(labels v1.Labels) Option {
|
|
return func(worker *Worker) {
|
|
worker.labels = labels
|
|
}
|
|
}
|
|
|
|
func WithDefaultCPUAndMemory(defaultCPU uint64, defaultMemory uint64) Option {
|
|
return func(worker *Worker) {
|
|
worker.defaultCPU = defaultCPU
|
|
worker.defaultMemory = defaultMemory
|
|
}
|
|
}
|
|
|
|
func WithDialer(dialer dialer.Dialer) Option {
|
|
return func(worker *Worker) {
|
|
worker.dialer = dialer
|
|
}
|
|
}
|
|
|
|
func WithSynthetic() Option {
|
|
return func(worker *Worker) {
|
|
worker.runtime = runtime.NewSynthetic()
|
|
}
|
|
}
|
|
|
|
func WithLogger(logger *zap.Logger) Option {
|
|
return func(worker *Worker) {
|
|
worker.logger = logger.Sugar()
|
|
}
|
|
}
|