Skip to content

Conversation

@kostyaplis
Copy link

Description of your changes

Use case:
Multiple GKE environments across different GCP projects are managed by Crossplane. Each environment has a preconfigured management service account, which can be impersonated by the Crossplane service account.
After provisioning GKE clusters, we want to manage Kubernetes API objects using provider-kubernetes, leveraging the same authentication flow—specifically, impersonating the respective service account in each target project.

This pull request adds support for setting identity.impersonatedServiceAccount.namewhen identity.type: GoogleApplicationCredentials is used. This allows the retrieved credentials to be exchanged for an impersonated service account token.

I have:

  • Read and followed Crossplane's contribution process.
  • Run make reviewable test to ensure this PR is ready for review.

How has this code been tested

This code has been built, published to a private repo, and tested with Crossplane v1.20 in our GCP environment. As we don't see the way to test google auth in local environment.

For reference, the built image has been pushed to Docker Hub: https://hub.docker.com/r/kostyaplis/provider-kubernetes/tags

Please let us know if the logic introduced aligns with the provider's design principles, so this feature has the potential to be officially released.
If not, we would appreciate any guidance on whether the same authentication flow can be achieved using existing tools. Thank you in advance!

@kostyaplis
Copy link
Author

kostyaplis commented Aug 13, 2025

@turkenh @morningspace @lsviben @phisco @sergenyalcin @turkenf
Hello maintainers!

Any feedback on this PR is highly appreciated. Thanks

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.

1 participant