MCPcopy Index your code
hub / github.com/devspace-sh/devspace / newDockerClientFromMinikube

Function newDockerClientFromMinikube

pkg/devspace/docker/client.go:114–159  ·  view source on GitHub ↗
(ctx context.Context, kubectlClient kubectl.Client)

Source from the content-addressed store, hash-verified

112}
113
114func newDockerClientFromMinikube(ctx context.Context, kubectlClient kubectl.Client) (Client, error) {
115 if !kubectl.IsMinikubeKubernetes(kubectlClient) {
116 return nil, errNotMinikube
117 }
118
119 env, err := GetMinikubeEnvironment(ctx, kubectlClient.CurrentContext())
120 if err != nil {
121 return nil, errors.Errorf("can't retrieve minikube docker environment due to error: %v", err)
122 }
123
124 var httpclient *http.Client
125 if dockerCertPath := env["DOCKER_CERT_PATH"]; dockerCertPath != "" {
126 options := tlsconfig.Options{
127 CAFile: filepath.Join(dockerCertPath, "ca.pem"),
128 CertFile: filepath.Join(dockerCertPath, "cert.pem"),
129 KeyFile: filepath.Join(dockerCertPath, "key.pem"),
130 InsecureSkipVerify: env["DOCKER_TLS_VERIFY"] == "",
131 }
132 tlsc, err := tlsconfig.Client(options)
133 if err != nil {
134 return nil, err
135 }
136
137 httpclient = &http.Client{
138 Transport: &http.Transport{
139 TLSClientConfig: tlsc,
140 },
141 CheckRedirect: dockerclient.CheckRedirect,
142 }
143 }
144
145 host := env["DOCKER_HOST"]
146 if host == "" {
147 host = dockerclient.DefaultDockerHost
148 }
149
150 cli, err := dockerclient.NewClientWithOpts(dockerclient.WithHost(host), dockerclient.WithVersion(env["DOCKER_API_VERSION"]), dockerclient.WithHTTPClient(httpclient), dockerclient.WithHTTPHeaders(nil))
151 if err != nil {
152 return nil, err
153 }
154
155 return &client{
156 APIClient: cli,
157 minikubeEnv: env,
158 }, nil
159}
160
161func GetMinikubeEnvironment(ctx context.Context, kubeContext string) (map[string]string, error) {
162 out, err := command.Output(ctx, "", expand.ListEnviron(os.Environ()...), "minikube", "docker-env", "--shell", "none", "--profile", kubeContext)

Callers 1

NewClientWithMinikubeFunction · 0.85

Calls 5

IsMinikubeKubernetesFunction · 0.92
GetMinikubeEnvironmentFunction · 0.85
ClientMethod · 0.80
CurrentContextMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected