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

added poc way of dealing with docker auth issues #1421

Closed
wants to merge 1 commit into from

Conversation

robbert229
Copy link

This is meant as an example of what I as a user need to use kaniko. I need a way of using regular docker auth helpers with kaniko.

@@ -70,6 +70,10 @@ func podTemplate(cfg *latest.KanikoBuild, args []string) *v1.Pod {
Name: constants.DefaultKanikoSecretName,
MountPath: "/secret",
},
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So why not overload the credentials and mount them as the normal creds in /secret as well as in /root/.docker/config.json?

In my case this allowed me to set the kanikoSecret: ~/.docker/config.json inside of the kaniko builder configuration.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting idea. My thoughts:
1.) However there is no way both can work. What if you want to build two artifacts, one with a GCR repo, the other one using Docker? The first would want to use the GOOGLE_APPLICATION_CREDENTIALS env var, the latter would use the config.json.
2.) based on https://github.com/GoogleContainerTools/kaniko#pushing-to-amazon-ecr I see that it should be /kaniko/.docker/config.json and could be a configmap... @priyawadhwa can you advise?
3.) What if we introduce a mountDockerConfig boolean flag, by default false and a dockerConfigPath: string flag pointing to ~/.docker/config.json by default instead?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup option 3 SGTM -- basically skaffold.yaml should have separate options for registry specific credentials and the dockerconfig in case both are needed, as @balopat said. We could create a configmap or another secret (probably better) for the dockerconfig and mount it into /kaniko/.docker/config.json (that's where kaniko expects to find it)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the delay. I wasn't intending for the configuration to be reused, I only did it to simplify the work required to test the concept. Realistically option 3 is probably be the best.

@codecov-io
Copy link

Codecov Report

Merging #1421 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #1421   +/-   ##
=======================================
  Coverage   44.77%   44.77%           
=======================================
  Files         111      111           
  Lines        4554     4554           
=======================================
  Hits         2039     2039           
  Misses       2310     2310           
  Partials      205      205

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 268f4dc...e06e346. Read the comment docs.

@garethjevans
Copy link
Contributor

Hi, just wondering if anyone is looking at an implementation for option 3 - am happy to help if I can.

@robbert229
Copy link
Author

@garethjevans I would appreciate it if you found the time to take a swing at it! I am just a little too busy right now. I really just opened this pull request to start the conversation

@garethjevans
Copy link
Contributor

@robbert229 no problem, I'll take a look at it tomorrow, see what I can come up with.

@garethjevans
Copy link
Contributor

@robbert229 just to give you a heads up on where i'm up to, I'm working on a branch (https://github.com/garethjevans/skaffold/tree/docker-creds), pushing the image to dockerhub works nicely, but using skaffold to tag the image is currently failing due to a PUT request with a zero length body when adding the manifest. I'm still trying to track this down.

@garethjevans
Copy link
Contributor

@robbert229 implementation is in #1466

@robbert229
Copy link
Author

Closing now that @garethjevans has a real pr up! :)

@robbert229 robbert229 closed this Jan 15, 2019
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

Successfully merging this pull request may close these issues.

5 participants