operator-sdk: scorecard test fails to due to docker rate limiting

Bug Report

What did you do?

operator-sdk scorecard bundle

What did you expect to see?

Output from scorecard

What did you see instead? Under which circumstances?

“error running tests context deadline exceeded”. This is because the pulling the busybox image from docker.io is rate limited.

“Failed to pull image “docker.io/busybox:1.33.0”: rpc error: code = Unknown desc = Error loading manifest for target platform: Error reading manifest sha256:eccadc4fb09194c8163cfb7edcd9727933104e86da2ba8ad076732e5e3702a6a in docker.io/library/busybox: toomanyrequests”

Environment

Operator type:

language go

Kubernetes cluster type:

OpenShift

$ operator-sdk version

operator-sdk version: “v1.7.0”, commit: “9291297d89deae7b85a5c2ac4b418a049ba90f7e”, kubernetes version: “1.19.4”, go version: “go1.15.5”, GOOS: “darwin”, GOARCH: “amd64”

$ go version (if language is Go)

go version go1.15.8 darwin/amd64

$ kubectl version

Client Version: version.Info{Major:“1”, Minor:“17”, GitVersion:“v1.17.0”, GitCommit:“70132b0f130acc0bed193d9ba59dd186f0e634cf”, GitTreeState:“clean”, BuildDate:“2019-12-13T11:51:44Z”, GoVersion:“go1.13.4”, Compiler:“gc”, Platform:“darwin/amd64”} Server Version: version.Info{Major:“1”, Minor:“19”, GitVersion:“v1.19.0+7070803”, GitCommit:“70708036fc265771f8d0a45598209018a8b9bd3e”, GitTreeState:“clean”, BuildDate:“2020-12-05T12:01:07Z”, GoVersion:“go1.15.2”, Compiler:“gc”, Platform:“linux/amd64”}

Possible Solution

Provide a configuration option to pull the image from a docker proxy. Presently it’s hardcoded into the code

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 23 (14 by maintainers)

Most upvoted comments

I think it would be good to allow images to be overrode via a setting in the config.yaml file. In the same way we let users specify their test images, but this would be a global setting in that config file instead of a per-test setting.

If my solution really is that painful, then I am ok with adding an --proxied-init-image-tag flag so you can just set the full image tag (with a warning about support of course).

I guess docker rate limits have dropped considerably within the last year. You should be able to pre-load your cluster’s registry with the busybox image pulled from a proxy, since the scorecard runner’s pod pull policy is IfNotPresent.

/triage support