OctopusDeploy / Issues

| Public | Bug reports and known issues for Octopus Deploy and all related tools
https://octopus.com
161 stars 20 forks source link

External feeds for Docker Repositories does not work with slow or huge container repositories #8072

Open CasperSkydt opened 1 year ago

CasperSkydt commented 1 year ago

Severity

Makes us unable to use some Docker repositories

Version

2022.4.8463

Latest Version

None

What happened?

Using a slow Docker Repository makes the UI and Octopus unusable.

This is experienced when configuring a Step template. The same behaviour can be experienced in the TEST of external feeds, if the search takes more than 60 seconds.

When selecting a docker image from within, as an example Kubernetes template, the UI reports 504 Gateway timeout, because the search takes longer than 60 seconds. This makes it impossible in some scenarios where you need to select a docker image to progress in the UI. The Octopus server itselfs, runs the job to the end, no matter how long time the search takes, verified by sniffing network traffic.

Docker registry API has no search functionality, so Octopus Server has to fetch all image names from the registry until it has 10 results or it has gone through all container image names. It uses the _catalog call, fetching 100 image names pr call.

If you have a registry with 10.000 images, then Octopus makes 100 network calls, because it fetches 100 image names pr call. If that 100 calls, takes longer than 60 seconds, the UI will return http 504 and you are stuck, and unable to progress in the configuration of steps.

Reproduction

Configurer a Docker Registry in External feeds. Make a search against a slow or huge docker repository. We verified this against Artifactory.

Docker registry API has no search functionality, so Octopus Server has to fetch all image names from the registry until it has 10 results or it has gone through all container image names. It uses the _catalog call, fetching 100 image names pr call.

If you have a registry with 10.000 images, then Octopus makes 100 network calls, because it fetches 100 image names pr call. If that 100 calls, takes longer than 60 seconds, the UI will return http 504 and you are stuck, and unable to progress in the configuration of steps.

Error and Stacktrace

The server returned a status of 504

More Information

No response

Workaround

No response

CasperSkydt commented 1 year ago

octopuserror