-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
GKE workload Identity #13081
Comments
My solution was to use fleet Workload Identity These links gave me glimpse to create a little PoC with a working workload identity |
Thanks @Santhin - The links you've provided (well at least this one, and this one ) are still using the Can you share any modifications you needed to make to get Airbyte to work with workload ID over a SA key? I am pretty familiar with K8's Workload Identity to GCP, we have a few deployments using them, but I'm unsure if Airbyte will work with it, as it seem to be expecting the key file. Thoughts? |
Exactly this was the wall for me on how to use workload identity using Firstly u need to create sa:
I tested with a different name and Now we need to create json file with impersonated credentials
With this json file we need to create kubernetes secret in my example it was something like this:
And now we gonna create ksa where we anotate our sa to ksa (ksa - kubernetes service account) Pls check this flag
In my values for helm charts
And here is the example of mounted files: @userbradley If you have more questions about this implementation feel free to ask I will try to create some simple example with a public repo with this because I've seen tons of threads about this. Additional notes: I didn't test this with gcp connector, for example, bigquery. If we can use the same method for using impersonated json file rather than private key from service account It would be huge :D. |
@Santhin thanks for the comment, I'll try make sometime to look in to it. Thought I'd just reply so you don't think I've ignored it - the team and I greatly appreciate your input and help! |
With this solution are some drawbacks or some additional goods it depends how you gonna look on this. Using fleet workload identity which gonna mount GOOGLE_APPLICATION_CREDENTIALS to worker pod in case of trying to create connection / destination using bigquery you gonna encounter weird error while uploading credentials json In first time I was confused why there is type I connected the dots and the connector for bigquery is trying to use my GOOGLE_APPLICATION_CREDENTIALS from worker. Doing small digging I found @userbradley here link to issue https://discuss.airbyte.io/t/airbyte-using-fleet-workload-identity-overwrites-google-application-credentials-inside-connector/2277 |
i need work airbyte with Workload identity, please add feature |
@Santhin What IDENTITY_PROVIDER should be for a GKE cluster? Couldn't find in the links. |
@yuriolive To retrieve values you can use |
The command doesn't return any membership. Are you using GKE too? You have to enable Anthos? Anthos has some cost involved so I would avoid if I could. |
Hi Any update on this ? I believe the change should be simple. I am new to this but it looks like i am passing gcp.json as
instead of GCP service account private keys. I am getting this error from worker pods when deployed via helm charts.
Which shows that IdentityPoolCredentials cannot be cast to class ServiceAccountCredentials. On looking into this more: i found that you are using
From the repo https://github.com/airbytehq/airbyte-platform/tree/main, it looks like you are using GoogleCredentials in test code you are using com.google.auth.oauth2.ServiceAccountCredentials . |
@sandeshhegde1 can you pls format your comment a little better? |
@userbradley updated. Sorry are you part of airbyte team ? |
No I am the original poster of this issue |
Tell us about the problem you're trying to solve
I am trying to setup Airbyte in a secure manner on a GKE cluster running on Google cloud.
A it stands, you need to create a service account and keys, then
base64
encode these values and store them as a secret in the Cluster.Describe the solution you’d like
Ideally I would like to use workload Identity, where we specify a service account that Airbyte uses on the cluster, which then impersonates and comes out the cluster as a GCP service account.
Describe the alternative you’ve considered or used
Simply not using the logging as it goes against our organizational policies of creating and exporting service account keys
Additional context
No
Are you willing to submit a PR?
Yes! I'm not 100% sure where I can help, perhaps with the KB writing!
Discourse post
https://discuss.airbyte.io/t/airbyte-using-fleet-workload-identity-overwrites-google-application-credentials-inside-connector/2277/1
The text was updated successfully, but these errors were encountered: