-
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
quick start fails out of the box due to RBAC error #12391
Comments
I failed to mention that adding |
Would you like to submit a PR to help improve the docs? |
Would be glad to. I'm just not sure if that's what the maintainers want from the quick start. If it is then I'll happily update the docs and include a reference to the workflow RBAC for further reading and make a note that when a service account isn't specified then the default account is used which often doesn't have sufficient permissions. |
Looks like the quick start and walk-through guides all use default service account which does not have the permission. We can probably just give default service-account enough permission https://github.com/argoproj/argo-workflows/tree/76f4d1f9ca53b8ac48965e12c15454e544936c49/manifests/quick-start/base |
The
I think the problem is that the Quick Start docs are referencing |
@cardoe would you like to submit a PR to modify the docs to reference |
Yep will do. |
The quick start guide used the regular install.yaml for installation which does not configure the default user to be a valid service account to execute a workflow. This causes any example executions to fail. However the quick-start-minimal.yaml installation does configure this and is clearly suited for this doc so switch to that. fixes argoproj#12391 Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
The quick start guide used the regular install.yaml for installation which does not configure the default user to be a valid service account to execute a workflow. This causes any example executions to fail. However the quick-start-minimal.yaml installation does configure this and is clearly suited for this doc so switch to that. fixes argoproj#12391 Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
…proj#12391 (argoproj#12445) Signed-off-by: Doug Goldstein <cardoe@cardoe.com> Signed-off-by: Raymond Chow <rchow@atlassian.com>
…proj#12391 (argoproj#12445) Signed-off-by: Doug Goldstein <cardoe@cardoe.com> Signed-off-by: Raymond Chow <rchow@atlassian.com>
I found this issue after stumbling upon the same problem across our workflows when upgrading from
|
Yes, this is specific to the quick start, which explicitly states it should not be used in production. |
Yes, I see that the quick start page links to the install page:
☝️ refers to the release pages which then tells users to run: kubectl create namespace argo
kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v3.5.4/install.yaml In any case, perhaps it's user / reader error on my part 🤷♂️ . Given |
This wasn't listed as a regression, is there a regression in the manifests that you noticed for v3.5.2 vs an older version? |
Ah, yes, sorry, I wasn't clear about that 😬 . So, for better or worse, we have been using the release doc steps to deploy/update - args:
- server
env: []
- image: quay.io/argoproj/argocli:v3.5.0
+ image: quay.io/argoproj/argocli:v3.5.4
name: argo-server
ports:
- containerPort: 2746
@@ -1323,7 +1323,7 @@
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- image: quay.io/argoproj/workflow-controller:v3.5.0
+ image: quay.io/argoproj/workflow-controller:v3.5.4
livenessProbe:
failureThreshold: 3
httpGet: That's why we were so surprised to hit the problem. For now we've downgraded to the Update: My comment about |
So this error happens from the Workflow Pod's Executor, not the Controller. You'll get that error when your Workflow does not have proper RBAC (
So I don't think this is related to the |
Thanks, @agilgur5! I will look more into the Workflow RBAC to see what changes might be needed for our workflows to work with Just to help clarify my understanding, is the reason why we're seeing existing workflows work when downgrading just the version tag to $ minikube start
$ kubectl create namespace argo
$ kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v3.5.1/install.yaml
$ argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml Output:
But the following will fail (as will versions $ minikube start
$ kubectl create namespace argo
$ kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v3.5.4/install.yaml
$ argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml Output:
|
👀 That's an interesting reproduction. I'd need to look through the Executor diffs for 3.5.2 to see why that might happen. From a real quick glance, this might be from #11947 -- these change to |
I only skimmed this, so im not sure if I'm missing something, but have you configured RBAC according to this? I can take a better look at this tomorrow. |
I linked that above -- but apparently it wasn't necessary for simple steps like From my own memory, I wanna say that steps with no inputs or outputs previously worked without
Take your time! |
@agilgur5 here's my take.
if woc.wf.Labels[common.LabelKeyCompleted] == "true" { // abort now, we do not want to perform any more processing on a complete workflow because we could corrupt it Before my PR, if the workflow completed quick enough, reconciliation wouldn't have a chance to run and therefore you would avoid the RBAC issue. This is closely related to #11947 The quickstart docs should probably mention the need for workflowtaskresult RBAC per https://argo-workflows.readthedocs.io/en/latest/workflow-rbac/ |
Thought that could be the case per above, thanks for confirming Garett!
EDIT: wait a minute, isn't that logic in the Controller? The necessary RBAC is for the Workflow/Executor, not the Controller, which has the proper RBAC in any officially supported production install (whereas Workflow RBAC is up to the user to configure). Or am I missing something, like does the Controller reconciliation cause the Executor to respond in some way?
The PR that closed this issue, #12445 fixed the quickstart docs to actually use the But the Workflow RBAC page should be linked in the production installation page where it is apparently missing. |
Thanks for the context! Thought it might be something like that. Re-wording, that would mean that previously, as That also explains why we got a few reports of this on the quick start, since previously the erroneously referenced |
That's right. |
@agilgur5 - Sure, I can spin up a doc PR. Thanks all for taking a look and helping to clarify the reason behind the behavioral change that we observed. 🎉 |
Pre-requisites
:latest
What happened/what did you expect to happen?
Able to run the quick start CLI with success.
My environment was a macOS M2 machine running Docker Desktop with kind. The steps are straight from https://argoproj.github.io/argo-workflows/quick-start/
At this point I ran:
And the output was:
Version
v3.5.2
Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
Logs from the workflow controller
Logs from in your workflow's wait container
The text was updated successfully, but these errors were encountered: