Explore the new Era of AIOps: Read the article

Beginner's Guide to Botkube Plugin Development: Part 1

Mar 30, 2023
6 minutes
read
Maria Ashby
Developer Advocate
Botkube

This introduction will teach you how Botkube plug-ins can unify your cloud native tools.

Share on Twitter
Share on LinkedIn
Share on Reddit
Share on HackerNews
Copy URL

Table of Contents

Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams!

So you want to make a [Botkube Plug-in](https://botkube.io/integrations), but don't know where to begin? Fear not, because this series has got you covered! In short, Botkube plugins are tools that enhance the Botkube user experience to make it more suited to fit their goals. They provide users with extra features and options to customize their experience.  However, to fully utilize Botkube, it is necessary to configure it according to your specific needs. Starting from scratch with only documentation to guide you can be intimidating, which is why I am writing this series to help jumpstart your plug-in development journey regardless of your experience level. With this series, you’ll have everything you need to build your own Botkube Plug-in.

But first things first, let's talk about why plug-ins are so important.

Why make a Botkube Plug-in: The Power of CNCF Tools Together

As a DevOps or platform engineer, your role is to ensure that your team has access to a suite of tools that enable efficient and quality deployments. However, with over 1,178 open-source tools available in the [CNCF Landscape](https://landscape.cncf.io/?organization=kubeshop&selected=botkube) across multiple categories, choosing which tools to use and integrating them into your organization's workflow can be overwhelming.

Choosing independent tools that work well together and unifying them to work alongside other collaborative conversation tools can be a daunting task. Furthermore, the lack of established or certified routes for Kubernetes deployment, monitoring, and management can lead to a situation where your tools don't communicate well with each other, which is a significant problem.

Fortunately, [Botkube](https://botkube.io/) and its plugin system provide an effective solution to this problem.

Botkube makes it easy to unify all the cloud-native tools into a single platform. As a developer or operations team member, you know that automation is the key to simplifying your workflow and increasing productivity. If you're using Botkube for monitoring and troubleshooting Kubernetes clusters, you're already ahead of the game. But with the [introduction of a plugin system](https://botkube.io/blog/botkube-v017-release-notes) in Botkube v0.17.0, you can take Botkube to the next level with your own custom plugins.

The plugin system allows anyone to write new plugins for sources and executors, which can be published for other Botkube users to install and use. This means that you can extend the functionality of Botkube to fit your specific needs, making it an even more valuable tool in your toolkit.

How Botkube Plug-Ins Work:

Botkube's architecture is designed to make it easy for developers and operations teams to interact with APIs and other tools through sources and executors. Think of *sources as the ears of Botkube* - they listen for events or notifications from any tool that can send them. This means that you can easily integrate any tool that can send events, like [Prometheus](https://botkube.io/integration/prometheus)  into Botkube, and have those events sent to communication channels based on the source bindings that you've configured.

Alternatively, *executors are like the hands of Botkube* - they're used to run commands from other tools within a chat channel. This means that you can execute commands from your favorite tools, like kubectl or Helm, directly within your chat channel and have the output of those commands returned to the same channel for easy visibility.

Botkube already comes with a native source for Kubernetes events, which has been part of Botkube since the beginning. But with the release of the new plugin system, you can now add additional sources and executors to Botkube, including helm and Prometheus plugins that we already support.

Conclusion

Now that you understand the importance of Botkube's plugin system and how it works, it's time to start building your own Botkube plugin. In the next blog post, we'll walk through a step-by-step guide on how to build a Botkube plugin from scratch, using a simple example.

Stay tuned for the next blog post, where we'll dive deep into the world of Botkube plugins and show you how to build one yourself.

As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap and get the features you’d like implemented.

There are plenty of options to contact us: