summaryrefslogtreecommitdiff
path: root/pkg/api
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2022-01-19 09:29:05 -0500
committerGitHub <noreply@github.com>2022-01-19 09:29:05 -0500
commit8301a7cd828c4576c1e581cb2dd376f42a363a11 (patch)
tree92a32bf4246be2be4cd5325372de7f538c41a27c /pkg/api
parentb63e716ffc95f4c4c77a06a9d20085bdcbb67059 (diff)
parent4b384e08a9680d480976ab575ecf54acdb4d1922 (diff)
downloadpodman-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')
-rw-r--r--pkg/api/handlers/compat/info.go34
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] = &registry.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 &registry.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 {