Installation

BotKube has two components that need to be installed.

  1. BotKube Slack app to your Slack workspace
  2. BotKube application inside your Kubernetes cluster

Install BotKube to the Slack workspace

Follow the steps below to install BotKube Slack app to your Slack workspace.

Install BotKube Slack app to your Slack workspace

Click the Add to Slack button provided to install BotKube Slack application to your workspace. Once you have authorized the application, you will be provided a BOT Access token. Kindly note down that token as it will be required while deploying BotKube controller to your Kubernetes cluster. Add to Slack

Alternetively, you can install BotKube Slack app from Slack app directory.

Add BotKube user to a Slack channel

After installing BotKube app to your Slack workspace, you could see new bot user with name “BotKube” added in your workspace. Add that bot to a Slack channel you want to receive notification in.
(You can add it by inviting @BotKube in a channel)

Install BotKube in Kubernetes cluster

BotKube install: Using helm

  • We will be using helm to install BotKube in Kubernetes. Follow this guide to install helm if you don’t have it installed already
  • Clone the BotKube github repository.
$ git clone https://github.com/infracloudio/botkube.git
  • Update default config in helm/botkube/values.yaml to watch the resources you want (by default you will receive create, delete and error events for all the resources in all the namespaces). If you are not interested in events about particular resource, just remove its entry from the config file.
  • Deploy BotKube controller using helm install in your cluster. bash $ helm install --name botkube --namespace botkube --set config.communications.slack.channel=<SLACK_CHANNEL_NAME>,config.communications.slack.token=<SLACK_API_TOKEN_FOR_THE_BOT>,config.settings.clustername=<CLUSTER_NAME>,config.settings.allowkubectl=<ALLOW_KUBECTL> helm/botkube/ where,
  • SLACK_CHANNEL_NAME is the channel name where @BotKube is added
  • SLACK_API_TOKEN_FOR_THE_BOT is the Token you received after installing BotKube app to your Slack workspace
  • CLUSTER_NAME is the cluster name set in the incoming messages
  • ALLOW_KUBECTL set true to allow kubectl command execution by BotKube on the cluster

    Configuration syntax is explained here.

  • Send @BotKube ping in the channel to see if BotKube is running and responding.


Using kubectl

  • Make sure that you have kubectl cli installed and have access to Kubernetes cluster
  • Download deployment specs yaml
$ wget -q https://raw.githubusercontent.com/infracloudio/botkube/master/deploy-all-in-one.yaml
  • Open downloaded deploy-all-in-one.yaml and update the configuration.
    Set SLACK_CHANNEL, SLACK_API_TOKEN, clustername, allowkubectl and update the resource events configuration you want to receive notifications for in the configmap.
    where,
  • SLACK_CHANNEL is the channel name where @BotKube is added
  • SLACK_API_TOKEN is the Token you received after installing BotKube app to your Slack workspace
  • clustername is the cluster name set in the incoming messages
  • allowkubectl set true to allow kubectl command execution by BotKube on the cluster

    Configuration syntax is explained here.

  • Create botkube namespace and deploy resources

$ kubectl create ns botkube && kubectl create -f deploy-all-in-one.yaml -n botkube
  • Check pod status in botkube namespace. Once running, send @BotKube ping in the Slack channel to confirm if BotKube is responding correctly.


Remove BotKube from Slack workspace

  • Goto Slack manage apps page
  • Click on “BotKube” and click on “Remove App” button

Remove BotKube from Kubernetes cluster

Using helm

If you have installed BotKube controller using helm, execute following command to completely remove BotKube and related resources from your cluster

$ helm delete --purge botkube

BotKube install: Using kubectl

$ kubectl delete -f https://raw.githubusercontent.com/infracloudio/botkube/master/deploy-all-in-one.yaml -n botkube