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

[GCP] pipelines supports workload identity #1691

Closed
jlewi opened this issue Jul 26, 2019 · 19 comments
Closed

[GCP] pipelines supports workload identity #1691

jlewi opened this issue Jul 26, 2019 · 19 comments

Comments

@jlewi
Copy link
Contributor

jlewi commented Jul 26, 2019

We would like to support using workload identity on GCP.

See kubeflow/kubeflow#3638

Opening this bug to track adding support for workload identity with KFP

A couple questions

  • Which namespaces will KFP pipelines running in? Are users still running in the "kubeflow" namespace or can pipelines run in other namespaces e.g. "kf-${USER}"

  • Does KFP support specifying which K8s service account is used by Argo pods?

    • The K8s service account will determine which GCP service account is used.
    • Current pattern in Kubeflow is that the profile resource will create a namespace with a default-editor K8s service account which would be bound to an appropriate GCP service account
    • So pipelines might be able to use that KSA (K8s Service account by default.)

/cc @jessiezcc
/cc @IronPan

@jessiezcc
Copy link
Contributor

Pipeline namespace is configurable, #304 tracked the ask and this PR addressed it.
As for service account, pipeline runs under user-gcp-sa which reflects the default active service account based on #374. @IronPan can confirm.

@jlewi
Copy link
Contributor Author

jlewi commented Sep 10, 2019

@IronPan @jessiezcc Does Kubeflow pipelines plan to support workload identity?

Here are the docs for workload identity.

With workload identity Kubernetes Service Accounts (KSA) can be bound to GCP Service Accounts (GSA).

So with workload identity pipeline users would probably want the ability to specify what service account the pods in the pipeline use as that would determine what GSA the pod uses.

@gaoning777
Copy link
Contributor

Yes. We will support the workload identity within the multi-user efforts in the Q4 such that users are authenticated to use GCP resources.

@Bobgy
Copy link
Contributor

Bobgy commented Nov 1, 2019

Note, one work item:

@IronPan
Copy link
Member

IronPan commented Nov 14, 2019

+1 we are planning on migrating the full stack to WI. Thanks Jeremy.

@IronPan
Copy link
Member

IronPan commented Nov 14, 2019

We also need clean documentations how to use WI when authoring the pipeline component, after WI is completed.

@Bobgy
Copy link
Contributor

Bobgy commented Dec 26, 2019

Work items for standalone deployment:

@Bobgy
Copy link
Contributor

Bobgy commented Dec 26, 2019

Work items for kubeflow deployment:

@Bobgy
Copy link
Contributor

Bobgy commented Jan 9, 2020

Work items blocking multi user support and hosted are done. Changed to p1 priority.

@jlewi
Copy link
Contributor Author

jlewi commented Feb 25, 2020

@Bobgy is it possible for a user to set the KSA when using TFX?

/cc @ucdmkt

@numerology
Copy link

@Bobgy is it possible for a user to set the KSA when using TFX?

/cc @ucdmkt

@jlewi
If you're talking about using KubeflowDagRunner, currently it's not supported, but I think it's definitely doable.

Is there any use case/feature depending on this? Thanks!

@Bobgy
Copy link
Contributor

Bobgy commented Mar 23, 2020

Work Items for GCP hosted deployment:

@jlewi
Copy link
Contributor Author

jlewi commented Mar 23, 2020

@numerology I think for TFX to work with workload identity TFX (KubeflowDagRunner) will need to support setting the Kubernetes Service Account (KSA) that steps in the pipeline use. The KSA will control which Google Service Account is used by that step. So I think it will be important for that to be supported. Do you want to file a separate issue for that?

@numerology
Copy link

@jlewi
Sounds good. However it depends on the ability of specifying the KSA in use through KFP SDK, which is currently missing. @Bobgy can correct me if I'm wrong, I think it's the planned as a "phase 3" work.

@Bobgy
Copy link
Contributor

Bobgy commented Mar 25, 2020

@numerology Yes, that's right.
But in phase 2, we'd support choosing KSA in KFP API at pipeline level. @jlewi will that be enough for your use case?

@jlewi
Copy link
Contributor Author

jlewi commented Mar 31, 2020

@Bobgy I think setting a per pipeline KSA is fine.

@Ark-kun
Copy link
Contributor

Ark-kun commented Jun 30, 2020

However it depends on the ability of specifying the KSA in use through KFP SDK, which is currently missing.

Can we set that on cluster-level instead (e.g. using a configmap)? I'd prefer not to have any account-specific information in the pipeline file.

@Bobgy
Copy link
Contributor

Bobgy commented Jun 30, 2020

Choosing a KSA when running a pipeline is suppported now.

@Bobgy Bobgy closed this as completed Jun 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants