Usage

Debugging deployments using BotKube

@BotKube allows you to execute kubectl commands on your Kubernetes cluster. Run /botkubehelp to find more information about the supported commands.

help As suggested in help message, to execute kubectl commands, send message in following format in the channel where BotKube is already added or as a direct message to BotKube.

@BotKube <kubectl command without `kubectl` prefix> [--cluster-name <cluster_name>]

See Examples for the use cases.

Managing notifications

Depending upon your configuration, you will receive notifications about Kubernetes resources lifecycle events and their health. BotKube bot allows you to enable/disable notifications only from the configured channel. Run /botkubehelp, the bot will reply with the help message about the supported message formats.

help

View BotKube configuration

Run @BotKube notifier showconfig message from the configured channel where BotKube is added. The bot will reply you with the configuration with which the controller is running.

If you wish to change the configuration, you can update config section in helm/botkube/values.yaml and then run helm upgrade.

$ helm upgrade botkube \
--set config.settings.clustername=<CLUSTER_NAME> \
--set config.settings.allowkubectl=<ALLOW_KUBECTL> \
helm/botkube

OR

You can also modify the controller configuration at runtime. You have to edit the configmap which will also restart the BotKube pod to update mounted configuration in the pod.

$ kubectl edit configmap botkube-configmap -n botkube

This command will open configmap specs in vim editor. Do the required changes, save and exit. The BotKube pod will automatically restart to have these configuration in effect.

Check BotKube health

Run @BotKube ping to the channel where BotKube is added. The BotKube will respond you with the PONG message from all the configured clusters. Use --cluster-name flag to get response from the cluster mentioned in the flag. Else check the deployment in Kubernetes cluster in the botkube namespace.

ping ping

Disable notifications

If you want to stop receiving notifications from BotKube, run @BotKube notifier stop from the configured channel where BotKube is added. You will no longer receive notifications from the BotKube

notifier_stop notifier_stop

Enable notifications

If you want to receice notifications from BotKube again, run @BotKube notifier start from the configured channel where BotKube is added.

notifier_start notifier_start

Check notifier status

Run @BotKube notifier status to check status of notifier if running or stopped from the configured channel.

notifier_status notifier_status

Manage filters

BotKube allows you to manage filters using @BotKube commands

List available filters

Run @BotKube filters list to get list of available filters and their running status

Disable filter

Run @BotKube filters disable {filter-name} to disable perticular filter to skip checks on resource specs

Enable filter

Run @BotKube filters enable {filter-name} to enable perticular filter to run checks on resource specs

Run Kubectl commands

Run @BotKube < kubectl command without kubectl prefix > to get kubectl response from the cluster configured with the channel. This command needs to be executed from configured channel else use --cluster-name flag described below.

get_pods get_pods

Specify cluster name

To get the list of all cluster’s configured in botkube, you can use the ping command.

ping

For cluster-specific response, use --cluster-name flag to specify the cluster’s name on which command needs to be executed. Use of this flag allows you to get response from any channel or group where BotKube is added. The flag is ignored in notifier commands as they can be executed from the configured channel only.

flag_clustername_ping flag_clustername_ping flag_clustername_kubectl flag_clustername_kubectl