This repository has been archived by the owner on Nov 13, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
minikube.go
78 lines (63 loc) · 1.66 KB
/
minikube.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package cmd
import (
"fmt"
"strings"
errors "github.com/rotisserie/eris"
)
type Minikube struct {
cmd *Command
}
func (m *Minikube) With(args ...string) *Minikube {
m.cmd = m.cmd.With(args...)
return m
}
func (m *Minikube) SwallowError() *Minikube {
m.cmd.SwallowErrorLog = true
return m
}
func (m *Minikube) Cmd() *Command {
return m.cmd
}
func (m *Minikube) Status() *Minikube {
return m.With("status")
}
func (m *Minikube) Memory(mb int) *Minikube {
return m.With(fmt.Sprintf("--memory=%d", mb))
}
func (m *Minikube) VmDriver(vmDriver string) *Minikube {
if vmDriver == "" {
return m
}
return m.With(fmt.Sprintf("--vm-driver=%s", vmDriver))
}
func (m *Minikube) Cpus(cpus int) *Minikube {
return m.With(fmt.Sprintf("--cpus=%d", cpus))
}
func (m *Minikube) KubeVersion(kubeVersion string) *Minikube {
return m.With(fmt.Sprintf("--kubernetes-version=%s", kubeVersion))
}
func (m *Minikube) FeatureGates(featureGates []string) *Minikube {
if len(featureGates) == 0 {
return m
}
return m.With(fmt.Sprintf("--feature-gates='%s'", strings.Join(featureGates, ",")))
}
func (m *Minikube) IP(runner Runner) (string, error) {
return runner.Output(m.With("ip").Cmd())
}
func (m *Minikube) Start(runner Runner) error {
streamHandler, err := runner.Stream(m.With("start").Cmd())
if err != nil {
return err
}
inputErr := errors.New("could not delete minikube cluster")
return streamHandler.StreamHelper(inputErr)
}
func (m *Minikube) Delete(runner Runner) error {
streamHandler, err := runner.Stream(m.With("delete").Cmd())
if err != nil {
return err
}
inputErr := errors.New("could not delete minikube cluster")
return streamHandler.StreamHelper(inputErr)
}