containerd / containerd/overlaybd

P2P not working with harbor

Open
#326 8 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
410
Forks
85
Avg merge
2d 14h
Merged PRs (30d)
10

Description

### What happened in your environment?

This is more like a question than a bug.
We deploy harbor using azure blob store as the backend storage. During image pull, harbor returns a signed URL to Azure blob store. When we turn on the P2PConfig to route the overlaybd blob download requests to a local server, we found the overlaybd requests are Azure URLs, e.g.

`/registryfs/registryfs.cpp:132|GET:p2p_url: 127.0.0.1:8081/https://abced.blob.core.windows.net/harbor//docker/registry/v2/blobs/sha256/fc/fc830920cdbfd4bbb850c2c11a7932c2371f3916ed7709ecf168729d13326d01/data?se=2024-04-26T06%3A18%3A35Z&sig=zAFnql%2BX%2FJcDREL2tuiA%2FRuShaRQz5zSr8UDbf205W0%3D&sp=r&sr=b&sv=2016-05-31`

### What did you expect to happen?

Ideally we would like the request to be harbor, something like:
`/v2/main/hello/test/blobs/sha256:ba81c3880903ca64f19e7dd0a6f7e52e90b68c2e8e0e3e63d143b1c6d4d60221?ns=harbor.test.com`
So we can use something like Kraken and reduce the harbor load. It also seems inefficient for overlaybd to fetch a signed-url from harbor for each request.

Is this an expected behavior? How difficult is it to change the behavior to the above?

### How can we reproduce it?

enable P2P in overlaybd.json:
```
"p2pConfig": {
"enable": true,
"address": "127.0.0.1:8081"
},
```

### What is the version of your Overlaybd?

0.6.17

### What is your OS environment?

Ubuntu 20.04

### Are you willing to submit PRs to fix it?

- [X] Yes, I am willing to fix it.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.