container: add support for uploading to registries

Add a new generic container registry client via a new `container`
package. Use this to create a command line utility as well as a
new upload target for container registries.

The code uses the github.com/containers/* project and packages to
interact with container registires that is also used by skopeo,
podman et al. One if the dependencies is `proglottis/gpgme` that
is using cgo to bind libgpgme, so we have to add the corresponding
devel package to the BuildRequires as well as installing it on CI.

Checks will follow later via an integration test.
This commit is contained in:
Christian Kellner 2022-06-28 19:47:59 +02:00
parent d136a075bc
commit 986f076276
955 changed files with 164203 additions and 2549 deletions

9
go.mod
View file

@ -14,7 +14,9 @@ require (
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect
github.com/BurntSushi/toml v1.1.0
github.com/aws/aws-sdk-go v1.44.43
github.com/aws/aws-sdk-go v1.44.4
github.com/containers/common v0.48.0
github.com/containers/image/v5 v5.21.1
github.com/coreos/go-semver v0.3.0
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f
github.com/deepmap/oapi-codegen v1.8.2
@ -22,7 +24,6 @@ require (
github.com/go-openapi/swag v0.21.1 // indirect
github.com/gobwas/glob v0.2.3
github.com/golang-jwt/jwt/v4 v4.4.1
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/google/go-cmp v0.5.8
github.com/google/uuid v1.3.0
github.com/gophercloud/gophercloud v0.24.0
@ -33,6 +34,7 @@ require (
github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b
github.com/labstack/echo/v4 v4.7.2
github.com/labstack/gommon v0.3.1
github.com/opencontainers/go-digest v1.0.0
github.com/openshift-online/ocm-sdk-go v0.1.266
github.com/oracle/oci-go-sdk/v54 v54.0.0
github.com/prometheus/client_golang v1.12.1
@ -44,9 +46,8 @@ require (
github.com/vmware/govmomi v0.28.0
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
golang.org/x/sys v0.0.0-20220422013727-9388b58f7150
google.golang.org/api v0.75.0
google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/ini.v1 v1.66.4
)