You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If not possible, then, based on the commands.verbs and commands.resource create a dedicated:
Role in all namespaces.include (take care of namespaces.exclude)
ClusterRole if namespace.include: ["*"] and empty namespace.exclude
[breaking change] Or simply use the native K8s rbac where the user can attach a given SA to a given kubectl executor. Instead of defining all this verbs and commands.
Execute kubectl command with a user instead of doing the validation logic in BotKube.
The text was updated successfully, but these errors were encountered:
Overview
Currently, the
kubectl
executors is built-in. After #650 we need to create an externalkubectl
plugin.Lessons learned
Based on the current implementation, we can see such problems:
User facing problems:
kubectl wait -h
doesn't work in BotKubewait --for=condition=Ready pod/foo
kubectl
is supportedkubectl
verb is specified, we gotcommand not supported
. It would be nice to get more verbose information. For example:the server doesn't have a resource type "certs"
you are not authorized to work with "pods"
unknown command "ges" for "kubectl"
kubectl
executors are disabled, you always getcommand nod supported
instead of sth likethe kubectl is not configured to work in this channel
commands
andnamespaces
.Developer facing problems:
-A
we returned all resources even if not authorized.kubectl
parsing commandget po/podname-123
Ideas
[breaking change] Explicitly say the
@Botkube kubectl get po
instead of@Botkube get po
kubectl
->kc
->k
etc.Security:
commands.verbs
andcommands.resource
create a dedicated:namespaces.include
(take care ofnamespaces.exclude
)namespace.include: ["*"]
and emptynamespace.exclude
rbac
where the user can attach a given SA to a givenkubectl
executor. Instead of defining all thisverbs
andcommands
.Execute
kubectl
command with a user instead of doing the validation logic in BotKube.The text was updated successfully, but these errors were encountered: