Skip to main content
Version: 1.7

Helm chart parameters

Version: v1.7.0 AppVersion: v1.7.0

Controller for the Botkube Slack app which helps you monitor your Kubernetes cluster, debug deployments and run specific checks on resources in the cluster.

Homepage: https://botkube.io

Maintainers​

NameEmail
Botkube Dev Teamdev-team@botkube.io

Source Code​

Parameters​

KeyTypeDefaultDescription
image.registrystring"ghcr.io"Botkube container image registry.
image.repositorystring"kubeshop/botkube"Botkube container image repository.
image.pullPolicystring"IfNotPresent"Botkube container image pull policy.
image.tagstring"v1.7.0"Botkube container image tag. Default tag is appVersion from Chart.yaml.
podSecurityPolicyobject{"enabled":false}Configures Pod Security Policy to allow Botkube to run in restricted clusters. Ref doc.
securityContextobjectRuns as a Non-Privileged user.Configures security context to manage user Privileges in Pod. Ref doc.
containerSecurityContextobject{"allowPrivilegeEscalation":false,"privileged":false,"readOnlyRootFilesystem":true}Configures container security context. Ref doc.
rbacobject{"create":true,"groups":{"argocd":{"create":false,"rules":[{"apiGroups":[""],"resources":["configmaps"],"verbs":["get","update"]},{"apiGroups":["argoproj.io"],"resources":["applications"],"verbs":["get","patch"]}]},"botkube-plugins-default":{"create":true,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list"]}]},"flux-read-patch":{"create":false,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list","patch"]}]}},"rules":[],"serviceAccountMountPath":"/var/run/7e7fd2f5-b15d-4803-bc52-f54fba357e76/secrets/kubernetes.io/serviceaccount","staticGroupName":""}Role Based Access for Botkube Pod and plugins. Ref doc.
rbac.serviceAccountMountPathstring"/var/run/7e7fd2f5-b15d-4803-bc52-f54fba357e76/secrets/kubernetes.io/serviceaccount"It is used to specify a custom path for mounting a service account to the Botkube deployment. This is important because we run plugins within the same Pod, and we want to avoid potential bugs when plugins rely on the default in-cluster K8s client configuration. Instead, they should always use kubeconfig specified directly for a given plugin.
rbac.createbooltrueConfigure RBAC resources for Botkube and (deprecated) staticGroupName subject with rules. For creating RBAC resources related to plugin permissions, use the groups property.
rbac.ruleslist[]Deprecated. Use rbac.groups instead.
rbac.staticGroupNamestring""Deprecated. Use rbac.groups instead.
rbac.groupsobject{"argocd":{"create":false,"rules":[{"apiGroups":[""],"resources":["configmaps"],"verbs":["get","update"]},{"apiGroups":["argoproj.io"],"resources":["applications"],"verbs":["get","patch"]}]},"botkube-plugins-default":{"create":true,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list"]}]},"flux-read-patch":{"create":false,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list","patch"]}]}}Use this to create RBAC resources for specified group subjects.
rbac.groups.argocd.createboolfalseSet it to true when using ArgoCD source plugin.
rbac.groups.flux-read-patch.createboolfalseSet it to true when using Flux executor plugin to enable flux diff.
kubeconfig.enabledboolfalseIf true, enables overriding the Kubernetes auth.
kubeconfig.base64Configstring""A base64 encoded kubeconfig that will be stored in a Secret, mounted to the Pod, and specified in the KUBECONFIG environment variable.
kubeconfig.existingSecretstring""A Secret containing a kubeconfig to use.
actionsobjectSee the values.yaml file for full object.Map of actions. Action contains configuration for automation based on observed events. The property name under actions object is an alias for a given configuration. You can define multiple actions configuration with different names.
actions.describe-created-resource.enabledboolfalseIf true, enables the action.
actions.describe-created-resource.displayNamestring"Describe created resource"Action display name posted in the channels bound to the same source bindings.
actions.describe-created-resource.commandstringSee the values.yaml file for the command in the Go template form.Command to execute when the action is triggered. You can use Go template (https://pkg.go.dev/text/template) together with all helper functions defined by Slim-Sprig library (https://go-task.github.io/slim-sprig). You can use the {{ .Event }} variable, which contains the event object that triggered the action. See all available Kubernetes event properties on https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go.
actions.describe-created-resource.bindingsobject{"executors":["k8s-default-tools"],"sources":["k8s-create-events"]}Bindings for a given action.
actions.describe-created-resource.bindings.sourceslist["k8s-create-events"]Event sources that trigger a given action.
actions.describe-created-resource.bindings.executorslist["k8s-default-tools"]Executors configuration used to execute a configured command.
actions.show-logs-on-error.enabledboolfalseIf true, enables the action.
actions.show-logs-on-error.displayNamestring"Show logs on error"Action display name posted in the channels bound to the same source bindings.
actions.show-logs-on-error.commandstringSee the values.yaml file for the command in the Go template form.Command to execute when the action is triggered. You can use Go template (https://pkg.go.dev/text/template) together with all helper functions defined by Slim-Sprig library (https://go-task.github.io/slim-sprig). You can use the {{ .Event }} variable, which contains the event object that triggered the action. See all available Kubernetes event properties on https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go.
actions.show-logs-on-error.bindingsobject{"executors":["k8s-default-tools"],"sources":["k8s-err-with-logs-events"]}Bindings for a given action.
actions.show-logs-on-error.bindings.sourceslist["k8s-err-with-logs-events"]Event sources that trigger a given action.
actions.show-logs-on-error.bindings.executorslist["k8s-default-tools"]Executors configuration used to execute a configured command.
sourcesobjectSee the values.yaml file for full object.Map of sources. Source contains configuration for Kubernetes events and sending recommendations. The property name under sources object is an alias for a given configuration. You can define multiple sources configuration with different names. Key name is used as a binding reference.
sources.k8s-recommendation-events.botkube/kubernetesobjectSee the values.yaml file for full object.Describes Kubernetes source configuration.
executors.k8s-default-tools.botkube/kubectl.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
sources.k8s-recommendation-events.botkube/kubernetes.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
executors.k8s-default-tools.botkube/helm.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
sources.k8s-err-events.botkube/kubernetes.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
executors.ai.botkube/doctor.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
sources.k8s-create-events.botkube/kubernetes.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
sources.k8s-all-events.botkube/kubernetes.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
executors.bins-management.botkube/exec.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.context.rbacobject{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}RBAC configuration for this plugin.
sources.k8s-create-events.botkube/kubernetes.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
executors.k8s-default-tools.botkube/kubectl.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
executors.bins-management.botkube/exec.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
sources.k8s-all-events.botkube/kubernetes.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
executors.ai.botkube/doctor.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
executors.k8s-default-tools.botkube/helm.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
sources.k8s-err-events.botkube/kubernetes.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.context.rbac.group.typestring"Static"Static impersonation for a given username and groups.
sources.k8s-all-events.botkube/kubernetes.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
sources.k8s-err-events-with-ai-support.botkube/kubernetes.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
executors.k8s-default-tools.botkube/kubectl.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
executors.bins-management.botkube/exec.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
executors.ai.botkube/doctor.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
sources.k8s-err-events.botkube/kubernetes.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
sources.k8s-create-events.botkube/kubernetes.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
executors.k8s-default-tools.botkube/helm.context.rbac.group.prefixstring""Prefix that will be applied to .static.value[*].
executors.bins-management.botkube/exec.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
sources.k8s-all-events.botkube/kubernetes.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
executors.k8s-default-tools.botkube/helm.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
executors.ai.botkube/doctor.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
sources.k8s-err-events.botkube/kubernetes.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
executors.k8s-default-tools.botkube/kubectl.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
sources.k8s-create-events.botkube/kubernetes.context.rbac.group.static.valueslist["botkube-plugins-default"]Name of group.rbac.authorization.k8s.io the plugin will be bound to.
sources.k8s-recommendation-events.botkube/kubernetes.config.recommendationsobject{"ingress":{"backendServiceValid":true,"tlsSecretValid":true},"pod":{"labelsSet":true,"noLatestImageTag":true}}Describes configuration for various recommendation insights.
sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.podobject{"labelsSet":true,"noLatestImageTag":true}Recommendations for Pod Kubernetes resource.
sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod.noLatestImageTagbooltrueIf true, notifies about Pod containers that use latest tag for images.
sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod.labelsSetbooltrueIf true, notifies about Pod resources created without labels.
sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingressobject{"backendServiceValid":true,"tlsSecretValid":true}Recommendations for Ingress Kubernetes resource.
sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress.backendServiceValidbooltrueIf true, notifies about Ingress resources with invalid backend service reference.
sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress.tlsSecretValidbooltrueIf true, notifies about Ingress resources with invalid TLS secret reference.
sources.k8s-all-events.botkube/kubernetesobjectSee the values.yaml file for full object.Describes Kubernetes source configuration.
sources.k8s-all-events.botkube/kubernetes.config.filtersobjectSee the values.yaml file for full object.Filter settings for various sources.
sources.k8s-all-events.botkube/kubernetes.config.filters.objectAnnotationCheckerbooltrueIf true, enables support for botkube.io/disable resource annotation.
sources.k8s-all-events.botkube/kubernetes.config.filters.nodeEventsCheckerbooltrueIf true, filters out Node-related events that are not important.
sources.k8s-all-events.botkube/kubernetes.config.namespacesobject{"include":[".*"]}Describes namespaces for every Kubernetes resources you want to watch or exclude. These namespaces are applied to every resource specified in the resources list. However, every specified resource can override this by using its own namespaces object.
sources.k8s-create-events.botkube/kubernetes.config.namespaces.includelist[".*"]Include contains a list of allowed Namespaces. It can also contain regex expressions: - ".*" - to specify all Namespaces.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.config.namespaces.includelist[".*"]Include contains a list of allowed Namespaces. It can also contain regex expressions: - ".*" - to specify all Namespaces.
sources.k8s-all-events.botkube/kubernetes.config.namespaces.includelist[".*"]Include contains a list of allowed Namespaces. It can also contain regex expressions: - ".*" - to specify all Namespaces.
sources.k8s-err-with-logs-events.botkube/kubernetes.config.namespaces.includelist[".*"]Include contains a list of allowed Namespaces. It can also contain regex expressions: - ".*" - to specify all Namespaces.
sources.k8s-err-events.botkube/kubernetes.config.namespaces.includelist[".*"]Include contains a list of allowed Namespaces. It can also contain regex expressions: - ".*" - to specify all Namespaces.
sources.k8s-all-events.botkube/kubernetes.config.eventobject{"message":{"exclude":[],"include":[]},"reason":{"exclude":[],"include":[]},"types":["create","delete","error"]}Describes event constraints for Kubernetes resources. These constraints are applied for every resource specified in the resources list, unless they are overridden by the resource's own events object.
sources.k8s-all-events.botkube/kubernetes.config.event.typeslist["create","delete","error"]Lists all event types to be watched.
sources.k8s-all-events.botkube/kubernetes.config.event.reasonobject{"exclude":[],"include":[]}Optional list of exact values or regex patterns to filter events by event reason. Skipped, if both include/exclude lists are empty.
sources.k8s-all-events.botkube/kubernetes.config.event.reason.includelist[]Include contains a list of allowed values. It can also contain regex expressions.
sources.k8s-all-events.botkube/kubernetes.config.event.reason.excludelist[]Exclude contains a list of values to be ignored even if allowed by Include. It can also contain regex expressions. Exclude list is checked before the Include list.
sources.k8s-all-events.botkube/kubernetes.config.event.messageobject{"exclude":[],"include":[]}Optional list of exact values or regex patterns to filter event by event message. Skipped, if both include/exclude lists are empty. If a given event has multiple messages, it is considered a match if any of the messages match the constraints.
sources.k8s-all-events.botkube/kubernetes.config.event.message.includelist[]Include contains a list of allowed values. It can also contain regex expressions.
sources.k8s-all-events.botkube/kubernetes.config.event.message.excludelist[]Exclude contains a list of values to be ignored even if allowed by Include. It can also contain regex expressions. Exclude list is checked before the Include list.
sources.k8s-all-events.botkube/kubernetes.config.annotationsobject{}Filters Kubernetes resources to watch by annotations. Each resource needs to have all the specified annotations. Regex expressions are not supported.
sources.k8s-all-events.botkube/kubernetes.config.labelsobject{}Filters Kubernetes resources to watch by labels. Each resource needs to have all the specified labels. Regex expressions are not supported.
sources.k8s-all-events.botkube/kubernetes.config.resourceslistSee the values.yaml file for full object.Describes the Kubernetes resources to watch. Resources are identified by its type in {group}/{version}/{kind (plural)} format. Examples: apps/v1/deployments, v1/pods. Each resource can override the namespaces and event configuration by using dedicated event and namespaces field. Also, each resource can specify its own annotations, labels and name regex.
sources.k8s-err-events.botkube/kubernetesobjectSee the values.yaml file for full object.Describes Kubernetes source configuration.
sources.k8s-err-events.botkube/kubernetes.config.namespacesobject{"include":[".*"]}Describes namespaces for every Kubernetes resources you want to watch or exclude. These namespaces are applied to every resource specified in the resources list. However, every specified resource can override this by using its own namespaces object.
sources.k8s-err-events.botkube/kubernetes.config.eventobject{"types":["error"]}Describes event constraints for Kubernetes resources. These constraints are applied for every resource specified in the resources list, unless they are overridden by the resource's own events object.
sources.k8s-err-events.botkube/kubernetes.config.event.typeslist["error"]Lists all event types to be watched.
sources.k8s-err-events.botkube/kubernetes.config.resourceslistSee the values.yaml file for full object.Describes the Kubernetes resources you want to watch.
sources.k8s-err-with-logs-events.botkube/kubernetesobjectSee the values.yaml file for full object.Describes Kubernetes source configuration.
sources.k8s-err-with-logs-events.botkube/kubernetes.config.namespacesobject{"include":[".*"]}Describes namespaces for every Kubernetes resources you want to watch or exclude. These namespaces are applied to every resource specified in the resources list. However, every specified resource can override this by using its own namespaces object.
sources.k8s-err-with-logs-events.botkube/kubernetes.config.eventobject{"types":["error"]}Describes event constraints for Kubernetes resources. These constraints are applied for every resource specified in the resources list, unless they are overridden by the resource's own events object.
sources.k8s-err-with-logs-events.botkube/kubernetes.config.event.typeslist["error"]Lists all event types to be watched.
sources.k8s-err-with-logs-events.botkube/kubernetes.config.resourceslistSee the values.yaml file for full object.Describes the Kubernetes resources you want to watch.
sources.k8s-create-events.botkube/kubernetesobjectSee the values.yaml file for full object.Describes Kubernetes source configuration.
sources.k8s-create-events.botkube/kubernetes.config.namespacesobject{"include":[".*"]}Describes namespaces for every Kubernetes resources you want to watch or exclude. These namespaces are applied to every resource specified in the resources list. However, every specified resource can override this by using its own namespaces object.
sources.k8s-create-events.botkube/kubernetes.config.eventobject{"types":["create"]}Describes event constraints for Kubernetes resources. These constraints are applied for every resource specified in the resources list, unless they are overridden by the resource's own events object.
sources.k8s-create-events.botkube/kubernetes.config.event.typeslist["create"]Lists all event types to be watched.
sources.k8s-create-events.botkube/kubernetes.config.resourceslistSee the values.yaml file for full object.Describes the Kubernetes resources you want to watch.
sources.k8s-err-events-with-ai-support.botkube/kubernetesobjectSee the values.yaml file for full object.Describes Kubernetes source configuration.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.config.extraButtonslist`[{"button":{"commandTpl":"doctor --resource={{ .Kindlower }}/{{ .Name }} --namespace={{ .Namespace }} --error={{ .Reason }} --bk-cmd-header='AI assistance'","displayName":"Get Help"},"enabled":true,"trigger":{"type":["error"]}}]`Define extra buttons to be displayed beside notification message.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.config.namespacesobject{"include":[".*"]}Describes namespaces for every Kubernetes resources you want to watch or exclude. These namespaces are applied to every resource specified in the resources list. However, every specified resource can override this by using its own namespaces object.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.config.eventobject{"types":["error"]}Describes event constraints for Kubernetes resources. These constraints are applied for every resource specified in the resources list, unless they are overridden by the resource's own events object.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.config.event.typeslist["error"]Lists all event types to be watched.
sources.k8s-err-events-with-ai-support.botkube/kubernetes.config.resourceslistSee the values.yaml file for full object.Describes the Kubernetes resources you want to watch.
sources.prometheus.botkube/prometheus.enabledboolfalseIf true, enables prometheus source.
sources.prometheus.botkube/prometheus.config.urlstring"http://localhost:9090"Prometheus endpoint without api version and resource.
sources.prometheus.botkube/prometheus.config.ignoreOldAlertsbooltrueIf set as true, Prometheus source plugin will not send alerts that is created before plugin start time.
sources.prometheus.botkube/prometheus.config.alertStateslist["firing","pending","inactive"]Only the alerts that have state provided in this config will be sent as notification. https://pkg.go.dev/github.com/prometheus/prometheus/rules#AlertState
sources.prometheus.botkube/prometheus.config.logobject{"level":"info"}Logging configuration
sources.prometheus.botkube/prometheus.config.log.levelstring"info"Log level
sources.keptn.botkube/keptn.enabledboolfalseIf true, enables keptn source.
sources.keptn.botkube/keptn.config.urlstring"http://api-gateway-nginx.keptn.svc.cluster.local/api"Keptn API Gateway URL.
sources.keptn.botkube/keptn.config.tokenstring""Keptn API Token to access events through API Gateway.
sources.keptn.botkube/keptn.config.projectstring""Optional Keptn project.
sources.keptn.botkube/keptn.config.servicestring""Optional Keptn Service name under the project.
sources.keptn.botkube/keptn.config.logobject{"level":"info"}Logging configuration
sources.keptn.botkube/keptn.config.log.levelstring"info"Log level
sources.argocd.botkube/argocd.configobject{"argoCD":{"notificationsConfigMap":{"name":"argocd-notifications-cm","namespace":"argocd"},"uiBaseUrl":"http://localhost:8080"},"defaultSubscriptions":{"applications":[{"name":"guestbook","namespace":"argocd"}]}}Config contains configuration for ArgoCD source plugin. This section lists only basic options, and uses default triggers and templates which are based on ArgoCD Notification Catalog ones (https://github.com/argoproj/argo-cd/blob/master/notifications_catalog/install.yaml). Advanced customization (including triggers and templates) is described in the documentation.
sources.argocd.botkube/argocd.config.defaultSubscriptions.applicationslist[{"name":"guestbook","namespace":"argocd"}]Provide application name and namespace to subscribe to all events for a given application.
sources.argocd.botkube/argocd.config.argoCD.uiBaseUrlstring"http://localhost:8080"ArgoCD UI base URL. It is used for generating links in the incoming events.
sources.argocd.botkube/argocd.config.argoCD.notificationsConfigMapobject{"name":"argocd-notifications-cm","namespace":"argocd"}ArgoCD Notifications ConfigMap reference.
executorsobjectSee the values.yaml file for full object.Map of executors. Executor contains configuration for running kubectl commands. The property name under executors is an alias for a given configuration. You can define multiple executor configurations with different names. Key name is used as a binding reference.
executors.k8s-default-tools.botkube/helm.enabledboolfalseIf true, enables helm commands execution.
executors.k8s-default-tools.botkube/helm.config.helmDriverstring"secret"Allowed values are configmap, secret, memory.
executors.k8s-default-tools.botkube/helm.config.helmConfigDirstring"/tmp/helm/"Location for storing Helm configuration.
executors.k8s-default-tools.botkube/helm.config.helmCacheDirstring"/tmp/helm/.cache"Location for storing cached files. Must be under the Helm config directory.
executors.k8s-default-tools.botkube/kubectl.configobjectSee the values.yaml file for full object including optional properties related to interactive builder.Custom kubectl configuration.
executors.flux.botkube/flux.config.logobject{"level":"info"}Logging configuration
executors.flux.botkube/flux.config.log.levelstring"info"Log level
aliasesobjectSee the values.yaml file for full object.Custom aliases for given commands. The aliases are replaced with the underlying command before executing it. Aliases can replace a single word or multiple ones. For example, you can define a k alias for kubectl, or kgp for kubectl get pods.
existingCommunicationsSecretNamestring""Configures existing Secret with communication settings. It MUST be in the botkube Namespace. To reload Botkube once it changes, add label botkube.io/config-watch: "true".
communicationsobjectSee the values.yaml file for full object.Map of communication groups. Communication group contains settings for multiple communication platforms. The property name under communications object is an alias for a given configuration group. You can define multiple communication groups with different names.
communications.default-group.socketSlack.enabledboolfalseIf true, enables Slack bot.
communications.default-group.socketSlack.channelsobject{"default":{"bindings":{"executors":["k8s-default-tools","bins-management","ai","flux"],"sources":["k8s-err-events","k8s-recommendation-events","k8s-err-events-with-ai-support","argocd"]},"name":"SLACK_CHANNEL"}}Map of configured channels. The property name under channels object is an alias for a given configuration.
communications.default-group.socketSlack.channels.default.namestring"SLACK_CHANNEL"Slack channel name without '#' prefix where you have added Botkube and want to receive notifications in.
communications.default-group.socketSlack.channels.default.bindings.executorslist["k8s-default-tools","bins-management","ai","flux"]Executors configuration for a given channel.
communications.default-group.socketSlack.channels.default.bindings.sourceslist["k8s-err-events","k8s-recommendation-events","k8s-err-events-with-ai-support","argocd"]Notification sources configuration for a given channel.
communications.default-group.socketSlack.botTokenstring""Slack bot token for your own Slack app. Ref doc.
communications.default-group.socketSlack.appTokenstring""Slack app-level token for your own Slack app. Ref doc.
communications.default-group.mattermost.enabledboolfalseIf true, enables Mattermost bot.
communications.default-group.mattermost.botNamestring"Botkube"User in Mattermost which belongs the specified Personal Access token.
communications.default-group.mattermost.urlstring"MATTERMOST_SERVER_URL"The URL (including http/https schema) where Mattermost is running. e.g https://example.com:9243
communications.default-group.mattermost.tokenstring"MATTERMOST_TOKEN"Personal Access token generated by Botkube user.
communications.default-group.mattermost.teamstring"MATTERMOST_TEAM"The Mattermost Team name where Botkube is added.
communications.default-group.mattermost.channelsobject{"default":{"bindings":{"executors":["k8s-default-tools","bins-management","ai","flux"],"sources":["k8s-err-events","k8s-recommendation-events","k8s-err-events-with-ai-support","argocd"]},"name":"MATTERMOST_CHANNEL","notification":{"disabled":false}}}Map of configured channels. The property name under channels object is an alias for a given configuration.
communications.default-group.mattermost.channels.default.namestring"MATTERMOST_CHANNEL"The Mattermost channel name for receiving Botkube alerts. The Botkube user needs to be added to it.
communications.default-group.mattermost.channels.default.notification.disabledboolfalseIf true, the notifications are not sent to the channel. They can be enabled with @Botkube command anytime.
communications.default-group.mattermost.channels.default.bindings.executorslist["k8s-default-tools","bins-management","ai","flux"]Executors configuration for a given channel.
communications.default-group.mattermost.channels.default.bindings.sourceslist["k8s-err-events","k8s-recommendation-events","k8s-err-events-with-ai-support","argocd"]Notification sources configuration for a given channel.
communications.default-group.teams.enabledboolfalseIf true, enables MS Teams bot.
communications.default-group.teams.botNamestring"Botkube"The Bot name set while registering Bot to MS Teams.
communications.default-group.teams.appIDstring"APPLICATION_ID"The Botkube application ID generated while registering Bot to MS Teams.
communications.default-group.teams.appPasswordstring"APPLICATION_PASSWORD"The Botkube application password generated while registering Bot to MS Teams.
communications.default-group.teams.bindings.executorslist["k8s-default-tools","bins-management","ai","flux"]Executor bindings apply to all MS Teams channels where Botkube has access to.
communications.default-group.teams.bindings.sourceslist["k8s-err-events","k8s-recommendation-events","k8s-err-events-with-ai-support","argocd"]Source bindings apply to all channels which have notification turned on with @Botkube enable notifications command.
communications.default-group.teams.messagePathstring"/bots/teams"The path in endpoint URL provided while registering Botkube to MS Teams.
communications.default-group.teams.portint3978The Service port for bot endpoint on Botkube container.
communications.default-group.discord.enabledboolfalseIf true, enables Discord bot.
communications.default-group.discord.tokenstring"DISCORD_TOKEN"Botkube Bot Token.
communications.default-group.discord.botIDstring"DISCORD_BOT_ID"Botkube Application Client ID.
communications.default-group.discord.channelsobject{"default":{"bindings":{"executors":["k8s-default-tools","bins-management","ai","flux"],"sources":["k8s-err-events","k8s-recommendation-events","k8s-err-events-with-ai-support","argocd"]},"id":"DISCORD_CHANNEL_ID","notification":{"disabled":false}}}Map of configured channels. The property name under channels object is an alias for a given configuration.
communications.default-group.discord.channels.default.idstring"DISCORD_CHANNEL_ID"Discord channel ID for receiving Botkube alerts. The Botkube user needs to be added to it.
communications.default-group.discord.channels.default.notification.disabledboolfalseIf true, the notifications are not sent to the channel. They can be enabled with @Botkube command anytime.
communications.default-group.discord.channels.default.bindings.executorslist["k8s-default-tools","bins-management","ai","flux"]Executors configuration for a given channel.
communications.default-group.discord.channels.default.bindings.sourceslist["k8s-err-events","k8s-recommendation-events","k8s-err-events-with-ai-support","argocd"]Notification sources configuration for a given channel.
communications.default-group.elasticsearch.enabledboolfalseIf true, enables Elasticsearch.
communications.default-group.elasticsearch.awsSigning.enabledboolfalseIf true, enables awsSigning using IAM for Elasticsearch hosted on AWS. Make sure AWS environment variables are set. Ref doc.
communications.default-group.elasticsearch.awsSigning.awsRegionstring"us-east-1"AWS region where Elasticsearch is deployed.
communications.default-group.elasticsearch.awsSigning.roleArnstring""AWS IAM Role arn to assume for credentials, use this only if you don't want to use the EC2 instance role or not running on AWS instance.
communications.default-group.elasticsearch.serverstring"ELASTICSEARCH_ADDRESS"The server URL, e.g https://example.com:9243
communications.default-group.elasticsearch.usernamestring"ELASTICSEARCH_USERNAME"Basic Auth username.
communications.default-group.elasticsearch.passwordstring"ELASTICSEARCH_PASSWORD"Basic Auth password.
communications.default-group.elasticsearch.skipTLSVerifyboolfalseIf true, skips the verification of TLS certificate of the Elastic nodes. It's useful for clusters with self-signed certificates.
communications.default-group.elasticsearch.logLevelstring""Specify the log level for Elasticsearch client. Leave empty to disable logging.
communications.default-group.elasticsearch.indicesobject{"default":{"bindings":{"sources":["k8s-err-events","k8s-recommendation-events"]},"name":"botkube","replicas":0,"shards":1,"type":"botkube-event"}}Map of configured indices. The indices property name is an alias for a given configuration.
communications.default-group.elasticsearch.indices.default.namestring"botkube"Configures Elasticsearch index settings.
communications.default-group.elasticsearch.indices.default.bindings.sourceslist["k8s-err-events","k8s-recommendation-events"]Notification sources configuration for a given index.
communications.default-group.webhook.enabledboolfalseIf true, enables Webhook.
communications.default-group.webhook.urlstring"WEBHOOK_URL"The Webhook URL, e.g.: https://example.com:80
communications.default-group.webhook.bindings.sourceslist["k8s-err-events","k8s-recommendation-events"]Notification sources configuration for the webhook.
communications.default-group.slackobjectSee the values.yaml file for full object.Settings for deprecated Slack integration. DEPRECATED: Legacy Slack integration has been deprecated and removed from the Slack App Directory. Use socketSlack instead. Read more here: https://docs.botkube.io/installation/slack/
settings.clusterNamestring"not-configured"Cluster name to differentiate incoming messages.
settings.lifecycleServerobject{"enabled":true,"port":2113}Server configuration which exposes functionality related to the app lifecycle.
settings.healthPortint2114
settings.upgradeNotifierbooltrueIf true, notifies about new Botkube releases.
settings.log.levelstring"info"Sets one of the log levels. Allowed values: info, warn, debug, error, fatal, panic.
settings.log.disableColorsboolfalseIf true, disable ANSI colors in logging. Ignored when json formatter is used.
settings.log.formatterstring"json"Configures log format. Allowed values: text, json.
settings.systemConfigMapobject{"name":"botkube-system"}Botkube's system ConfigMap where internal data is stored.
settings.persistentConfigobject{"runtime":{"configMap":{"annotations":{},"name":"botkube-runtime-config"},"fileName":"_runtime_state.yaml"},"startup":{"configMap":{"annotations":{},"name":"botkube-startup-config"},"fileName":"_startup_state.yaml"}}Persistent config contains ConfigMap where persisted configuration is stored. The persistent configuration is evaluated from both chart upgrade and Botkube commands used in runtime.
ssl.enabledboolfalseIf true, specify cert path in config.ssl.cert property or K8s Secret in config.ssl.existingSecretName.
ssl.existingSecretNamestring""Using existing SSL Secret. It MUST be in botkube Namespace.
ssl.certstring""SSL Certificate file e.g certs/my-cert.crt.
serviceobject{"name":"metrics","port":2112,"targetPort":2112}Configures Service settings for ServiceMonitor CR.
ingressobject{"annotations":{"kubernetes.io/ingress.class":"nginx"},"create":false,"host":"HOST","tls":{"enabled":false,"secretName":""}}Configures Ingress settings that exposes MS Teams endpoint. Ref doc.
serviceMonitorobject{"enabled":false,"interval":"10s","labels":{},"path":"/metrics","port":"metrics"}Configures ServiceMonitor settings. Ref doc.
deployment.annotationsobject{}Extra annotations to pass to the Botkube Deployment.
deployment.livenessProbeobject{"failureThreshold":35,"initialDelaySeconds":1,"periodSeconds":2,"successThreshold":1,"timeoutSeconds":1}Liveness probe.
deployment.livenessProbe.initialDelaySecondsint1The liveness probe initial delay seconds.
deployment.livenessProbe.periodSecondsint2The liveness probe period seconds.
deployment.livenessProbe.timeoutSecondsint1The liveness probe timeout seconds.
deployment.livenessProbe.failureThresholdint35The liveness probe failure threshold.
deployment.livenessProbe.successThresholdint1The liveness probe success threshold.
deployment.readinessProbeobject{"failureThreshold":35,"initialDelaySeconds":1,"periodSeconds":2,"successThreshold":1,"timeoutSeconds":1}Readiness probe.
deployment.readinessProbe.initialDelaySecondsint1The readiness probe initial delay seconds.
deployment.readinessProbe.periodSecondsint2The readiness probe period seconds.
deployment.readinessProbe.timeoutSecondsint1The readiness probe timeout seconds.
deployment.readinessProbe.failureThresholdint35The readiness probe failure threshold.
deployment.readinessProbe.successThresholdint1The readiness probe success threshold.
extraAnnotationsobject{}Extra annotations to pass to the Botkube Pod.
extraLabelsobject{}Extra labels to pass to the Botkube Pod.
priorityClassNamestring""Priority class name for the Botkube Pod.
nameOverridestring""Fully override "botkube.name" template.
fullnameOverridestring""Fully override "botkube.fullname" template.
resourcesobject{}The Botkube Pod resource request and limits. We usually recommend not to specify default resources and to leave this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. Ref docs
extraEnvlist[{"name":"LOG_LEVEL_SOURCE_BOTKUBE_KUBERNETES","value":"debug"}]Extra environment variables to pass to the Botkube container. Ref docs.
extraVolumeslist[]Extra volumes to pass to the Botkube container. Mount it later with extraVolumeMounts. Ref docs.
extraVolumeMountslist[]Extra volume mounts to pass to the Botkube container. Ref docs.
nodeSelectorobject{}Node labels for Botkube Pod assignment. Ref doc.
tolerationslist[]Tolerations for Botkube Pod assignment. Ref doc.
affinityobject{}Affinity for Botkube Pod assignment. Ref doc.
serviceAccount.createbooltrueIf true, a ServiceAccount is automatically created.
serviceAccount.namestring""The name of the service account to use. If not set, a name is generated using the fullname template.
serviceAccount.annotationsobject{}Extra annotations for the ServiceAccount.
extraObjectslist[]Extra Kubernetes resources to create. Helm templating is allowed as it is evaluated before creating the resources.
analytics.disableboolfalseIf true, sending anonymous analytics is disabled. To learn what date we collect, see Privacy Policy.
configWatcherobject{"enabled":true,"inCluster":{"informerResyncPeriod":"10m"}}Parameters for the Config Watcher component which reloads Botkube on ConfigMap changes. It restarts Botkube when configuration data change is detected. It watches ConfigMaps and/or Secrets with the botkube.io/config-watch: "true" label from the namespace where Botkube is installed.
configWatcher.enabledbooltrueIf true, restarts the Botkube Pod on config changes.
configWatcher.inClusterobject{"informerResyncPeriod":"10m"}In-cluster Config Watcher configuration. It is used when remote configuration is not provided.
configWatcher.inCluster.informerResyncPeriodstring"10m"Resync period for the Config Watcher informers.
pluginsobject{"cacheDir":"/tmp","healthCheckInterval":"10s","incomingWebhook":{"enabled":true,"port":2115,"targetPort":2115},"repositories":{"botkube":{"url":"https://github.com/kubeshop/botkube/releases/download/v1.7.0/plugins-index.yaml"}},"restartPolicy":{"threshold":10,"type":"DeactivatePlugin"}}Configuration for Botkube executors and sources plugins.
plugins.cacheDirstring"/tmp"Directory, where downloaded plugins are cached.
plugins.repositoriesobject{"botkube":{"url":"https://github.com/kubeshop/botkube/releases/download/v1.7.0/plugins-index.yaml"}}List of plugins repositories.
plugins.repositories.botkubeobject{"url":"https://github.com/kubeshop/botkube/releases/download/v1.7.0/plugins-index.yaml"}This repository serves officially supported Botkube plugins.
plugins.incomingWebhookobject{"enabled":true,"port":2115,"targetPort":2115}Configure Incoming webhook for source plugins.
plugins.restartPolicyobject{"threshold":10,"type":"DeactivatePlugin"}Botkube Restart Policy on plugin failure.
plugins.restartPolicy.typestring"DeactivatePlugin"Restart policy type. Allowed values: "RestartAgent", "DeactivatePlugin".
plugins.restartPolicy.thresholdint10Number of restarts before policy takes into effect.
configobject{"provider":{"apiKey":"","endpoint":"https://api.botkube.io/graphql","identifier":""}}Configuration for synchronizing Botkube configuration.
config.providerobject{"apiKey":"","endpoint":"https://api.botkube.io/graphql","identifier":""}Base provider definition.
config.provider.identifierstring""Unique identifier for remote Botkube settings. If set to an empty string, Botkube won't fetch remote configuration.
config.provider.endpointstring"https://api.botkube.io/graphql"Endpoint to fetch Botkube settings from.
config.provider.apiKeystring""Key passed as a X-API-Key header to the provider's endpoint.

AWS IRSA on EKS support​

AWS has introduced IAM Role for Service Accounts in order to provide fine-grained access. This is useful if you are looking to run Botkube inside an EKS cluster. For more details visit https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html.

Annotate the Botkube Service Account as shown in the example below and add the necessary Trust Relationship to the corresponding Botkube role to get this working.

serviceAccount:
annotations:
eks.amazonaws.com/role-arn: "{role_arn_to_assume}"