feat: 🎉 complete maker nginx(app)
This commit is contained in:
58
internal/controller/installer/installer.k0s.go
Normal file
58
internal/controller/installer/installer.k0s.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package installer
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/samber/lo"
|
||||
)
|
||||
|
||||
type K0sOpt func(*k0sOpt)
|
||||
type k0sOpt struct {
|
||||
Type string // controller, worker
|
||||
DisableWorker 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 WithoutK0sWorker() K0sOpt {
|
||||
return func(o *k0sOpt) {
|
||||
o.DisableWorker = 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 {
|
||||
var (
|
||||
err error
|
||||
o = &k0sOpt{
|
||||
Type: "controller",
|
||||
DisableWorker: false,
|
||||
WorkerTokenFile: "/etc/k0s/worker.token",
|
||||
}
|
||||
)
|
||||
|
||||
if err = i.targetOK(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, fn := range opts {
|
||||
fn(o)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user