-
Notifications
You must be signed in to change notification settings - Fork 885
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
[OLM install method] [Trivial fix] Verb "list" for "(mutating|validating)webhookconfigurations" resources in API group "admissionregistration.k8s.io" missing in clusterPermissions: section of argocd-operator.<tag>.clusterserviceversion.yaml CSV file? #1688
Comments
Yet, content of the promised
|
Thanks @iankko for raising this issue. It was very informative to read through the OLM issue which you linked. I like the idea of least privileges. However, I believe My understanding is that the I believe the correct place to add these webhook permissions is in apiVersion: {{ .Values.rbacApiVersion }}/v1
kind: ClusterRole
metadata:
name: system:controller:operator-lifecycle-manager
rules:
# Basic rules for olm-operator & catalog-operator pods
.......
.......
.......
# Rules for webhook
- apiGroups:
- "admissionregistration.k8s.io"
resources:
- "mutatingwebhookconfigurations"
- "validatingwebhookconfigurations"
verbs:
- list
# Rules for argocd-operator CSV
{{ include "argocd-operator.csv.clusterpermissions" . }}
--- Let me know your thoughts. Happy to discuss further! 😄 |
Describe the bug
Hello, firstly, thank you for the great operator!
Secondly, given the default OLM cluster role is overly strong, leading to associated security concern, in order to install the
argocd-operator
CSV (and thus subsequently the operator itself), we are parsing theclusterPermissions:
section, listed in particular version of the ArgoCD operator CSV (since usingv0.13.0
ATM, here's direct link to ArgoCD operator CSV of that version):to determine the minimal set of K8s
API groups
,resources
, and associatedverbs
, that need to be present in the OLMClusterRole
the ArgoCD operator to install correctly. This works pretty well (all checked dependants requirements are reported asSatisfied
):But except a single failure of ArgoCD operator failing to install the necessary webhooks correctly.
More info from
$ kubectl -n <namespace> describe csv/argocd-operator.v0.13.0
Status
section (the actual namespace in SA below was intentionally obfuscated with instead):The same error message is then reported couple of times in the ArgoCD operator CSV status.
Clearly, this can be fixed by adding the following rule* into the ArgoCD operator CSV
clusterPermissions:
sections yet (AKA patch is trivial):to the underlying OLM
ClusterRole
.Therefore checking, should the clusterPermissions: section of ArgoCD operator CSV (e.g. v.0.13.0), contain also
list
ing ofvalidatingwebhookconfigurations
within the required cluster permissions?To Reproduce
Steps to reproduce the behavior:
Install OLM, replacing the default service account ClusterRole
system:controller:operator-lifecycle-manager
with the form of it, as follows:where
argocd-operator.csv.clusterpermissions
is taken from upstream CSV version (for clarity it's also inlined in its full form in next comment):after dropping the leading eight space characters.
Expected behavior
ArgoCD operator CSV reports
Succeeded
, e.g.:Current behavior
Describe ArgoCD operator CSV instead reports
InstallReady
due failing tolist
validatingwebhookconfigurations
andmutatingwebhookconfigurations
from"admissionregistration.k8s.io"
API group.The text was updated successfully, but these errors were encountered: