deckschrubber icon indicating copy to clipboard operation
deckschrubber copied to clipboard

Unable to handle authentication

Open christian-sahlmann opened this issue 7 years ago • 14 comments

% $GOPATH/bin/deckschrubber -registry $REGISTRY_URL
FATA[0000] Error while fetching repositories! (err: unauthorized: authentication required)

christian-sahlmann avatar Jun 09 '17 10:06 christian-sahlmann

It this a comment, a suggestion, or just an observation?

yan-foto avatar Jun 14 '17 12:06 yan-foto

Sorry for the scarce information. I was in a hurry freeing up the disk space ;)

As this project is using the official libraries, I was expecting that it handles authentication the same way as a docker pull (using the information from .docker/config.json).

So if it should theoretically work as currently implemented, this is a bug report. If it's simply not implemented yet, this is a feature request. :)

Anyways, in the meantime i already solved my issue by accessing the registry directly with my own custom script via the API, and cleaning the orphaned blobs afterwards with registry garbage-collect. So you can also see this information just as a comment and close the issue.

christian-sahlmann avatar Jun 15 '17 07:06 christian-sahlmann

Got it! Maybe I should enhance the documentation. But the short answer is: no it doesn't read from config.json. You should just change your URL to contain HTTP basic auth credentials. But this would be a really nice feature 👍

yan-foto avatar Jun 15 '17 13:06 yan-foto

Would you be able to test the new feature branch (not uploaded yet) that enables basic auth? If yes, I'll upload the branch. Thanks.

yan-foto avatar Dec 20 '17 14:12 yan-foto

Hi! I am running into this issue as well, can you upload the branch so i can test it?

gerritjanf avatar Jan 31 '18 14:01 gerritjanf

@gerritjanf great! I only have implemented the basic auth and not the token based. Please give me some time, as I am fairly busy ATM.

yan-foto avatar Jan 31 '18 16:01 yan-foto

@yan-foto Okay. Basic auth is fine with me

gerritjanf avatar Feb 01 '18 09:02 gerritjanf

Here is the branch: https://github.com/fraunhoferfokus/deckschrubber/tree/feature/basic-auth

Please note that it has been a while since I tested the code and it might be buggy.

I really appreciate your commitment! 👍

yan-foto avatar Feb 01 '18 10:02 yan-foto

@yan-foto The -username and -password options seem to be missing from the code in the branch you refference.

gerritjanf avatar Feb 02 '18 09:02 gerritjanf

@gerritjanf sorry for wasting your time! The commit was missing :( I pushed again just now.

yan-foto avatar Feb 03 '18 20:02 yan-foto

Hi @yan-foto, Just tried again and now i have the basic auth parameters. However it seems that it doesn't work for me. I am tying to use your tool against the registry included in GitLab omnibus and it is complaining about using a token. As this is not yet implemented i seems that your tool is not usable for me right now.

gerritjanf avatar Feb 05 '18 07:02 gerritjanf

Yes I know! They don't use basic auth.

yan-foto avatar Feb 05 '18 10:02 yan-foto

For anyone who is interested (cc @phertweck @mf-lit @phlegx), I have provided a shaky implementation for token-based authentication under basic-auth feature branch. As I don't use Docker anymore and have no proper way of testing this, it would be great if any of you guys cold give it a try. It still works with basic auth and should now support the rest.

NOTE: I am not familiar with scoping mechanisms of Docker Registry and don't know if you could even catalog a registry (to list repositories) if you're not the owner; I also don't know if that process can be limited to namespaces, etc. Accordingly, I'm not sure if this program could be used with registries that you don't own (e.g., Docker Hub).

I appreciate any help!

yan-foto avatar Jun 29 '21 10:06 yan-foto

@yan-foto FYI I have tested https://github.com/fraunhoferfokus/deckschrubber/releases/tag/v0.6.0 against a traefik basic auth to a private registry and it was working like a charm :) Thanks!

davidrot avatar Jan 01 '22 10:01 davidrot