-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Use gcp_auth
for GCP authentication
#5939
Use gcp_auth
for GCP authentication
#5939
Conversation
Sorry for the delay. I will provide more context and questions in the next few days. |
You mention in your PR description that you think the existing auth implementation could be replaced by |
Hi, I would estimate it to several days / a week. A day to understand what |
Hey @Corwinpro! Really appreciate your contribution here.
If we're pulling in the From a cursory glance at the |
Hi @groszewn, Thank you! I noticed that apparently |
@Corwinpro Rustboard does not support Windows so that shouldn't be an issue. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really appreciate the work done on this already!
Left a few notes. Additionally, ensure you're following steps 5 and on from Adding or updating third-party dependencies to ensure the third_party
folder is updated as well.
Hey @Corwinpro! Thanks again for working with us through this. We do believe the Since usage of gcloud credentials is still covered by the final auth path in
|
Thank you very much @groszewn , I really appreciate it. I pushed the change to add a comment about the regression. With regards to the
I have not worked with this build system before (and Thank you! |
gcp_auth
for GCP authentication
Hey @Corwinpro, apologies for the delay. Thanks for the updates! Yes, the number of files for |
I've opened #6089 to deal with the current data server build failures in the CI workflow that are showing up. |
You'll want to pull in the changes from #6089 to try and get your CI build passing now that it's merged. |
Should this be updated to fix CI? tensorboard/.github/workflows/ci.yml Line 267 in 8828a59
|
Sorry about that, created #6091 to resolve that. |
You can go ahead and pull the latest changes into your PR branch again, the rust version for CI lint has been updated. |
Sorry for the churn here, go/tbpr/6093 updates to use the latest |
It looks like this is going to require a rebase. |
It is very confusing but I get an error from the current
(and more similar to that). Same on this branch. |
Also, I think we need to update this as well: tensorboard/third_party/rust.bzl Line 24 in 5c68d4b
|
@Corwinpro thanks for catching that, I've created #6106 to update I'm not seeing any issues on my end when running |
Thanks, I think it might be a problem on my side. Do you think there is more that we need to address in this PR? |
@Corwinpro No, I think this looks great! Really appreciate you working with us to land this PR, thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
## Motivation for features / changes See tensorflow#5934 At the moment, there are 2 types of `Credentials`: - `Anonymous` (default), - `RefreshToken` (effectively, loaded from a file with credentials). In GKE service managed account, none of those would work if we want to access non-public data. Accessing public data works via the `Anonymous` access. We cannot use file-based credentials management for security reasons. This strongly limits the usage of the `tensorboard --load-fast=true` application on GKE / k8s deployed instances. Enabling the `rustboard` backend to be compatible with GKE service managed accounts will positively affect the adoption and operations of the `tensorboard` tool. ## Technical description of changes In this PR, the existing code for GCP authentication (via `Credentials`) is replaced with `gcp_auth`. This requires a new dependency: [`gcp_auth`](https://docs.rs/gcp_auth/0.7.3/gcp_auth/). That cargo manages pretty much everything related to GCP authentication ## Screenshots of UI changes None ## Detailed steps to verify changes work correctly (as executed by you) We built the `rustboard` from the last commit. We replaced the existing executable for `rustboard` that comes as part of the `tensorboard` package with the custom build. We executed the `tensorboard` command from the GKE machine and confirmed that the access is granted as expected (service account authentication was successful). ## Alternate designs / implementations considered Happy to hear about that.
## Motivation for features / changes See tensorflow#5934 At the moment, there are 2 types of `Credentials`: - `Anonymous` (default), - `RefreshToken` (effectively, loaded from a file with credentials). In GKE service managed account, none of those would work if we want to access non-public data. Accessing public data works via the `Anonymous` access. We cannot use file-based credentials management for security reasons. This strongly limits the usage of the `tensorboard --load-fast=true` application on GKE / k8s deployed instances. Enabling the `rustboard` backend to be compatible with GKE service managed accounts will positively affect the adoption and operations of the `tensorboard` tool. ## Technical description of changes In this PR, the existing code for GCP authentication (via `Credentials`) is replaced with `gcp_auth`. This requires a new dependency: [`gcp_auth`](https://docs.rs/gcp_auth/0.7.3/gcp_auth/). That cargo manages pretty much everything related to GCP authentication ## Screenshots of UI changes None ## Detailed steps to verify changes work correctly (as executed by you) We built the `rustboard` from the last commit. We replaced the existing executable for `rustboard` that comes as part of the `tensorboard` package with the custom build. We executed the `tensorboard` command from the GKE machine and confirmed that the access is granted as expected (service account authentication was successful). ## Alternate designs / implementations considered Happy to hear about that.
## Motivation for features / changes See tensorflow#5934 At the moment, there are 2 types of `Credentials`: - `Anonymous` (default), - `RefreshToken` (effectively, loaded from a file with credentials). In GKE service managed account, none of those would work if we want to access non-public data. Accessing public data works via the `Anonymous` access. We cannot use file-based credentials management for security reasons. This strongly limits the usage of the `tensorboard --load-fast=true` application on GKE / k8s deployed instances. Enabling the `rustboard` backend to be compatible with GKE service managed accounts will positively affect the adoption and operations of the `tensorboard` tool. ## Technical description of changes In this PR, the existing code for GCP authentication (via `Credentials`) is replaced with `gcp_auth`. This requires a new dependency: [`gcp_auth`](https://docs.rs/gcp_auth/0.7.3/gcp_auth/). That cargo manages pretty much everything related to GCP authentication ## Screenshots of UI changes None ## Detailed steps to verify changes work correctly (as executed by you) We built the `rustboard` from the last commit. We replaced the existing executable for `rustboard` that comes as part of the `tensorboard` package with the custom build. We executed the `tensorboard` command from the GKE machine and confirmed that the access is granted as expected (service account authentication was successful). ## Alternate designs / implementations considered Happy to hear about that.
Motivation for features / changes
See #5934
At the moment, there are 2 types of
Credentials
:Anonymous
(default),RefreshToken
(effectively, loaded from a file with credentials).In GKE service managed account, none of those would work if we want to access non-public data. Accessing public data works via the
Anonymous
access. We cannot use file-based credentials management for security reasons.This strongly limits the usage of the
tensorboard --load-fast=true
application on GKE / k8s deployed instances. Enabling therustboard
backend to be compatible with GKE service managed accounts will positively affect the adoption and operations of thetensorboard
tool.Technical description of changes
In this PR, the existing code for GCP authentication (via
Credentials
) is replaced withgcp_auth
. This requires a new dependency:gcp_auth
. That cargo manages pretty much everything related to GCP authenticationScreenshots of UI changes
None
Detailed steps to verify changes work correctly (as executed by you)
We built the
rustboard
from the last commit. We replaced the existing executable forrustboard
that comes as part of thetensorboard
package with the custom build. We executed thetensorboard
command from the GKE machine and confirmed that the access is granted as expected (service account authentication was successful).Alternate designs / implementations considered
Happy to hear about that.