summaryrefslogtreecommitdiff
path: root/pkg/api/handlers/compat
diff options
context:
space:
mode:
authorMatej Vasek <mvasek@redhat.com>2022-01-14 17:08:52 +0100
committerMatej Vasek <mvasek@redhat.com>2022-01-19 13:46:32 +0100
commit4b384e08a9680d480976ab575ecf54acdb4d1922 (patch)
tree1296ffdc40e6b45086ea485c5f275188130dc669 /pkg/api/handlers/compat
parent094665ac0cccc04c7797881ff2a27ff330e9a72e (diff)
downloadpodman-4b384e08a9680d480976ab575ecf54acdb4d1922.tar.gz
podman-4b384e08a9680d480976ab575ecf54acdb4d1922.tar.bz2
podman-4b384e08a9680d480976ab575ecf54acdb4d1922.zip
Add IndexConfigs to compat /info endpoint
Signed-off-by: Matej Vasek <mvasek@redhat.com>
Diffstat (limited to 'pkg/api/handlers/compat')
-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 {