Allow using Google application default credentials for Artifact Registry #1167
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With GoogleContainerTools/jib#1902 and GoogleContainerTools/jib#3241 JIB is able to use Google Application Default Credentials for authenticating against Google Container Registry and Google Artifact Registry.
Therefore the CredentialRetriever
googleApplicationDefaultCredentials
was implemented in CredentiaReceiver. At the moment, only the CredentialRetrieverwellKnownCredentialHelpers
is used in micornaut-maven-plugin. ThegoogleApplicationDefaultCredentials
CredentialRetriever isn't used at the moment. Therefor Google Application Default Credentials cannot be used for authenticating against Google Container Registry and Google Artifact Registry.This PR fixes this issue.
At fixing this issue I ran into the problem, that Guava 19 is a transitive dependency of
com.github.docker-java:docker-java-core
.There are also version 32.1.2 (transitive dependency of
com.google.cloud.tools:jib-maven-plugin
) and version 33.2.1 (transitive dependency oforg.apache.maven:maven-core
) in the classpath. Guava 19 seems to be a problem, becausejava.lang.NoSuchMethodError: 'long com.google.common.io.ByteStreams.exhaust(java.io.InputStream)'
is thrown, whengoogleCredentials.refreshIfExpired()
ingoogleApplicationDefaultCredentials
is called. After excluding Guava 19 everything works fine for me.