aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2019-05-03 09:34:34 -0400
committerDaniel J Walsh <dwalsh@redhat.com>2019-05-03 10:38:51 -0400
commitd1a7378aa06eb3cc6ff02c3ca90356bf9a151ada (patch)
tree787422cac8ab499ca8c26aa679558ddb96f4d7e8
parentd9d9c82184ad6d7e3fad07dfe2e99b158560d3a8 (diff)
downloadpodman-d1a7378aa06eb3cc6ff02c3ca90356bf9a151ada.tar.gz
podman-d1a7378aa06eb3cc6ff02c3ca90356bf9a151ada.tar.bz2
podman-d1a7378aa06eb3cc6ff02c3ca90356bf9a151ada.zip
change from sysregistries to sysregistriesv2
We want to start supporting the registries.conf format. Also start showing blocked registries in podman info Fix sorting so all registries are listed together in podman info. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
-rw-r--r--contrib/spec/podman.spec.in4
-rw-r--r--docs/podman-info.1.md8
-rw-r--r--libpod/image/pull.go4
-rw-r--r--libpod/runtime.go16
-rw-r--r--pkg/registries/registries.go49
5 files changed, 59 insertions, 22 deletions
diff --git a/contrib/spec/podman.spec.in b/contrib/spec/podman.spec.in
index 4b9cbd4cf..f3ee01bca 100644
--- a/contrib/spec/podman.spec.in
+++ b/contrib/spec/podman.spec.in
@@ -204,7 +204,7 @@ BuildRequires: golang(github.com/containers/image/docker/tarfile)
BuildRequires: golang(github.com/containers/image/image)
BuildRequires: golang(github.com/containers/image/oci/archive)
BuildRequires: golang(github.com/containers/image/pkg/strslice)
-BuildRequires: golang(github.com/containers/image/pkg/sysregistries)
+BuildRequires: golang(github.com/containers/image/pkg/sysregistriesv2)
BuildRequires: golang(github.com/containers/image/signature)
BuildRequires: golang(github.com/containers/image/storage)
BuildRequires: golang(github.com/containers/image/tarball)
@@ -256,7 +256,7 @@ Requires: golang(github.com/containers/image/docker/tarfile)
Requires: golang(github.com/containers/image/image)
Requires: golang(github.com/containers/image/oci/archive)
Requires: golang(github.com/containers/image/pkg/strslice)
-Requires: golang(github.com/containers/image/pkg/sysregistries)
+Requires: golang(github.com/containers/image/pkg/sysregistriesv2)
Requires: golang(github.com/containers/image/signature)
Requires: golang(github.com/containers/image/storage)
Requires: golang(github.com/containers/image/tarball)
diff --git a/docs/podman-info.1.md b/docs/podman-info.1.md
index c606a4422..edd0252f6 100644
--- a/docs/podman-info.1.md
+++ b/docs/podman-info.1.md
@@ -52,14 +52,14 @@ host:
kernel: 4.18.7-200.fc28.x86_64
os: linux
uptime: 218h 49m 33.66s (Approximately 9.08 days)
-insecure registries:
- registries: []
registries:
- registries:
+ blocked: null
+ insecure: null
+ search:
- quay.io
- registry.fedoraproject.org
- docker.io
- - registry.access.redhat.com
+ - registry.redhat.io
store:
ConfigFile: /etc/containers/storage.conf
ContainerStore:
diff --git a/libpod/image/pull.go b/libpod/image/pull.go
index 5a0706b07..cb7411ce5 100644
--- a/libpod/image/pull.go
+++ b/libpod/image/pull.go
@@ -13,7 +13,6 @@ import (
dockerarchive "github.com/containers/image/docker/archive"
"github.com/containers/image/docker/tarfile"
ociarchive "github.com/containers/image/oci/archive"
- "github.com/containers/image/pkg/sysregistries"
is "github.com/containers/image/storage"
"github.com/containers/image/transports"
"github.com/containers/image/transports/alltransports"
@@ -284,9 +283,8 @@ func (ir *Runtime) doPullImage(ctx context.Context, sc *types.SystemContext, goa
}
// If no image was found, we should handle. Lets be nicer to the user and see if we can figure out why.
if len(images) == 0 {
- registryPath := sysregistries.RegistriesConfPath(&types.SystemContext{SystemRegistriesConfPath: systemRegistriesConfPath})
if goal.usedSearchRegistries && len(goal.searchedRegistries) == 0 {
- return nil, errors.Errorf("image name provided is a short name and no search registries are defined in %s.", registryPath)
+ return nil, errors.Errorf("image name provided is a short name and no search registries are defined in the registries config file.")
}
// If the image passed in was fully-qualified, we will have 1 refpair. Bc the image is fq'd, we dont need to yap about registries.
if !goal.usedSearchRegistries {
diff --git a/libpod/runtime.go b/libpod/runtime.go
index 6b8d97fd9..34b6ac74f 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -1122,16 +1122,20 @@ func (r *Runtime) Info() ([]InfoData, error) {
return nil, errors.Wrapf(err, "error getting registries")
}
registries := make(map[string]interface{})
- registries["registries"] = reg
- info = append(info, InfoData{Type: "registries", Data: registries})
+ registries["search"] = reg
+
+ ireg, err := sysreg.GetInsecureRegistries()
+ if err != nil {
+ return nil, errors.Wrapf(err, "error getting registries")
+ }
+ registries["insecure"] = ireg
- i, err := sysreg.GetInsecureRegistries()
+ breg, err := sysreg.GetBlockedRegistries()
if err != nil {
return nil, errors.Wrapf(err, "error getting registries")
}
- insecureRegistries := make(map[string]interface{})
- insecureRegistries["registries"] = i
- info = append(info, InfoData{Type: "insecure registries", Data: insecureRegistries})
+ registries["blocked"] = breg
+ info = append(info, InfoData{Type: "registries", Data: registries})
return info, nil
}
diff --git a/pkg/registries/registries.go b/pkg/registries/registries.go
index 9f4c94533..fdb7f33c5 100644
--- a/pkg/registries/registries.go
+++ b/pkg/registries/registries.go
@@ -5,7 +5,7 @@ import (
"path/filepath"
"strings"
- "github.com/containers/image/pkg/sysregistries"
+ "github.com/containers/image/pkg/sysregistriesv2"
"github.com/containers/image/types"
"github.com/containers/libpod/pkg/rootless"
"github.com/docker/distribution/reference"
@@ -34,22 +34,57 @@ func SystemRegistriesConfPath() string {
return ""
}
-// GetRegistries obtains the list of registries defined in the global registries file.
-func GetRegistries() ([]string, error) {
- searchRegistries, err := sysregistries.GetRegistries(&types.SystemContext{SystemRegistriesConfPath: SystemRegistriesConfPath()})
+func getRegistries() ([]sysregistriesv2.Registry, error) {
+ registries, err := sysregistriesv2.GetRegistries(&types.SystemContext{SystemRegistriesConfPath: SystemRegistriesConfPath()})
if err != nil {
return nil, errors.Wrapf(err, "unable to parse the registries.conf file")
}
+ return registries, nil
+}
+
+// GetRegistries obtains the list of search registries defined in the global registries file.
+func GetRegistries() ([]string, error) {
+ var searchRegistries []string
+ registries, err := getRegistries()
+ if err != nil {
+ return nil, err
+ }
+ for _, reg := range registries {
+ if reg.Search {
+ searchRegistries = append(searchRegistries, reg.URL)
+ }
+ }
return searchRegistries, nil
}
+// GetBlockedRegistries obtains the list of blocked registries defined in the global registries file.
+func GetBlockedRegistries() ([]string, error) {
+ var blockedRegistries []string
+ registries, err := getRegistries()
+ if err != nil {
+ return nil, err
+ }
+ for _, reg := range registries {
+ if reg.Blocked {
+ blockedRegistries = append(blockedRegistries, reg.URL)
+ }
+ }
+ return blockedRegistries, nil
+}
+
// GetInsecureRegistries obtains the list of insecure registries from the global registration file.
func GetInsecureRegistries() ([]string, error) {
- registries, err := sysregistries.GetInsecureRegistries(&types.SystemContext{SystemRegistriesConfPath: SystemRegistriesConfPath()})
+ var insecureRegistries []string
+ registries, err := getRegistries()
if err != nil {
- return nil, errors.Wrapf(err, "unable to parse the registries.conf file")
+ return nil, err
}
- return registries, nil
+ for _, reg := range registries {
+ if reg.Insecure {
+ insecureRegistries = append(insecureRegistries, reg.URL)
+ }
+ }
+ return insecureRegistries, nil
}
// GetRegistry returns the registry name from a string if specified