Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Azure Blob storage not working if hierarchical namespaces #4153

Open
CisorKnight opened this issue Nov 9, 2023 · 7 comments
Open

Azure Blob storage not working if hierarchical namespaces #4153

CisorKnight opened this issue Nov 9, 2023 · 7 comments

Comments

@CisorKnight
Copy link

Hi,
I recently installed the project through gitlab helm chart and I had an issue while pushing an image.
The layers upload keep retrying and it ends up returning a 500 error.

I had the following error log message:

unable to delete layer upload resources "/docker/registry/v2/repositories/.../.../_uploads/fa93f285-8bec-4ce4-9f23-1fd3e26c8c3b": azure: storage: service returned error: StatusCode=409, ErrorCode=DirectoryIsNotEmpty, ErrorMessage=This operation is not permitted on a non-empty directory.

I found this issue from pgbackrest project that helps me figure out the problem.
I created a storage account with the hierarchical namespaces option activated.
I tried to create another storage account without hierarchical namespaces and i was able to push an image without errors.

I think it would be great to specify in the documentation that the azure storage account should not use hierarchical namespaces

@milosgajdos
Copy link
Member

I recently installed the project through gitlab helm chart and I had an issue while pushing an image.

I've never used this helm chart so I dont know what release it uses

I think it would be great to specify in the documentation that the azure storage account should not use hierarchical namespaces

Feel free to open a PR

@anwarchk
Copy link

I would be happy to provide a PR for this issue @milosgajdos Can you please point me to the module that is responsible for interacting with CSP storage APIs ?

@milosgajdos
Copy link
Member

module that is responsible for interacting with CSP storage APIs ?

What is a CSP?

@anwarchk
Copy link

module that is responsible for interacting with CSP storage APIs ?

What is a CSP?

Cloud Service Provider

@anwarchk
Copy link

I assume you might be using an SDK or something similar to interact with storage APIs from Azure, AWS etc. I am facing this similar issue in https://github.com/goharbor/harbor and found that they are using distribution lib underneath to interact with Azure blob store.

@anwarchk
Copy link

@CisorKnight Were you able to find a work around for this ? What we are doing right now is to not enable HNS on the storage account, but then we use the ACL to manage fine grained permissions.

@milosgajdos
Copy link
Member

yeah, I mean this extremely outdated -- in fact we no longer update 2.x releases/branches

https://github.com/goharbor/harbor/blob/d01dfd450abbb25cea82bb1c3d546c8dce2fe0eb/src/go.mod#L19

But to answer your question, you can find all support storage drivers in: https://github.com/distribution/distribution/tree/main/registry/storage/driver

nawfg214 referenced this issue Apr 30, 2024
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants