-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathclients.go
82 lines (66 loc) · 2.1 KB
/
clients.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
79
80
81
82
package clients
import (
"time"
"github.com/jumppad-labs/jumppad/pkg/clients/command"
"github.com/jumppad-labs/jumppad/pkg/clients/connector"
"github.com/jumppad-labs/jumppad/pkg/clients/container"
"github.com/jumppad-labs/jumppad/pkg/clients/getter"
"github.com/jumppad-labs/jumppad/pkg/clients/helm"
"github.com/jumppad-labs/jumppad/pkg/clients/http"
"github.com/jumppad-labs/jumppad/pkg/clients/images"
"github.com/jumppad-labs/jumppad/pkg/clients/k8s"
"github.com/jumppad-labs/jumppad/pkg/clients/logger"
"github.com/jumppad-labs/jumppad/pkg/clients/nomad"
"github.com/jumppad-labs/jumppad/pkg/clients/system"
"github.com/jumppad-labs/jumppad/pkg/clients/tar"
"github.com/jumppad-labs/jumppad/pkg/utils"
)
type Clients struct {
Docker container.Docker
ContainerTasks container.ContainerTasks
Kubernetes k8s.Kubernetes
Helm helm.Helm
HTTP http.HTTP
Nomad nomad.Nomad
Command command.Command
Logger logger.Logger
Getter getter.Getter
Browser system.System
ImageLog images.ImageLog
Connector connector.Connector
TarGz *tar.TarGz
}
// GenerateClients creates the various clients for creating and destroying resources
func GenerateClients(l logger.Logger) (*Clients, error) {
dc, err := container.NewDocker()
if err != nil {
return nil, err
}
kc := k8s.NewKubernetes(60*time.Second, l)
hec := helm.NewHelm(l)
ec := command.NewCommand(30*time.Second, l)
hc := http.NewHTTP(1*time.Second, l)
nc := nomad.NewNomad(hc, 1*time.Second, l)
bp := getter.NewGetter(false)
bc := &system.SystemImpl{}
il := images.NewImageFileLog(utils.ImageCacheLog())
tgz := &tar.TarGz{}
ct := container.NewDockerTasks(dc, il, tgz, l)
co := connector.DefaultConnectorOptions()
cc := connector.NewConnector(co)
return &Clients{
ContainerTasks: ct,
Docker: dc,
Kubernetes: kc,
Helm: hec,
Command: ec,
HTTP: hc,
Nomad: nc,
Logger: l,
Getter: bp,
Browser: bc,
ImageLog: il,
Connector: cc,
TarGz: tgz,
}, nil
}