diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2022-01-19 09:29:05 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-19 09:29:05 -0500 |
commit | 8301a7cd828c4576c1e581cb2dd376f42a363a11 (patch) | |
tree | 92a32bf4246be2be4cd5325372de7f538c41a27c /pkg/api/handlers/compat/info.go | |
parent | b63e716ffc95f4c4c77a06a9d20085bdcbb67059 (diff) | |
parent | 4b384e08a9680d480976ab575ecf54acdb4d1922 (diff) | |
download | podman-8301a7cd828c4576c1e581cb2dd376f42a363a11.tar.gz podman-8301a7cd828c4576c1e581cb2dd376f42a363a11.tar.bz2 podman-8301a7cd828c4576c1e581cb2dd376f42a363a11.zip |
Merge pull request #12862 from matejvasek/fix-info-ep
Add IndexConfigs info to compat /info endpoint
Diffstat (limited to 'pkg/api/handlers/compat/info.go')
-rw-r--r-- | pkg/api/handlers/compat/info.go | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/pkg/api/handlers/compat/info.go b/pkg/api/handlers/compat/info.go index 42a513002..2dfca2f30 100644 --- a/pkg/api/handlers/compat/info.go +++ b/pkg/api/handlers/compat/info.go @@ -11,6 +11,7 @@ import ( "github.com/containers/common/pkg/config" "github.com/containers/common/pkg/sysinfo" + "github.com/containers/image/v5/pkg/sysregistriesv2" "github.com/containers/podman/v4/libpod" "github.com/containers/podman/v4/libpod/define" "github.com/containers/podman/v4/pkg/api/handlers" @@ -108,7 +109,7 @@ func GetInfo(w http.ResponseWriter, r *http.Request) { Log: infoData.Plugins.Log, }, ProductLicense: "Apache-2.0", - RegistryConfig: new(registry.ServiceConfig), + RegistryConfig: getServiceConfig(runtime), RuncCommit: docker.Commit{}, Runtimes: getRuntimes(configInfo), SecurityOptions: getSecOpts(sysInfo), @@ -133,6 +134,37 @@ func GetInfo(w http.ResponseWriter, r *http.Request) { utils.WriteResponse(w, http.StatusOK, info) } +func getServiceConfig(runtime *libpod.Runtime) *registry.ServiceConfig { + var indexConfs map[string]*registry.IndexInfo + + regs, err := sysregistriesv2.GetRegistries(runtime.SystemContext()) + if err == nil { + indexConfs = make(map[string]*registry.IndexInfo, len(regs)) + for _, reg := range regs { + mirrors := make([]string, len(reg.Mirrors)) + for i, mirror := range reg.Mirrors { + mirrors[i] = mirror.Location + } + indexConfs[reg.Prefix] = ®istry.IndexInfo{ + Name: reg.Prefix, + Mirrors: mirrors, + Secure: !reg.Insecure, + } + } + } else { + log.Warnf("failed to get registries configuration: %v", err) + indexConfs = make(map[string]*registry.IndexInfo) + } + + return ®istry.ServiceConfig{ + AllowNondistributableArtifactsCIDRs: make([]*registry.NetIPNet, 0), + AllowNondistributableArtifactsHostnames: make([]string, 0), + InsecureRegistryCIDRs: make([]*registry.NetIPNet, 0), + IndexConfigs: indexConfs, + Mirrors: make([]string, 0), + } +} + func getGraphStatus(storeInfo map[string]string) [][2]string { graphStatus := make([][2]string, 0, len(storeInfo)) for k, v := range storeInfo { |