Hi all! Not sure if this is the best place to ask...
# ask-the-community
m
Hi all! Not sure if this is the best place to ask but: I vaguely remember there being a talk recently going a little deeper on Flyte OAuth integration. Was that talk recorded?
g
David gave a nice auth overview at a recent community meeting!

https://youtu.be/707xuuxYPwg?t=777

j
there is some exploratory work on IAP integration happening. @Fabio Grätz: cc a GCP reference implementation is also being planned.
m
Thanks Jeev. I would definitely be interested in hearing more about any learnings from that work exploring IAP integration.
y
let us know if you have any questions @Matthew Corley
f
Hey :) we now have a GKE-based deployment with GCE ingress (not nginx), gcp managed certificates, and identity aware proxy working in a sandbox. It does require some small changes and I will make an RFC proposing them (either this week or after my holiday in 2 weeks). We would also contribute those things if the RFC is accepted.
y
yes please! are there any TF files you could open source as well?
m
One question I have (and sorry if this is in the docs, I did not find anything when searching): assuming I have oauth fully configured, what can flyteadmin do with this identity information? E.g., can you restrict the ability to view certain projects based on identity? Or, more interestingly to me, is it possible to configure flyteadmin so that user identity is recorded (e.g., using existing k8s label support) on entities, like workflow executions, created by that identity?
d
Hi @Matthew Corley
can you restrict the ability to view certain projects based on identity?
This is more on the RBAC side, not currently supported in OSS Flyte but in the managed version
is it possible to configure flyteadmin so that user identity is recorded (e.g., using existing k8s label support) on entities, like workflow executions, created by that identity?
Not sure of this one. cc @Yee
y
i believe it should, it should take some part of the token and write it into the principal field.
the middleware there is also extensible i believe if you want to add your own code.
m
any pointers to how to extend that middleware?
y
unf. not, that bit is not well documented. but maybe follow this hook and trace through how it’s used?
m
For context: Our goal is, after wiring up auth, to gain better visibility into the principals responsible for different workflow executions using k8s labels. Trying to find the best way to wire all of that up, since it involves this auth layer but also some specific action by the k8s executor (propagating principal information to a label). All of this is to say, I wonder if the auth middleware is sufficient or if we'd also need to extend flyteadmin elsewhere.
y
will need to extend flyte additionally.
there was a ticket for this that i’m struggling to find.
h
Anyway @Fabio Grätz you could share how you got grpc service to work? I.e. expose it on GCP gke for flytecli endpoint to hit it successfully?
f
Hey Haytham, is your goal to expose the grpc endpoint with auth through any ingress or are your security guys requiring you to explicitly use GCP identity aware proxy? If there is no requirement to use IAP (which requires the GCE ingress class), I would recommend you use nginx ingress with cert manager. GCE ingress with IAP is definitely more involved to get to work. Some companies require IAP though. I’ll be back from my holiday next week and will start to upstream the stuff we did to make IAP work. If you don’t have a requirement to use IAP, this doesn’t affect you though, you can use the normal recommended nginx way.
Does your ingress have this annotations from the flyte gcp helm values file?
<http://kubernetes.io/ingress.class|kubernetes.io/ingress.class>: nginx
And do you set this in your helm values?
Copy code
separateGrpcIngress: true
    # --- Extra Ingress annotations applied only to the GRPC ingress. Only makes sense if `separateGrpcIngress` is enabled.
    separateGrpcIngressAnnotations:
      <http://nginx.ingress.kubernetes.io/backend-protocol|nginx.ingress.kubernetes.io/backend-protocol>: "GRPC"
Otherwise the nginx ingress will not work with grpc services
h
@Drew OConnor