@@ -28,45 +28,42 @@ import (
28
28
"strings"
29
29
"sync"
30
30
31
- "github.com/GoogleContainerTools/skaffold/pkg/skaffold/version"
32
-
33
31
"github.com/GoogleContainerTools/skaffold/pkg/skaffold/constants"
34
32
kubectx "github.com/GoogleContainerTools/skaffold/pkg/skaffold/kubernetes/context"
35
33
"github.com/GoogleContainerTools/skaffold/pkg/skaffold/util"
34
+ "github.com/GoogleContainerTools/skaffold/pkg/skaffold/version"
36
35
"github.com/docker/docker/api"
37
36
"github.com/docker/docker/client"
38
37
"github.com/docker/go-connections/tlsconfig"
39
38
"github.com/pkg/errors"
40
39
"github.com/sirupsen/logrus"
41
40
)
42
41
43
- type APIClient interface {
44
- client.CommonAPIClient
45
- }
46
-
47
42
var (
48
43
dockerAPIClientOnce sync.Once
49
- dockerAPIClient APIClient
44
+ dockerAPIClient LocalDaemon
50
45
dockerAPIClientErr error
51
46
)
52
47
53
48
// NewAPIClient guesses the docker client to use based on current kubernetes context.
54
- func NewAPIClient () (APIClient , error ) {
49
+ func NewAPIClient () (LocalDaemon , error ) {
55
50
dockerAPIClientOnce .Do (func () {
56
51
kubeContext , err := kubectx .CurrentContext ()
57
52
if err != nil {
58
53
dockerAPIClientErr = errors .Wrap (err , "getting current cluster context" )
59
54
return
60
55
}
61
56
62
- dockerAPIClient , dockerAPIClientErr = newAPIClient (kubeContext )
57
+ apiClient , err := newAPIClient (kubeContext )
58
+ dockerAPIClient = NewLocalDaemon (apiClient )
59
+ dockerAPIClientErr = err
63
60
})
64
61
65
62
return dockerAPIClient , dockerAPIClientErr
66
63
}
67
64
68
65
// newAPIClient guesses the docker client to use based on current kubernetes context.
69
- func newAPIClient (kubeContext string ) (APIClient , error ) {
66
+ func newAPIClient (kubeContext string ) (client. CommonAPIClient , error ) {
70
67
if kubeContext == constants .DefaultMinikubeContext {
71
68
return newMinikubeAPIClient ()
72
69
}
@@ -76,7 +73,7 @@ func newAPIClient(kubeContext string) (APIClient, error) {
76
73
// newEnvAPIClient returns a docker client based on the environment variables set.
77
74
// It will "negotiate" the highest possible API version supported by both the client
78
75
// and the server if there is a mismatch.
79
- func newEnvAPIClient () (APIClient , error ) {
76
+ func newEnvAPIClient () (client. CommonAPIClient , error ) {
80
77
cli , err := client .NewClientWithOpts (client .FromEnv , client .WithHTTPHeaders (getUserAgentHeader ()))
81
78
if err != nil {
82
79
return nil , fmt .Errorf ("error getting docker client: %s" , err )
@@ -88,7 +85,7 @@ func newEnvAPIClient() (APIClient, error) {
88
85
89
86
// newMinikubeAPIClient returns a docker client using the environment variables
90
87
// provided by minikube.
91
- func newMinikubeAPIClient () (APIClient , error ) {
88
+ func newMinikubeAPIClient () (client. CommonAPIClient , error ) {
92
89
env , err := getMinikubeDockerEnv ()
93
90
if err != nil {
94
91
logrus .Warnf ("Could not get minikube docker env, falling back to local docker daemon: %s" , err )
0 commit comments