-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
CLI ignores TLS client certificate with --argo-http1
and --argo-server
#13437
Comments
--argo-http1
and --argo-server
--argo-http1
and --argo-server
--argo-http1
and --argo-server
EDIT: I screwed this up, see below |
@agilgur5 Thanks for your response. The issue here is, that we have a reverse proxy in front of the argo server. I don't want argo to use my client cert, I need to authenticate against the reverse proxy in order to reach the argo server. And somehow, with those args I cannot get through. |
Oh. I totally missed the proxy part of your issue, sorry about that and thanks for elaborating. And you also clearly have a bearer token now that I read your cURL command more carefully Also I misremembered what that flag is for, it's a TLS client cert, not a k8s one. Sorry I was just working with k8s auth and must've assumed that's what it was. I dropped the bag on this one, sorry! Let me reopen this then for investigation. There might be a reason it's ignored or it might just be an oversight or was only implemented for one mode. |
--argo-http1
and --argo-server
--argo-http1
and --argo-server
I took a quick look since the CLI is pretty small. It looks like my initial thought process was partly correct actually, that flag is inherited from The CLI doesn't use that flag itself and just passes it through to So I guess this would be more of a feature request to reuse that flag in server mode as well. In other words to pass that flag to the gRPC/HTTP client as well |
Thanks for the investigation! I will create a feature request. |
We can just re-use this issue as a feature request. It's somewhere in between a bug and a feature as I can understand why you would be confused that the flag doesn't always work since it doesn't mention it's used only for k8s mode. IIRC a lot of CLIs do this exact thing, which is confusing too to be fair. Argo's is maybe a bit more confusing as it has multiple modes (the others I can remember are k8s only, so even if the inheritance isn't mentioned, it's at least still used the same). |
Pre-requisites
:latest
image tag (i.e.quay.io/argoproj/workflow-controller:latest
) and can confirm the issue still exists on:latest
. If not, I have explained why, in detail, in my description below.What happened? What did you expect to happen?
We have a corporate proxy that requires client certificate authentication to access services.
Therefore, I specify
--client-certificate
and--client-key
This does work:
argo --server https://kubernetes-endpoint -n argo --token='XXX' --client-certificate ~/.secrets/client.pem --client-key ~/.secrets/key.pem list
This does not work:
argo --argo-http1 --client-certificate ~/.secrets/client.pem --client-key ~/.secrets/key.pem --loglevel DEBUG --argo-server argo-server-instance:443 -n argo --token=XXX list
Output:
Whereas when I copy the curl command from the output, fill in the token and add the certs, it works again:
curl --cert ~/.secrets/client.pem --key ~/.secrets/key.pem -X GET -H 'Authorization: Bearer XXX' -d '' 'https://argo-server-instance:443/api/v1/workflows/argo?fields=metadata%2Citems.metadata%2Citems.spec%2Citems.status.phase%2Citems.status.message%2Citems.status.finishedAt%2Citems.status.startedAt%2Citems.status.estimatedDuration%2Citems.status.progress'
I suspect that the client certs are ignored when using
--argo-http1
and--argo-server
.Version(s)
v3.5.10
Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
Has nothing to do with workflows
Logs from the workflow controller
Logs from in your workflow's wait container
The text was updated successfully, but these errors were encountered: