mirror of
https://github.com/containers/podman.git
synced 2025-07-01 00:01:02 +08:00
Vendor in latest containers/image
Changes the default certs directory to /etc/containers/certs.d Signed-off-by: umohnani8 <umohnani@redhat.com>
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
github.com/sirupsen/logrus v1.0.0
|
github.com/sirupsen/logrus v1.0.0
|
||||||
github.com/containers/image 2524e50daed223ad84b827238ed409bbf44296c5
|
github.com/containers/image 3ab2e31e6ff9fc2b21b81188c1f6cf545658ff4a
|
||||||
github.com/docker/docker-credential-helpers d68f9aeca33f5fd3f08eeae5e9d175edf4e731d1
|
github.com/docker/docker-credential-helpers d68f9aeca33f5fd3f08eeae5e9d175edf4e731d1
|
||||||
github.com/ostreedev/ostree-go master
|
github.com/ostreedev/ostree-go master
|
||||||
github.com/containers/storage 1824cf917a6b42d8c41179e807bb20a5fd6c0f0a
|
github.com/containers/storage 1824cf917a6b42d8c41179e807bb20a5fd6c0f0a
|
||||||
|
50
vendor/github.com/containers/image/docker/docker_client.go
generated
vendored
50
vendor/github.com/containers/image/docker/docker_client.go
generated
vendored
@ -9,6 +9,7 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -30,8 +31,6 @@ const (
|
|||||||
dockerV1Hostname = "index.docker.io"
|
dockerV1Hostname = "index.docker.io"
|
||||||
dockerRegistry = "registry-1.docker.io"
|
dockerRegistry = "registry-1.docker.io"
|
||||||
|
|
||||||
systemPerHostCertDirPath = "/etc/docker/certs.d"
|
|
||||||
|
|
||||||
resolvedPingV2URL = "%s://%s/v2/"
|
resolvedPingV2URL = "%s://%s/v2/"
|
||||||
resolvedPingV1URL = "%s://%s/v1/_ping"
|
resolvedPingV1URL = "%s://%s/v1/_ping"
|
||||||
tagsPath = "/v2/%s/tags/list"
|
tagsPath = "/v2/%s/tags/list"
|
||||||
@ -52,6 +51,7 @@ var (
|
|||||||
ErrV1NotSupported = errors.New("can't talk to a V1 docker registry")
|
ErrV1NotSupported = errors.New("can't talk to a V1 docker registry")
|
||||||
// ErrUnauthorizedForCredentials is returned when the status code returned is 401
|
// ErrUnauthorizedForCredentials is returned when the status code returned is 401
|
||||||
ErrUnauthorizedForCredentials = errors.New("unable to retrieve auth token: invalid username/password")
|
ErrUnauthorizedForCredentials = errors.New("unable to retrieve auth token: invalid username/password")
|
||||||
|
systemPerHostCertDirPaths = [2]string{"/etc/containers/certs.d", "/etc/docker/certs.d"}
|
||||||
)
|
)
|
||||||
|
|
||||||
// extensionSignature and extensionSignatureList come from github.com/openshift/origin/pkg/dockerregistry/server/signaturedispatcher.go:
|
// extensionSignature and extensionSignatureList come from github.com/openshift/origin/pkg/dockerregistry/server/signaturedispatcher.go:
|
||||||
@ -131,19 +131,42 @@ func serverDefault() *tls.Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// dockerCertDir returns a path to a directory to be consumed by tlsclientconfig.SetupCertificates() depending on ctx and hostPort.
|
// dockerCertDir returns a path to a directory to be consumed by tlsclientconfig.SetupCertificates() depending on ctx and hostPort.
|
||||||
func dockerCertDir(ctx *types.SystemContext, hostPort string) string {
|
func dockerCertDir(ctx *types.SystemContext, hostPort string) (string, error) {
|
||||||
if ctx != nil && ctx.DockerCertPath != "" {
|
if ctx != nil && ctx.DockerCertPath != "" {
|
||||||
return ctx.DockerCertPath
|
return ctx.DockerCertPath, nil
|
||||||
}
|
}
|
||||||
var hostCertDir string
|
|
||||||
if ctx != nil && ctx.DockerPerHostCertDirPath != "" {
|
if ctx != nil && ctx.DockerPerHostCertDirPath != "" {
|
||||||
hostCertDir = ctx.DockerPerHostCertDirPath
|
return filepath.Join(ctx.DockerPerHostCertDirPath, hostPort), nil
|
||||||
} else if ctx != nil && ctx.RootForImplicitAbsolutePaths != "" {
|
|
||||||
hostCertDir = filepath.Join(ctx.RootForImplicitAbsolutePaths, systemPerHostCertDirPath)
|
|
||||||
} else {
|
|
||||||
hostCertDir = systemPerHostCertDirPath
|
|
||||||
}
|
}
|
||||||
return filepath.Join(hostCertDir, hostPort)
|
|
||||||
|
var (
|
||||||
|
hostCertDir string
|
||||||
|
fullCertDirPath string
|
||||||
|
)
|
||||||
|
for _, systemPerHostCertDirPath := range systemPerHostCertDirPaths {
|
||||||
|
if ctx != nil && ctx.RootForImplicitAbsolutePaths != "" {
|
||||||
|
hostCertDir = filepath.Join(ctx.RootForImplicitAbsolutePaths, systemPerHostCertDirPath)
|
||||||
|
} else {
|
||||||
|
hostCertDir = systemPerHostCertDirPath
|
||||||
|
}
|
||||||
|
|
||||||
|
fullCertDirPath = filepath.Join(hostCertDir, hostPort)
|
||||||
|
_, err := os.Stat(fullCertDirPath)
|
||||||
|
if err == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if os.IsPermission(err) {
|
||||||
|
logrus.Debugf("error accessing certs directory due to permissions: %v", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fullCertDirPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// newDockerClientFromRef returns a new dockerClient instance for refHostname (a host a specified in the Docker image reference, not canonicalized to dockerRegistry)
|
// newDockerClientFromRef returns a new dockerClient instance for refHostname (a host a specified in the Docker image reference, not canonicalized to dockerRegistry)
|
||||||
@ -177,7 +200,10 @@ func newDockerClientWithDetails(ctx *types.SystemContext, registry, username, pa
|
|||||||
// dockerHostname here, because it is more symmetrical to read the configuration in that case as well, and because
|
// dockerHostname here, because it is more symmetrical to read the configuration in that case as well, and because
|
||||||
// generally the UI hides the existence of the different dockerRegistry. But note that this behavior is
|
// generally the UI hides the existence of the different dockerRegistry. But note that this behavior is
|
||||||
// undocumented and may change if docker/docker changes.
|
// undocumented and may change if docker/docker changes.
|
||||||
certDir := dockerCertDir(ctx, hostName)
|
certDir, err := dockerCertDir(ctx, hostName)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
if err := tlsclientconfig.SetupCertificates(certDir, tr.TLSClientConfig); err != nil {
|
if err := tlsclientconfig.SetupCertificates(certDir, tr.TLSClientConfig); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user