benchmarks: push/pull

Polish the push and pull benchmarks.  In particular, make sure to not be
network bound during these benchmarks by running a local registry and
pushing a local image that can later on be pulled.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
This commit is contained in:
Valentin Rothberg
2022-05-03 14:34:00 +02:00
parent 3ac5cec086
commit 8781a3635a
2 changed files with 71 additions and 25 deletions

View File

@ -31,10 +31,31 @@ type Registry struct {
running bool
}
// Options allows for customizing a registry.
type Options struct {
// Image - custom registry image.
Image string
}
// Start a new registry and return it along with it's image, user, password, and port.
func Start() (*Registry, error) {
return StartWithOptions(nil)
}
// StartWithOptions a new registry and return it along with it's image, user, password, and port.
func StartWithOptions(options *Options) (*Registry, error) {
if options == nil {
options = &Options{}
}
var args []string
if options.Image != "" {
args = append(args, "-i", options.Image)
}
args = append(args, "start")
// Start a registry.
out, err := utils.ExecCmd(binary, "start")
out, err := utils.ExecCmd(binary, args...)
if err != nil {
return nil, errors.Wrapf(err, "error running %q: %s", binary, out)
}