42 lines
714 B
Go
42 lines
714 B
Go
package installer
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/samber/lo"
|
|
)
|
|
|
|
type K0sOpt func(*k0sOpt)
|
|
type k0sOpt struct {
|
|
Type string // controller, worker
|
|
controllerAsWorker bool
|
|
WorkerTokenFile string
|
|
}
|
|
|
|
func WithK0sType(t string) K0sOpt {
|
|
types := []string{"controller", "worker"}
|
|
return func(o *k0sOpt) {
|
|
if lo.Contains(types, t) {
|
|
o.Type = t
|
|
}
|
|
}
|
|
}
|
|
|
|
func WithK0sControllerAsWorker() K0sOpt {
|
|
return func(o *k0sOpt) {
|
|
o.controllerAsWorker = true
|
|
}
|
|
}
|
|
|
|
func WithK0sWorkerTokenFile(filename string) K0sOpt {
|
|
return func(o *k0sOpt) {
|
|
if filename != "" {
|
|
o.WorkerTokenFile = filename
|
|
}
|
|
}
|
|
}
|
|
|
|
func (i *installer) K0s(ctx context.Context, opts ...K0sOpt) error {
|
|
panic("plz impl")
|
|
}
|