diff --git a/hack/assistant-setup/content-fetcher/main.go b/hack/assistant-setup/content-fetcher/main.go index 89a1e35..ae6c685 100644 --- a/hack/assistant-setup/content-fetcher/main.go +++ b/hack/assistant-setup/content-fetcher/main.go @@ -25,7 +25,7 @@ const ( docsSitemapURL = "https://docs.botkube.io/sitemap.xml" processingAPIURL = "https://r.jina.ai" contentDir = "content" - maxRetries = 5 + maxRetries = 10 retryInterval = 1 * time.Second httpCliTimeout = 1 * time.Minute purgeAllContentEnv = "PURGE_ALL_CONTENT" diff --git a/hack/assistant-setup/content/botkube.io.md b/hack/assistant-setup/content/botkube.io.md index 8db8649..8bf92e0 100644 --- a/hack/assistant-setup/content/botkube.io.md +++ b/hack/assistant-setup/content/botkube.io.md @@ -62,25 +62,59 @@ Developer Advocate Botkube -Latest Blog Post +![Image 5: Kubeshop developer](https://botkube.io/) + +![Image 6: Kubeshop Product manager](https://botkube.io/) + +![Image 7: Kubeshop Product manager](https://botkube.io/) + +Latest Blogposts ---------------- -![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg) +![Image 8](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg)![Image 9](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664fa05091368be18015f77e_Kubetoolslogo.jpg) + +BotKube: The Ultimate Tool for #Kubernetes Alerts and Notifications + +![Image 10: Kubeshop CTO Ole Lensmar](https://botkube.io/) + +Kube Tools + +Kubernetes Tool Rating Site + +![Image 11](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg)![Image 12](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664f9effad81585bbb1ac0c1_quadanow_logo.jpg) + +I love Botkube! I've used it since I can remember! + +![Image 13: Kubeshop CTO Ole Lensmar](https://botkube.io/) + +Arton Demaku + +DevOps Engineer + +American Association for Accreditation of Ambulatory Surgery Facilities (AAAASF) + +![Image 14](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg)![Image 15](https://botkube.io/) For me, monitoring health and performance of the infrastructure in realtime was done with the help of Botkube. Botkube provided me security features such as unauthorized access attempts. -![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg) +![Image 16: Kubeshop CTO Ole Lensmar](https://botkube.io/) + +![Image 17](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg)![Image 18](https://botkube.io/) The advantages of BotKube are its versatility and efficiency in managing and monitoring Kubernetes clusters. It offers seamless integration with various messaging platforms and provides real-time alerts and notifications. Its appeal is enhanced by Its user-friendly interface, and extensive customization options -![Image 7](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg) +![Image 19: Kubeshop CTO Ole Lensmar](https://botkube.io/) + +![Image 20](https://assets-global.website-files.com/633705de6adaa38599d8e258/64dbb86f74cb6622225312c2_quote-icon.svg)![Image 21](https://botkube.io/) “Perfect! When i have the repo i will write here, thank you very much for the support! I really like this project!” +![Image 22: Kubeshop CTO Ole Lensmar](https://botkube.io/) + Stay in the Loop ---------------- -![Image 8: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/636d3117b8612105c60e0bd9_botkube-front-right.svg) +![Image 23: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/636d3117b8612105c60e0bd9_botkube-front-right.svg) Join the Botkube Community in one of these channels diff --git a/hack/assistant-setup/content/botkube.io__about.md b/hack/assistant-setup/content/botkube.io__about.md index ef4f8f5..84544d2 100644 --- a/hack/assistant-setup/content/botkube.io__about.md +++ b/hack/assistant-setup/content/botkube.io__about.md @@ -4,7 +4,6 @@ URL Source: https://botkube.io/about Markdown Content: Designed to Connect the Cloud Native Landscape into your Chat Channel ---------------------------------------------------------------------- ![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/65b2a089afca9fd872a83d94_Main-Botkube-5.webp) @@ -70,9 +69,7 @@ Upcoming Events Livestream -### 90DaysOfDevOps - 2024 Community Edition - -![Image 7](https://assets-global.website-files.com/633705de6adaa38599d8e258/645d3896ae52ddf3bd9625c2_event-arrow.svg) +#### 90DaysOfDevOps - 2024 Community Edition Join Maria, Developer Advocate for Botkube, in an insightful workshop that leverages the power of Botkube for effortless multi-cluster management in Kubernetes. In this session, we will explore three key areas: @@ -82,27 +79,21 @@ Join Maria, Developer Advocate for Botkube, in an insightful workshop that lever 3\. Simplifying Collaborative Kubernetes Troubleshooting: Three Best Practices with the aid of Botkube -![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/647f5b0cb4328c0f07a53397_conference-icon.svg) +![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/647f5b0cb4328c0f07a53397_conference-icon.svg) Conference -### Developer Week 2024 - -![Image 9](https://assets-global.website-files.com/633705de6adaa38599d8e258/645d3896ae52ddf3bd9625c2_event-arrow.svg) - -San Francisco, CA USA +#### Developer Week 2024 Each year, 8,000+ developers, engineers, software architects, dev teams, managers, and executives from 70+ countries gather for DeveloperWeek to discover the latest in developer technologies, languages, platforms, and tools. Botkube DevRel, Maria Ashby, will present **_"Unlocking K8s Troubleshooting Best Practices with Botkube."_** See you there... -![Image 10](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/647f5b651155fb498c472792_livestream-icon.svg) +![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/647f5b651155fb498c472792_livestream-icon.svg) Livestream -### Office Hours: 5 Essential Kubernetes Monitoring and Troubleshooting Tasks to Automate - -![Image 11](https://assets-global.website-files.com/633705de6adaa38599d8e258/645d3896ae52ddf3bd9625c2_event-arrow.svg) +#### Office Hours: 5 Essential Kubernetes Monitoring and Troubleshooting Tasks to Automate Join us for an office hours session where we'll explore five ways for DevOps teams to automate common Kubernetes tasks to save time each week.This session is useful and informative for those new to Kubernetes or those with years of K8s experience under their belt. We'll talk through: diff --git a/hack/assistant-setup/content/botkube.io__blog.md b/hack/assistant-setup/content/botkube.io__blog.md index 6ba2709..6ad0ef9 100644 --- a/hack/assistant-setup/content/botkube.io__blog.md +++ b/hack/assistant-setup/content/botkube.io__blog.md @@ -3,42 +3,31 @@ Title: Blog URL Source: https://botkube.io/blog Markdown Content: -Botkube articles ----------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - Blog posts ---------- -No results found. Please try to search with different keywords. - -Stay in the Loop ----------------- +< -![Image 1: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/636d3117b8612105c60e0bd9_botkube-front-right.svg) +[1](https://botkube.io/blog?page=1)[2](https://botkube.io/blog?page=2)[3](https://botkube.io/blog?page=3)...[9](https://botkube.io/blog?page=9) -Join the Botkube Community in one of these channels +[\>](https://botkube.io/blog?page=2) -Subscribe to our monthly newsletter to stay up to date with all-things Botkube. +[![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664c8bed801d7ed2898141ba_PARTNERSHIPS_Thumbnail.png) May 21, 2024 2min read ### Botkube is Now Verified in Microsoft AppSource! It's official: Botkube has undergone security and compliance checks by Microsoft to become verified in the AppSource Marketplace—strengthening user experience and our partnership with Microsoft.](https://botkube.io/blog/botkube-is-now-verified-in-microsoft-appsource) -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +[![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6644e5d498e2ed722f5424d6_BLOG_Thumbnail%20(7).png) May 15, 2024 4min read ### Start Troubleshooting K8s Faster with Botkube’s Latest Improvements Learn about the latest v1.11 release, including an update to the AI-powered Botkube Assistant to view current environment configurations, set-up tasks, and more.](https://botkube.io/blog/start-troubleshooting-k8s-faster-with-botkubes-latest-improvements) -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b7d7f3f6390196bf27e83_UC%20(1).png) May 8, 2024 read ### Simplify Kubernetes Security Troubleshooting with AI Learn how Botkube can streamline troubleshooting and help overcome common Kubernetes PSA-related issues](https://botkube.io/blog/simplify-kubernetes-security-troubleshooting-with-ai) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +[![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b8809695cf669f14f2a54_Level%20Up%20SRE%20Workflow%20Automating%20Manual%20Tasks%20with%20Botkube%20AI%20Assistant.png) Apr 18, 2024 read ### Level Up Your SRE Workflow: Automating Manual Tasks with Botkube AI Assistant See how Botkube is optimizing SRE workflows with the new AI assistant](https://botkube.io/blog/level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant) -[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 6](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 7](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +[![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/661eb9d9c3fe057b001d93b5_simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy.png) Apr 4, 2024 5 mins read ### Developer Self-Service Made Easy with Botkube AI Assistant Discover how Botkube AI's simplifies Kubernetes troubleshooting for devs with natural language interactions, and seamless integration for enhanced productivity.](https://botkube.io/blog/simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy) -#### Get to Know Kubeshop +[![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70cf0a7f079f477b8a7c9_Botkube%20BLOG%20Thumbnail%20(2).png) Mar 11, 2024 5 mins read ### Explore the New Era of AIOps with Botkube's AI Assistant Discover how to revolutionize Kubernetes management with Botkube's AI Assistant! Simplify K8s operations, automate incident reporting, and more.](https://botkube.io/blog/explore-the-new-era-of-aiops-with-botkubes-ai-assistant) -#### Botkube +< -Copyright © 2022 Kubeshop, LLC. All rights reserved. +[1](https://botkube.io/blog?page=1)[2](https://botkube.io/blog?page=2)[3](https://botkube.io/blog?page=3)...[9](https://botkube.io/blog?page=9) -Copyright © 2024 Kubeshop, LLC. All rights reserved. +[\>](https://botkube.io/blog?page=2) -#### Explore Kubeshop Projects +No results found. Please try to search with different keywords. diff --git a/hack/assistant-setup/content/botkube.io__blog__ai-for-kubernetes-operations.md b/hack/assistant-setup/content/botkube.io__blog__ai-for-kubernetes-operations.md index 9d57d71..7e5a9e1 100644 --- a/hack/assistant-setup/content/botkube.io__blog__ai-for-kubernetes-operations.md +++ b/hack/assistant-setup/content/botkube.io__blog__ai-for-kubernetes-operations.md @@ -1,4 +1,4 @@ -Title: 4 AI-Driven Strategies for Enhanced Kubernetes Troubleshooting Workflows +Title: Four AI-Driven Strategies for Enhanced Kubernetes Troubleshooting Workflows URL Source: https://botkube.io/blog/ai-for-kubernetes-operations @@ -17,14 +17,14 @@ Optimizing Kubernetes Management with Botkube's AI Insights ### Table of Contents -* [Strategy 1: Automated Incident Reporting](#strategy-1-automated-incident-reporting-2) -* [Strategy 2: Optimize Resource Allocation](#strategy-2-optimize-resource-allocation-2) -* [Strategy 3: Enhance Cluster Diagnostics](#strategy-3-enhance-cluster-diagnostics--2) -* [Strategy 4: Enable Proactive Anomaly Detection](#strategy-4-enable-proactive-anomaly-detection-2) -* [Bonus Strategy: Simplify Application Lifecycle Management](#bonus-strategy-simplify-application-lifecycle-management-2) -* [Getting Started with Botkube’s AI Assistant](#getting-started-with-botkube-s-ai-assistant-2) +* [Strategy 1: Automated Incident Reporting](#strategy-1-automated-incident-reporting) +* [Strategy 2: Optimize Resource Allocation](#strategy-2-optimize-resource-allocation) +* [Strategy 3: Enhance Cluster Diagnostics](#strategy-3-enhance-cluster-diagnostics-) +* [Strategy 4: Enable Proactive Anomaly Detection](#strategy-4-enable-proactive-anomaly-detection) +* [Bonus Strategy: Simplify Application Lifecycle Management](#bonus-strategy-simplify-application-lifecycle-management) +* [Getting Started with Botkube’s AI Assistant](#getting-started-with-botkube-s-ai-assistant) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -50,14 +50,14 @@ Strategy 2: Optimize Resource Allocation ‍ -Resource management is crucial for optimal performance and cost-efficiency in Kubernetes. Teams face difficulties in keeping pace with real-time requirements, which can lead to performance issues or unnecessary overspending on resources. Botkube’s AI assistant automates resource usage monitoring and analysis, providing recommendations for ideal distribution. It intelligently evaluates workload patterns, enabling dynamic  CPU, memory, and storage adjustments, aligning with current demands without manual intervention. This predictive approach prevents performance bottlenecks and achieves cost savings, making Kubernetes resource allocation simpler and more effective. +Resource management is crucial for optimal performance and cost-efficiency in Kubernetes. Teams face difficulties in keeping pace with real-time requirements, which can lead to performance issues or unnecessary overspending on resources. Botkube’s AI assistant automates resource usage monitoring and analysis, providing recommendations for ideal distribution. It intelligently evaluates workload patterns, enabling dynamic CPU, memory, and storage adjustments, aligning with current demands without manual intervention. This predictive approach prevents performance bottlenecks and achieves cost savings, making Kubernetes resource allocation simpler and more effective. -Strategy 3:  Enhance Cluster Diagnostics ----------------------------------------- +Strategy 3: Enhance Cluster Diagnostics +--------------------------------------- ![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65e8a0387271b3eec14634d8_Co_cwk72Ki64q1a3A6OAcxn0qQvCjlhWWlTtBLPzMwhPjvVn6oHn-e2_L4twExmcpGAuis9bZKJXC2JRzuOzxMXg5MsbAugaCwe1xt5GUqWsnbug3CQkm7uGo7GX2g4dgTc-TCK1oScC7aUd82RMlG4.png) -Troubleshooting in Kubernetes production environments presents a significant challenge, requiring not just an in-depth knowledge of Kubernetes itself but also the ability to quickly address and resolve issues to maintain system stability. AI-powered Kubernetes assistants streamline this process through detailed diagnostics and automated resolution guides or runbooks. These tools are invaluable for those tasked with Kubernetes management, streamlining the identification and rectification of cluster issues. Botkube automatically detects issues, offering clear explanations and steps for resolution, thus ensuring system reliability and efficiency. These tools  save time and promote consistency in troubleshooting, adapting to your cluster's specific needs and best practices. +Troubleshooting in Kubernetes production environments presents a significant challenge, requiring not just an in-depth knowledge of Kubernetes itself but also the ability to quickly address and resolve issues to maintain system stability. AI-powered Kubernetes assistants streamline this process through detailed diagnostics and automated resolution guides or runbooks. These tools are invaluable for those tasked with Kubernetes management, streamlining the identification and rectification of cluster issues. Botkube automatically detects issues, offering clear explanations and steps for resolution, thus ensuring system reliability and efficiency. These tools save time and promote consistency in troubleshooting, adapting to your cluster's specific needs and best practices. Strategy 4: Enable Proactive Anomaly Detection ---------------------------------------------- @@ -78,4 +78,4 @@ Botkube eases the management of application secrets and configurations, automati Getting Started with Botkube’s AI Assistant ------------------------------------------- -[Starting with our AI Assistant is simple and intuitive.](https://botkube.io/blog/explore-the-new-era-of-aiops-with-botkubes-ai-assistant) It's included in every Botkube Cloud instance, ensuring a smooth integration for users updating to the latest version. New users can easily begin with Botkube, quickly enjoying AI-enhanced Kubernetes management.\*\* \[Start with Botkube here\](http://app.botkube.io). For those using the open-source version, \[follow our migration guide\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to swiftly upgrade to Botkube Cloud and access all new features. Dive into the Botkube AI Assistant for a superior Kubernetes management experience. Sign up now to integrate real-time, AI-powered support into your cluster management, improving efficiency and reliability. With the Botkube AI Assistant, you gain a 24/7 platform engineer at your service. +[Starting with our AI Assistant is simple and intuitive.](https://botkube.io/blog/explore-the-new-era-of-aiops-with-botkubes-ai-assistant) It's included in every Botkube Cloud instance, ensuring a smooth integration for users updating to the latest version. New users can easily begin with Botkube, quickly enjoying AI-enhanced Kubernetes management.\*\* [Start with Botkube here](http://app.botkube.io/). For those using the open-source version, [follow our migration guide](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to swiftly upgrade to Botkube Cloud and access all new features. Dive into the Botkube AI Assistant for a superior Kubernetes management experience. Sign up now to integrate real-time, AI-powered support into your cluster management, improving efficiency and reliability. With the Botkube AI Assistant, you gain a 24/7 platform engineer at your service. diff --git a/hack/assistant-setup/content/botkube.io__blog__argo-cd-botkube-integration.md b/hack/assistant-setup/content/botkube.io__blog__argo-cd-botkube-integration.md index d29da8f..43b29a2 100644 --- a/hack/assistant-setup/content/botkube.io__blog__argo-cd-botkube-integration.md +++ b/hack/assistant-setup/content/botkube.io__blog__argo-cd-botkube-integration.md @@ -17,57 +17,59 @@ Argo CD now integrates with Botkube, allowing users to receive and interact with ### Table of Contents -* [What is Argo CD?](#what-is-argo-cd--2) -* [Why was a Botkube & Argo Connection Necessary?](#why-was-a-botkube-argo-connection-necessary--2) -* [What is Botkube?](#what-is-botkube--2) -* [Using Argo CD with Botkube](#using-argo-cd-with-botkube-2) -* [Get Started with Botkube’s new Argo CD Plugin](#get-started-with-botkube-s-new-argo-cd-plugin-2) +* [What is Argo CD?](#what-is-argo-cd-) +* [Why was a Botkube & Argo Connection Necessary?](#why-was-a-botkube-argo-connection-necessary-) +* [What is Botkube?](#what-is-botkube-) +* [Using Argo CD with Botkube](#using-argo-cd-with-botkube) +* [Get Started with Botkube’s new Argo CD Plugin](#get-started-with-botkube-s-new-argo-cd-plugin) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud Are you dealing with the complexities of scaling operations and collaborative workflows using GitOps tools like ArgoCD? As your organization expands, staying on top of repository and configuration changes, as well as managing pull requests and issues, can become increasingly difficult. -‍ -Today, we are happy to announce the new \[Botkube Argo CD integration\](https://docs.botkube.io/configuration/source/argocd/)! This integration enables you and your team to leverage automation to scale and optimize your Argo CD troubleshooting workflow. +‍ Today, we are happy to announce the new [Botkube Argo CD integration](https://docs.botkube.io/configuration/source/argocd/)! This integration enables you and your team to leverage automation to scale and optimize your Argo CD troubleshooting workflow. -\## What is Argo CD? +What is Argo CD? +---------------- ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/650e09b69191288d41cf2161_rih56gy96kbqx4UzlDDmVadKW9ieXnfmbXLOwzJiDWgHBDzmW0vG867PZM74YdzH5YkNHY-9F2xaVfJTam8eFpvSgzoB4EX-FxDPzLzqMvKJmSNtSBwIRifp2EctcHW3oeh_ruepqkKpwhfFyDzS5Kc.gif) ‍ -\[Argo CD\](https://botkube.io/integration/argo-cd-botkube-kubernetes-integration) is a Kubernetes controller that oversees the status of all active applications. It can pull updated code from Git repositories and deploy it directly to Kubernetes resources. It enables developers to manage both infrastructure configuration and application updates in one system. +[Argo CD](https://botkube.io/integration/argo-cd-botkube-kubernetes-integration) is a Kubernetes controller that oversees the status of all active applications. It can pull updated code from Git repositories and deploy it directly to Kubernetes resources. It enables developers to manage both infrastructure configuration and application updates in one system. -\## Why was a Botkube & Argo Connection Necessary? +Why was a Botkube & Argo Connection Necessary? +---------------------------------------------- With the new Botkube ArgoCD plugin, users can significantly enhance their Argo CD notifications experience. This plugin offers a streamlined approach to managing platform secrets and notifications, eliminating the need for project-specific configurations, whether it's Kubernetes, Prometheus, Argo, or others. Enabling Argo notifications becomes more straightforward, providing users with an efficient and centralized solution. Furthermore, the plugin enhances visibility into the Argo deployment process by consolidating GitHub and Argo events and delivering them directly to the user's configured communication platform, ensuring a more informed and responsive workflow. -\## What is Botkube? +What is Botkube? +---------------- -Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred collaboration platforms like \[Slack, Microsoft Teams, Discord, and Mattermost.\](https://botkube.io/integrations) This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. +Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred collaboration platforms like [Slack, Microsoft Teams, Discord, and Mattermost.](https://botkube.io/integrations) This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. -\## Using Argo CD with Botkube +Using Argo CD with Botkube +-------------------------- ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/650e09c855b42178c42a1d9b_jOhrHB90gwPhqwSU94v3y1Q7Q2Y_1Ltfap5j-mY6XbgieOkVITkVOoOboVTaVHT55onYtmncvcVt_zMrOQehiIOKbM2unJi5NKvWpXhjN222CbEB31JP_oSxT9QowgHWFcKv0YoK2FvZZvJMwGpET4s.png) ‍ -The new \[Botkube ArgoCD\](https://docs.botkube.io/configuration/source/argocd/) plugin offers a compelling use case for users seeking seamless integration between Argo CD and their preferred communication platforms. With this plugin, users can effortlessly receive real-time notifications from their Argo CD deployments directly in their communication channels. This feature proves invaluable for teams relying on Argo CD for managing Kubernetes workflows within GitHub. Botkube's ArgoCD plugin harnesses Argo CD's native notification system, expanding its functionality by provinteractive notifications for popular cloud-based services like Slack, as well as support for platforms like Discord, which are not covered by Argo CD's default notifications. +The new [Botkube ArgoCD](https://docs.botkube.io/configuration/source/argocd/) plugin offers a compelling use case for users seeking seamless integration between Argo CD and their preferred communication platforms. With this plugin, users can effortlessly receive real-time notifications from their Argo CD deployments directly in their communication channels. This feature proves invaluable for teams relying on Argo CD for managing Kubernetes workflows within GitHub. Botkube's ArgoCD plugin harnesses Argo CD's native notification system, expanding its functionality by provinteractive notifications for popular cloud-based services like Slack, as well as support for platforms like Discord, which are not covered by Argo CD's default notifications. One of the standout benefits of this plugin is its automation of the entire notification system setup, simplifying a traditionally complex process. By configuring the plugin in Botkube, users can save time and effort previously required to define webhooks, triggers, templates, and annotations within Argo CD. Additionally, the plugin enhances notifications, allowing users to run commands and access application details conveniently in a slack channel, ultimately aiding in debugging and troubleshooting. Overall, the Botkube ArgoCD plugin enhances the user experience by bridging the gap between Argo CD and their communication platforms, offering a streamlined, efficient, and interactive approach to managing Kubernetes deployments. -\## Get Started with Botkube’s new Argo CD Plugin +Get Started with Botkube’s new Argo CD Plugin +--------------------------------------------- -Ready to try it out on your own? The easiest way to configure it is through the \[Botkube web app \](https://app.botkube.io/)if your cluster is connected. Otherwise you can enable it in your \[Botkube YAML configuration\](https://docs.botkube.io/configuration/source/argocd). Check our [tutorial](https://botkube.io/blog/getting-started-with-botkube-and-argocd) for step by step instruction on how to get started. +Ready to try it out on your own? The easiest way to configure it is through the [Botkube web app](https://app.botkube.io/) if your cluster is connected. Otherwise you can enable it in your [Botkube YAML configuration](https://docs.botkube.io/configuration/source/argocd). Check our [tutorial](https://botkube.io/blog/getting-started-with-botkube-and-argocd) for step by step instruction on how to get started. -Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. Find out how to use \[the Argo plugin \](https://docs.botkube.io/usage/source/argocd)in the documentation. +Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. Find out how to use [the Argo plugin](https://docs.botkube.io/usage/source/argocd) in the documentation. -We’d love to hear how you are using the new Argo CD plugin! Share your experiences with us in the Botkube \[Slack community\](https://join.botkube.io/) or \[email our Developer Advocate, Maria\](mailto:maria@kubeshop.io) and we’ll send you some Botkube swag. - -‍ +We’d love to hear how you are using the new Argo CD plugin! Share your experiences with us in the Botkube [Slack community](https://join.botkube.io/) or [email our Developer Advocate, Maria](mailto:maria@kubeshop.io) and we’ll send you some Botkube swag. diff --git a/hack/assistant-setup/content/botkube.io__blog__beginners-guide-to-botkube-plugin-development-how-botkube-plug-ins-can-unify-your-cloud-native-tools.md b/hack/assistant-setup/content/botkube.io__blog__beginners-guide-to-botkube-plugin-development-how-botkube-plug-ins-can-unify-your-cloud-native-tools.md index 10cc599..bad4a8f 100644 --- a/hack/assistant-setup/content/botkube.io__blog__beginners-guide-to-botkube-plugin-development-how-botkube-plug-ins-can-unify-your-cloud-native-tools.md +++ b/hack/assistant-setup/content/botkube.io__blog__beginners-guide-to-botkube-plugin-development-how-botkube-plug-ins-can-unify-your-cloud-native-tools.md @@ -17,49 +17,46 @@ This introduction will teach you how Botkube plug-ins can unify your cloud nativ ### Table of Contents -* [Why make a Botkube Plug-in: The Power of CNCF Tools Together](#why-make-a-botkube-plug-in-the-power-of-cncf-tools-together--2) -* [How Botkube Plug-Ins Work:](#how-botkube-plug-ins-work--2) -* [Conclusion](#conclusion--2) +* [Why make a Botkube Plug-in: The Power of CNCF Tools Together](#why-make-a-botkube-plug-in-the-power-of-cncf-tools-together-) +* [How Botkube Plug-Ins Work:](#how-botkube-plug-ins-work-) +* [Conclusion](#conclusion-) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -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. +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. ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64259de0f04e131b26b323ab_YDm2BILjPQoWfmfEClCKc4da4Acv3ASayZTaEEEdd27wxMLEb-eWsECh1qpEKoqabyu43YFgDmSULoDFTIwBMCF7ndEFnTzG0bLBSjA1xFx0v_cBNjx8zBD1owLk8IfqA8nK2IiIJ_qtrJcU3dGb-s8.png) 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** +**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. +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. ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64259def371cfe07bc0f2b8e_s7cvlLKT1mIpSir81gNynMEUtfKsi34yzhstUPE8tTuzP8sRizuzesbF3elxcr1ynfIKa_fWLqAsX2a0jT9Z52xisGCDxGUlKZACDTlJkmQ7lKOttNSomQgDDiYKJ0yt_mZF2KhHRlSbygHiNiod_3g.png) 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. +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. +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:** - ---------------------------------- +**How Botkube Plug-Ins Work:** +------------------------------ ![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64259e0b4fdb15ca2aa6e839_iKasmcohH7JW9C8d9Y10Y6AM8n1uSpA-HtyxcqE6jxI9XBN53Nott737B5XTDLMGB1nXUnkGPN-fHeNbq4RIbsuy6Kko3LdT9hrdf-YpXukG2kVCCgbSDNvPltY4coW4PmCmXIdeyO0luWUNcDxVk0I.png) -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. +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. +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** - ------------------ +**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. diff --git a/hack/assistant-setup/content/botkube.io__blog__best-practices-for-kubernetes-troubleshooting-in-multi-cluster-environments.md b/hack/assistant-setup/content/botkube.io__blog__best-practices-for-kubernetes-troubleshooting-in-multi-cluster-environments.md index 0ff4b09..3e35e31 100644 --- a/hack/assistant-setup/content/botkube.io__blog__best-practices-for-kubernetes-troubleshooting-in-multi-cluster-environments.md +++ b/hack/assistant-setup/content/botkube.io__blog__best-practices-for-kubernetes-troubleshooting-in-multi-cluster-environments.md @@ -17,26 +17,28 @@ As K8s becomes the solution for container orchestration and remote work environm ### Table of Contents -* [Introduction to Troubleshooting Kubernetes](#introduction-to-troubleshooting-kubernetes-2) -* [What is Kubernetes Troubleshooting?](#what-is-kubernetes-troubleshooting--2) -* [How does Kubernetes troubleshooting work?](#how-does-kubernetes-troubleshooting-work--2) -* [What makes troubleshooting multiple Kubernetes clusters so difficult?](#what-makes-troubleshooting-multiple-kubernetes-clusters-so-difficult--2) -* [Best Practices for Kubernetes Multi-cluster Troubleshooting](#best-practices-for-kubernetes-multi-cluster-troubleshooting-2) -* [Some Common Kubernetes Errors](#some-common-kubernetes-errors-2) -* [Conclusion](#conclusion-2) -* [CNCF Islamabad and Botkube Webinar](#cncf-islamabad-and-botkube-webinar-2) +* [Introduction to Troubleshooting Kubernetes](#introduction-to-troubleshooting-kubernetes) +* [What is Kubernetes Troubleshooting?](#what-is-kubernetes-troubleshooting-) +* [How does Kubernetes troubleshooting work?](#how-does-kubernetes-troubleshooting-work-) +* [What makes troubleshooting multiple Kubernetes clusters so difficult?](#what-makes-troubleshooting-multiple-kubernetes-clusters-so-difficult-) +* [Best Practices for Kubernetes Multi-cluster Troubleshooting](#best-practices-for-kubernetes-multi-cluster-troubleshooting) +* [Some Common Kubernetes Errors](#some-common-kubernetes-errors) +* [Conclusion](#conclusion) +* [CNCF Islamabad and Botkube Webinar](#cncf-islamabad-and-botkube-webinar) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud -\## Introduction to Troubleshooting Kubernetes +Introduction to Troubleshooting Kubernetes +------------------------------------------ Managing and troubleshooting multiple Kubernetes clusters comes with many challenges like complexity and coordination. However, there is a strategic approach to Kubernetes troubleshooting across multiple clusters. In this blog, we will explore some best practices that can enhance the efficiency and effectiveness of your Kubernetes troubleshooting efforts. I will delve into the benefits of centralizing monitoring, utilizing multi-cluster management features, streamlining command execution, and promoting effective incident response and collaboration. By addressing these challenges and leveraging the right tools, development and operations teams can unlock the full potential of Kubernetes in the cloud-native world. -\## What is Kubernetes Troubleshooting? +What is Kubernetes Troubleshooting? +----------------------------------- ![Image 2: learn k8s help article on the process for troubleshooting Kubernetes related issues](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64b968a920dcc2ab5ff83fb7_4QTYY_4jwo5E0DeGgXARbgT_xYK4VyNKjg9OGcMmAMJPlaJFDcozwToB_GSkt5bM3rS5IIAFKBwiGFaLzuOrQMqHQoKHoDisEHGJRyZpMjS7yNHRciYG5KN9omOGrR6_AxCx1hKY5ksNqNLg81P24l8.png) @@ -46,11 +48,13 @@ A diagram of the K8s troubleshooting process from [LearnK8s](https://learnk8s.io Kubernetes troubleshooting is the process of identifying and resolving issues that arise within a Kubernetes cluster. It involves diagnosing and resolving problems related to application deployment, networking, resource allocation, configuration errors, and other factors that can impact the stability and performance of a Kubernetes environment. Troubleshooting in Kubernetes is a complex process that often requires a combination of monitoring tools, log analysis, and a knowledge of the Kubernetes architecture. -\## How does Kubernetes troubleshooting work? +How does Kubernetes troubleshooting work? +----------------------------------------- -Kubernetes troubleshooting involves analyzing logs, examining cluster events, optimizing resource utilization, and ensuring network connectivity. Essential commands like \`kubectl logs\`, \`kubectl describe\`, and \`kubectl exec\` are valuable tools for uncovering and resolving problems within the cluster. By analyzing logs and events, Kubernetes Administrators can gain insights into their app behavior. Network connectivity is verified to maintain communication between pods and services. These techniques and commands aid in efficiently diagnosing and resolving issues, ensuring a smooth and efficient Kubernetes environment. +Kubernetes troubleshooting involves analyzing logs, examining cluster events, optimizing resource utilization, and ensuring network connectivity. Essential commands like `kubectl logs`, `kubectl describe`, and `kubectl exec` are valuable tools for uncovering and resolving problems within the cluster. By analyzing logs and events, Kubernetes Administrators can gain insights into their app behavior. Network connectivity is verified to maintain communication between pods and services. These techniques and commands aid in efficiently diagnosing and resolving issues, ensuring a smooth and efficient Kubernetes environment. -\## What makes troubleshooting multiple Kubernetes clusters so difficult? +What makes troubleshooting multiple Kubernetes clusters so difficult? +--------------------------------------------------------------------- Even in a small local Kubernetes cluster, unraveling the root causes of issues can be challenging, with problems hiding in individual containers, pods, controllers, or even components of the control plane. But when it comes to large-scale production environments, these challenges are amplified. Visibility diminishes, and the complexity increases. Engineering teams often find themselves juggling multiple tools to gather the necessary data for diagnosis, and additional tools may be required to address and resolve detected issues. Complicating matters further, Kubernetes is frequently employed in building microservices applications, involving separate development teams for each microservice or collaboration between DevOps and application development teams within the same cluster. @@ -58,9 +62,10 @@ The complexity of Kubernetes troubleshooting is further compounded by the ambigu Fortunately, there is a solution to streamline this challenging endeavor: Botkube, a collaborative tool built specifically for Kubernetes users. With Botkube, you can receive and respond to alerts effortlessly within your preferred messaging and collaboration platforms, such as Slack, Microsoft Teams, Mattermost and more. This integration eliminates the need to switch between multiple platforms, granting you immediate visibility and control over your cluster resources. -\## Best Practices for Kubernetes Multi-cluster Troubleshooting +Best Practices for Kubernetes Multi-cluster Troubleshooting +----------------------------------------------------------- -\### Centralize Monitoring and Observability +### Centralize Monitoring and Observability Efficient troubleshooting across multiple Kubernetes clusters begins with the crucial step of consolidating monitoring and observability information in one centralized location. By doing so, you gain a bird's eye view of your entire infrastructure as data from all clusters is brought together. This comprehensive perspective enables quicker issue identification and streamlined troubleshooting, regardless of the specific cluster involved. Having all the essential information in one place empowers your team to tackle problems more efficiently, saving valuable time and ensuring a smooth troubleshooting process. @@ -70,7 +75,7 @@ Efficient troubleshooting across multiple Kubernetes clusters begins with the cr Botkube’s high level view of all of your clusters allows you to pinpoint exactly which cluster(s) are in need of help. -\### Incident Response and Collaboration +### Incident Response and Collaboration Effective incident response and collaboration are critical in multi-cluster environments. Implement solutions that facilitate real-time notifications and seamless communication among team members. By integrating incident response tools with popular collaboration platforms like Slack, Microsoft Teams, and Discord, teams can effectively resolve incidents and improve coordination, reducing downtime and enhancing overall productivity. As an example, Botkube integrates natively with Slack, Microsoft Teams, Mattermost, and Discord – all communication platforms that teams use daily to talk to each other. @@ -78,31 +83,34 @@ By leveraging incident response and collaboration tools that integrate with fami ![Image 4: AI Kubernetes assistant helps find errors with cluster management or deployment for quick K8s troubleshooting](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64b96a341b5ccb59ffb87637_act-on-events.gif) -\### Establish a Feedback Loop +### Establish a Feedback Loop To ensure continuous improvement in troubleshooting Kubernetes-based applications across multiple clusters, it is essential to establish a feedback loop. This feedback loop involves gathering comprehensive data about the application's behavior through tools like observability, performance monitoring, tracing, and logging. By providing developers with access to relevant data, they can gain insights into the application's performance and identify potential issues more effectively. This feedback loop enables prompt issue resolution, allowing for continuous enhancements and optimizations. -\### Streamline Command Execution +### Streamline Command Execution Efficiency is key when troubleshooting Kubernetes across multiple clusters. Streamline command execution by leveraging tools that enable you to execute commands simultaneously across all connected clusters. This eliminates the need to perform actions individually on each cluster, saving time and effort. -\### Automate Observability and Delivery Processes +### Automate Observability and Delivery Processes Automation plays a crucial role in streamlining troubleshooting processes and ensuring the reliability of Kubernetes clusters. By automating the collection, aggregation, and correlation of observability data, such as metrics, logs, events, and traces, teams can significantly reduce the time and effort required for monitoring and managing services. Automated observability processes enable quick identification of anomalies or performance deviations, allowing for proactive troubleshooting and resolution. ![Image 5: Scrolling through kubectl logs in slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64b9697c82dc01bf31f863b1_automation.gif) -\## Some Common Kubernetes Errors +Some Common Kubernetes Errors +----------------------------- -\* \[CreateContainerConfigError\](https://botkube.io/learn/createcontainererror) -\* \[CrashLoopBackOff\](https://botkube.io/learn/how-to-debug-crashloopbackoff) -\* \[OOMKilled\](https://botkube.io/learn/what-is-oomkilled) +* [CreateContainerConfigError](https://botkube.io/learn/createcontainererror) +* [CrashLoopBackOff](https://botkube.io/learn/how-to-debug-crashloopbackoff) +* [OOMKilled](https://botkube.io/learn/what-is-oomkilled) -\## Conclusion +Conclusion +---------- Troubleshooting Kubernetes-based applications across multiple clusters requires a strategic approach. By centralizing monitoring, utilizing multi-cluster management features, streamlining command execution, and promoting effective incident response and collaboration, teams can streamline troubleshooting processes in multi-cluster environments. Integrating tools and solutions like Botkube can significantly enhance efficiency and ensure reliable performance across all Kubernetes clusters. -\## CNCF Islamabad and Botkube Webinar +CNCF Islamabad and Botkube Webinar +---------------------------------- In conclusion, effective Kubernetes troubleshooting is paramount for maintaining the stability and performance of multiple clusters. If you are looking for a deep dive on this topic, I encourage you to watch the CNCF Islamabad webinar I did in August 2023. I presented more on this topic with a demo of Botkube and answered Kubernetes troubleshooting questions. diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-1-6-release.md b/hack/assistant-setup/content/botkube.io__blog__botkube-1-6-release.md index 9f02830..ed7f0bf 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-1-6-release.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-1-6-release.md @@ -25,7 +25,7 @@ This release marks a milestone in providing a smoother and faster path to Kubern * [Various Bug Fixes and Small Improvements](#various-bug-fixes-and-small-improvements) * [Upgrade Today](#upgrade-today) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -50,6 +50,10 @@ One of the standout features in v1.6 is the enhancement of our [Microsoft Teams We’ll have more announcements and tutorials this week. In the meantime, [read the thorough documentation](https://docs.botkube.io/installation/teams/) or [reach out to our product leader, Blair](mailto:blair@kubeshop.io), for onboarding assistance or feedback. We’d love to hear about your experience and how we can improve. +### 🎉 May 2024 Microsoft Teams Update + +Botkube's Microsoft Teams Kubernetes Integration has officialy been [listed on the Teams App Store](https://botkube.io/blog/botkube-is-now-verified-in-microsoft-appsource)! We have moved from a custom app that needs to be downloaded to Teams & approved to being able to be added to your Teams environment with one click! Microsoft has chosen to include us in a list of helpful Copilots solving DevOps infostructure issues. Ours of course has a heavy focus on Kubernetes infrastructure. So if you run k8s and use Microsoft Teams, try us out now! + Cloud Slack for Everyone: Swift and Effortless ---------------------------------------------- @@ -76,4 +80,4 @@ Upgrade Today The Botkube 1.6 release is a leap forward in simplifying Kubernetes management and collaboration. Embrace the power of ChatOps in Microsoft Teams, enjoy Cloud Slack with ease, and experience the swift onboarding that gets your Kubernetes monitoring up and running in record time. -[Visit our documentation](http://docs.botkube.io/) for detailed instructions on upgrading to Botkube 1.6 and unlocking the full potential of Kubernetes management and monitoring. Your journey to streamlined collaboration starts now! +[Visit our documentation](https://docs.botkube.io/) for detailed instructions on upgrading to Botkube 1.6 and unlocking the full potential of Kubernetes management and monitoring. Your journey to streamlined collaboration starts now! diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-5-essential-devopstasks-to-automate.md b/hack/assistant-setup/content/botkube.io__blog__botkube-5-essential-devopstasks-to-automate.md index a15f1c9..5a98656 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-5-essential-devopstasks-to-automate.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-5-essential-devopstasks-to-automate.md @@ -24,7 +24,7 @@ Check out these five key Kubernetes tasks that Botkube can optimize and automate * [Task 5: K8s Configuration Management](#task-5-k8s-configuration-management) * [Conclusion](#conclusion) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! @@ -93,8 +93,6 @@ This scenario illustrates Botkube's log management functionality: when a respons 3. If the output is too large, Botkube will upload the response as a file in a reply thread. You can view the complete output by expanding this thread. -‍ - 4. For more specific log details, such as filtering for log lines containing the word "Configuration," enter "Configuration" into the Filter Output input box and hit enter. Botkube will then present you with the filtered log results. ![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65a6ef187b398bc7569516e9_zF_0o6ZVI24nmlcit4DYR0Pi6Pev79rAgvM-RMuxApGnmhBQQLdkb8795ObG5Ez905YtVhUwT5Q3t6g5Jc2I5OQU_E8QB_E9VeGfyT0yiDd21YQuTnwQdPzdOsrg-gcoiq8z2FoxyR0NNq_kobJ-sKE.png) @@ -110,12 +108,8 @@ Task 4: GitOps Workflows Implementing [GitOps](https://botkube.io/blog/enhancing-gitops-workflows-with-botkube) practices in Kubernetes is crucial for engineering teams as it automates the management of Kubernetes resources through synchronization with Git repositories. This approach fosters collaboration, facilitates version control, and simplifies issue tracking within the team. Botkube plays a significant role in enhancing GitOps workflows by reducing manual intervention and providing real-time monitoring and collaboration capabilities. -‍ - A notable feature is the [Botkube Flux plugin](https://botkube.io/blog/introducing-botkubes-integration-with-flux), which streamlines the integration of Kubernetes clusters, GitHub repositories, and the Flux CLI. This plugin empowers users to execute Flux CLI commands directly from their preferred communication platforms, ensuring mobile-friendly interactivity. It automates tasks like monitoring GitHub pull requests, notifying users about new pull requests, and rendering event-aware buttons for running diff reports. Without the plugin, these tasks would involve multiple manual steps, elevating the risk of errors and hindering productivity. -‍ - In summary, Botkube's GitOps plugins bridge the gap between GitOps tools and communication platforms, offering an efficient, interactive, and user-friendly approach to managing Kubernetes deployments. Task 5: K8s Configuration Management @@ -127,8 +121,6 @@ Task 5: K8s Configuration Management Managing Kubernetes configurations can be challenging, especially when done manually. Traditional methods involve navigating through multiple interfaces and complex command lines, which can be time-consuming and prone to errors. This complexity often poses a significant hurdle in efficiently managing Helm releases. -‍ - [Botkube's Helm executor plugin](https://botkube.io/learn/helm-charts) enhances this process.This plugin allows users to run Helm commands directly from their chat interface. This integration streamlines Kubernetes configuration management, making it more accessible and less error-prone compared to manual methods. ![Image 11](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65a6ef185ae0f9b8f277eca9_dMnDLc0lomaKWLSqQX2mtc8ozegyDiwz0vvdpvZRw0Y6BMDIidfU_tYNbb0nsO5JczHDgAyUU_eoOdTsTLAsAVelHY6cWwtdB8OaP9wkIby5oV2pAohoonjFF6y-rCOjyuPrA210xtL6dL97M3aCESM.gif) diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-is-now-verified-in-microsoft-appsource.md b/hack/assistant-setup/content/botkube.io__blog__botkube-is-now-verified-in-microsoft-appsource.md new file mode 100644 index 0000000..67fca9f --- /dev/null +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-is-now-verified-in-microsoft-appsource.md @@ -0,0 +1,69 @@ +Title: Botkube is Now Verified in Microsoft AppSource! + +URL Source: https://botkube.io/blog/botkube-is-now-verified-in-microsoft-appsource + +Published Time: May 21, 2024 + +Markdown Content: +![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/636df3fb36b4e60920a3b1b2_hPLC9itV8zp-raGDFmvOZMfn2hV8RFcl237qzT8Wa1g.jpeg) + +Kelly Revenaugh + +Developer Relations Lead + +Botkube + +It's official: Botkube has undergone security and compliance checks by Microsoft to become verified in the AppSource Marketplace—strengthening user experience and our partnership with Microsoft. + +### Table of Contents + +* [Meet Botkube: Your AI-Powered Kubernetes Assistant](#meet-botkube-your-ai-powered-kubernetes-assistant) +* [What This Means for You](#what-this-means-for-you) +* [Strengthened Microsoft Partnership](#strengthened-microsoft-partnership) +* [Microsoft Build Conference](#microsoft-build-conference) +* [Botkube + Microsoft Teams](#botkube-microsoft-teams) + +#### Start Using Botkube AI Assistant Today! + +#### Get started with Botkube Cloud + +![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664c8d7edeb8841db76de5a6_Screenshot_Template_Botkube%20(2000%20x%201500%20px).png) + +Botkube listing in the Microsoft AppSource marketplace + +We are happy to announce that Botkube is now a verified app in the Microsoft [AppSource Marketplace](https://appsource.microsoft.com/en-us/product/office/WA200006966?exp=ubp8&tab=Overview)! We are committed to delivering a secure and seamless experience for our users. This verification paves the way for even stronger collaboration with Microsoft. + +Meet Botkube: Your AI-Powered Kubernetes Assistant +-------------------------------------------------- + +If you’re new here, Botkube is an intelligent, AI-powered assistant designed to simplify and enhance your Kubernetes management experience. By seamlessly integrating with [Microsoft Teams](https://botkube.io/integration/teams), Botkube enables you to monitor, debug, and manage your Kubernetes clusters directly from your Teams workspace. Our powerful assistant provides real-time alerts, remediation recommendations (and K8s manifests to fix errors!), and automated actions — all aimed at streamlining your DevOps workflows. + +What This Means for You +----------------------- + +### Enhanced Security + +Botkube has undergone rigorous security and compliance checks by Microsoft to become a verified application in the AppSource Marketplace. Microsoft 365 App Compliance Program offers assurance to organizations that their data and privacy are secured when deploying 3rd party applications. This ensures that Botkube meets the highest standards of security, giving you peace of mind as you integrate all of Botkube’s features into your workflows. + +### Simplified Setup + +The set up process of [Botkube for Microsoft Teams takes minutes to get started](https://botkube.io/blog/revolutionize-your-kubernetes-troubleshooting-workflow-with-microsoft-teams-and-botkube). The verification in the Microsoft Teams AppSource Marketplace means that setting up Botkube is now easier than ever. With streamlined installation and configuration processes, you can get Botkube up and running in just a few clicks, allowing you to focus more crucial DevOps tasks and less on setup. + +### Improved Efficiency + +With Botkube, you can manage your Kubernetes clusters more efficiently. Receive instant notifications about critical issues, execute commands to troubleshoot problems, and get recommendations for best practices — all without leaving Microsoft Teams. This level of integration enhances your team's collaboration and reduces the time spent switching between tools. + +Strengthened Microsoft Partnership +---------------------------------- + +This verification not only validates our app's quality but also strengthens our relationship with Microsoft. As we continue to collaborate closely, you can expect more innovative features and seamless integrations that leverage the full potential of Microsoft Teams and the broader Microsoft ecosystem. Managing Azure Kubernetes Services (AKS) makes more sense when combined with the power of Microsoft Teams. + +Microsoft Build Conference +-------------------------- + +If you’re attending the [Microsoft Build 2024 conference](https://build.microsoft.com/en-US/home) this week, keep an eye for our familiar logo. This year’s theme focuses on AI — creating AI-powered copilots (like our [Kubernetes CoPilot](https://botkube.io/learn/kubernetes-copilot) features to help you manage and troubleshoot Kubernetes tasks), generative AI, securing applications, and more — emphasizing the transformative potential of AI in enhancing developer productivity and innovation. We’re excited and committed to continue to build Botkube’s AI-powered Kubernetes assistant with great partners like Microsoft. + +Botkube + Microsoft Teams +------------------------- + +Try it for yourself! Follow our **[step-by-step tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams)** to set up Botkube using our web app or check out our **[engineering blog](https://botkube.io/blog/microsoft-teams-integration-for-botkube-a-technical-journey)** for a deep dive about how we made the new teams app. We're excited to hear how you use Botkube. diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-open-source-to-cloud-migration.md b/hack/assistant-setup/content/botkube.io__blog__botkube-open-source-to-cloud-migration.md index a896071..37892f0 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-open-source-to-cloud-migration.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-open-source-to-cloud-migration.md @@ -17,72 +17,78 @@ With our new CLI migration tool, current open-source users are able to migrate t ### Table of Contents -* [Differences Between Botkube Open Source and Botkube Cloud](#differences-between-botkube-open-source-and-botkube-cloud-2) -* [What is the Botkube CLI?](#what-is-the-botkube-cli--2) -* [How to Migrate Your Existing Botkube Account to Cloud](#how-to-migrate-your-existing-botkube-account-to-cloud-2) -* [Give it a try!](#give-it-a-try--2) +* [Differences Between Botkube Open Source and Botkube Cloud](#differences-between-botkube-open-source-and-botkube-cloud) +* [What is the Botkube CLI?](#what-is-the-botkube-cli-) +* [How to Migrate Your Existing Botkube Account to Cloud](#how-to-migrate-your-existing-botkube-account-to-cloud) +* [Give it a try!](#give-it-a-try-) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud -With our latest release, we’ve made transitioning from the open source version of Botkube to our Cloud version even easier. \[Botkube Cloud\](http://botkube.io/) is built on top of our open source core and gives users even more benefits – including audit and event logs to track changes in your Kubernetes clusters, an easy-to-use visual dashboard to configure your settings, multi-cluster management, and much more. +With our latest release, we’ve made transitioning from the open source version of Botkube to our Cloud version even easier. [Botkube Cloud](http://botkube.io/) is built on top of our open source core and gives users even more benefits – including audit and event logs to track changes in your Kubernetes clusters, an easy-to-use visual dashboard to configure your settings, multi-cluster management, and much more. -With our new \[CLI migration too\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud)l, current open-source users are able to migrate their data and configurations over to the Cloud version of Botkube with a few simple steps. +With our new [CLI migration too](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud)l, current open-source users are able to migrate their data and configurations over to the Cloud version of Botkube with a few simple steps. + +Differences Between Botkube Open Source and Botkube Cloud +--------------------------------------------------------- -\## Differences Between Botkube Open Source and Botkube Cloud We believe that both the open source version and cloud version of Botkube help supercharge Kubernetes teams’ technical workflows with seamless alert consolidation, monitoring, and troubleshooting – all from the same communication platforms that teams use every day. Botkube was developed in 2019 and has helped hundreds of teams collaborate and take on challenging Kubernetes-related tasks each day. We’ve create Botkube Cloud for teams that have growing multi-cluster environments and/or want to take of advanced features, not available in our open source version. Here are some of the highlights of Botkube Cloud:**‍** -\*\*Easy configuration and installation\*\* +**Easy configuration and installation** Botkube Cloud makes it easy to configure and install Botkube in a new Kubernetes cluster. Before Botkube Cloud, users had to manually install Botkube with a YAML file and update their Helm charts manually for each configuration change. To install with Cloud, just create an instance in the web app, then configure your communication platforms and Botkube plugins. You'll get an installation command that you can copy and paste to install Botkube. Once installed, Botkube will synchronize its configuration with the cloud and any changes you make in the web management interface will automatically be pushed to the cluster.**‍** -\*\*Multi-cluster management\*\* +**Multi-cluster management** ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64d5072717f5862f1c0ba90e_64385d9ea0e4ca059b5a7a1d_Botkube.png) -Botkube Cloud makes it easy to manage Botkube in multiple Kubernetes clusters. Previously,  if users wanted to use Botkube executors (e.g. kubectl commands) and have multiple Kubernetes clusters, users needed to create and install a Botkube Slack app for each cluster. +Botkube Cloud makes it easy to manage Botkube in multiple Kubernetes clusters. Previously, if users wanted to use Botkube executors (e.g. kubectl commands) and have multiple Kubernetes clusters, users needed to create and install a Botkube Slack app for each cluster. Today, with Botkube Cloud, you can see the status and manage configuration for all of your clusters in one place in the web hosted app. When adding new clusters, you can copy an existing configuration to get going even faster.**‍** -\*\*Advanced Multi-Cluster Slack bot\*\* +**Advanced Multi-Cluster Slack bot** The Botkube Cloud Slack bot can be installed in your Slack workspace with a single click. It allows you to see your Slack channels in your instance configuration, ensure the Botkube bot is invited to the correct channels, and select which channels to use with Botkube plugins. It uses Botkube cloud services to route executor commands to the correct Kubernetes cluster so you can control multiple clusters from one Slack channel. This solves the multi-cluster problem that many open source users encountered previously.**‍** -\*\*Audit and Event logs\*\* +**Audit and Event logs** ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64d507420a0b1ce9ecb2d0dd_64385e6998cfac2dfc8d887f_Event%20and%20Audit%20Logs.png) Botkube Cloud collects and aggregates audit and event logs from all of your Botkube-enabled Kubernetes clusters. All Botkube notifications are stored as events and any Botkube executor commands are stored as audit log entries. Logs can be filtered and sorted and you can see what activity is happening in your clusters, correlate events, and find the root cause of problems that arise.**‍** -\## What is the Botkube CLI? +What is the Botkube CLI? +------------------------ -\[Botkube CLI\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) is a tool for installing and migrating Botkube installations from an open source instance to a Botkube Cloud instance. +[Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) is a tool for installing and migrating Botkube installations from an open source instance to a Botkube Cloud instance. Botkube CLI is the best way to do an interactive installation of Botkube. The botkube install command runs the installation process and reports the progress and any errors back to you immediately. For automated installations using CI or GitOps tools, you can still use Helm to install the Botkube Helm chart unattended.**‍** -\## How to Migrate Your Existing Botkube Account to Cloud +How to Migrate Your Existing Botkube Account to Cloud +----------------------------------------------------- If you are using Botkube in your Kubernetes cluster with local configuration, the CLI provides a simple on-ramp to the advanced Botkube Cloud services. Migrating to the Cloud version of Botkube is extremely easy and only takes a few commands! -Here's how to \[migrate your Botkube instance\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud): - -1\. Create a \[Botkube Cloud\](https://app.botkube.io/) account - -2\. Install the \[Botkube CLI\](https://docs.botkube.io/cli/getting-started) - -3\. Run \`botkube login\` to \[authenticate\](https://docs.botkube.io/cli/getting-started#first-use) your CLI +Here's how to [migrate your Botkube instance](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud): -4\. Run \`botkube migrate\` to \[move your configuration\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to the cloud and connect your Botkube installation automatically +1. Create a [Botkube Cloud](https://app.botkube.io/) account + +2. Install the [Botkube CLI](https://docs.botkube.io/cli/getting-started) + +3. Run `botkube login` to [authenticate](https://docs.botkube.io/cli/getting-started#first-use) your CLI + +4. Run `botkube migrate` to [move your configuration](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to the cloud and connect your Botkube installation automatically + -\## Give it a try! +Give it a try! +-------------- **‍**We’re here to help! If you need some help about migrating over, please reach out to us on the Botkube Slack workspace. Our team is happy to lend a hand as you make the transition over and answer any questions you may have. We’d love for you to try out the advanced features that we’ve developed over the past few months to make managing and troubleshooting your Kubernetes clusters as painless as possible. -Existing Botkube users can take advantage of new features like the interactive control plane and configuration dashboard immediately with the Free tier after migrating. New Cloud users also receive the Pro tier for free with a 30-day trial period (no credit card required!). If your team is looking to upgrade to the Pro or Enterprise tiers, we are giving a special discounted pricing to existing Botkube users. Please reach out to our \[project leader, Blair\](mailto:blair@kubeshop.io), to inquire about the discount. +Existing Botkube users can take advantage of new features like the interactive control plane and configuration dashboard immediately with the Free tier after migrating. New Cloud users also receive the Pro tier for free with a 30-day trial period (no credit card required!). If your team is looking to upgrade to the Pro or Enterprise tiers, we are giving a special discounted pricing to existing Botkube users. Please reach out to our [project leader, Blair](mailto:blair@kubeshop.io), to inquire about the discount. Hope you enjoy the new features. diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-socket-slack-getting-started.md b/hack/assistant-setup/content/botkube.io__blog__botkube-socket-slack-getting-started.md index 1aa7025..5f997b6 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-socket-slack-getting-started.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-socket-slack-getting-started.md @@ -1,105 +1,132 @@ -Title: Getting Started with the New Botkube Slack App +Title: Getting Started with the New Botkube App for Slack URL Source: https://botkube.io/blog/botkube-socket-slack-getting-started Published Time: Dec 05, 2022 Markdown Content: -The \[new Botkube Slack app\](https://docs.botkube.io/installation/slack/) provides more great interactive features and better security when compared to the \[legacy Botkube Slack app\](https://docs.botkube.io/0.15/installation/slack/). We announced the new socket mode Slack app in the \[Botkube v0.14.0 release notes\](https://botkube.io/blog/botkube-v014-release-notes#new-botkube-slack-app). The new Slack app has some specific requirements and a new installation process, so let's have a look at how to get started with the most modern \[ChatOps tool for Kubernetes!\](http://botkube.io) You can also use the Botkube \[installation documentation\](https://docs.botkube.io/installation/slack/) to get started, but this post is to give you more context about the changes to the new app and some caveats to watch out for. +![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/636df3edbf5389368f6bef9c_cYbM1beBC5tQnSPVfaXCg_W9tkHugByZV2TOleN6pTw.jpeg) -This blog post assumes that we're starting a completely new Botkube installation. +Blair Rampling -Requirements: +Product Leader -\- A Slack workspace where you have permission to install apps and create channels +Botkube -\- A Kubernetes cluster where you have access to install Botkube +The new Botkube Slack app provides more great interactive features and better security when compared to the legacy Botkube Slack app. -\- Working kubectl and helm installation +### Table of Contents -Multi-cluster caveat: The architecture of socket-based Slack apps is different from the older Slack app. If you are using Botkube executors (e.g. kubectl commands) and have multiple Kubernetes clusters, you need to install a Botkube Slack app for each cluster. This is required so that the Slack to Botkube connections go to the right place. We recommend you set the name of each app to reflect the cluster it will connect to in the next steps. +* [Installing the Slack App in your workspace](#installing-the-slack-app-in-your-workspace) +* [Botkube Slack App Tokens](#botkube-slack-app-tokens) +* [Invite Botkube to a channel](#invite-botkube-to-a-channel) +* [Installing Botkube](#installing-botkube) +* [Explore the New Slack App](#explore-the-new-slack-app) +* [What Could Go Wrong?](#what-could-go-wrong-) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -\## Installing the Slack App in your workspace +#### Start Using Botkube AI Assistant Today! -Let's go through the initial steps for installing the socket-based Slack app itself in your Slack workspace. +The [new Botkube Slack app](https://docs.botkube.io/installation/slack/) provides more great interactive features and better security when compared to the [legacy Botkube Slack app](https://docs.botkube.io/0.15/installation/slack/). We announced the new socket mode Slack app in the [Botkube v0.14.0 release notes](https://botkube.io/blog/botkube-v014-release-notes#new-botkube-slack-app). The new Slack app has some specific requirements and a new installation process, so let's have a look at how to get started with the most modern [ChatOps tool for Kubernetes!](http://botkube.io/) You can also use the Botkube [installation documentation](https://docs.botkube.io/installation/slack/) to get started, but this post is to give you more context about the changes to the new app and some caveats to watch out for. -1\. Open the \[Slack App Console\](https://api.slack.com/apps) and click Create an App or Create New App. - -2\. Click "From an app manifest" as we will use the Botkube-provided manifest for the new app. - -![Image 1: Kubernetes Deployment Setup wizard](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd5bd91dbba0faccc21_9xHsAYF1sDUzf92VzItiVmpg6pPfW8mLBma5StF_-j8ZfzyqSgBnPbqpPnTLGLzn2nCGy_wEPBw9E5dpwbZBNXbKm0jSWixj-ufmFk-7JtqPw5TXhXO4a4LpwXLVJgh2pRe2U-bx0KhPJoUCB5EkdhT20QMTg4VVQvty5IqPCG3ITKmfL_f1nNdZQ_hlcQ.png) - -3\. Select the workspace into which you want to install the app and click Next. - -4\. You can find the latest app manifests \[in the Botkube documentation\](https://docs.botkube.io/installation/slack/#create-slack-app). There are three different YAML manifests available. The manifests vary based on whether you want to use Botkube in a public Slack channel, a private channel, or both. This is one of the new improved security features that limits the scope of the token that Botkube uses. This is an example of the manifest for both public and private channels: - -\`\`\`bash - -display\_information: - name: Botkube - description: Botkube - background\_color: "#a653a6" -features: - bot\_user: -   display\_name: Botkube -   always\_online: false -oauth\_config: - scopes: -   bot: -     - channels:read -     - groups:read -     - app\_mentions:read -     - chat:write -     - files:write -settings: - event\_subscriptions: -   bot\_events: -     - app\_mention - interactivity: -   is\_enabled: true - org\_deploy\_enabled: false - socket\_mode\_enabled: true - token\_rotation\_enabled: false - -\`\`\` +This blog post assumes that we're starting a completely new Botkube installation. -If you are using Botkube with multiple Kubernetes clusters as mentioned in the earlier caveat, set the name and description fields to something specific to the cluster this app will manage. This will make it clear in Slack itself which bot maps to which cluster. Paste this YAML into the app manifest dialog and click Next. +Requirements: -![Image 2: Kubernetes Manifest file for Botkube](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd59be2c7f0b4231ab2_rT70Rd59URrbNTS0SF4iTHlKyh9YkqZylD9a_vi_umpJJghbKTkrlq4dc1SUb1JmLa-TvD-Zv0fgQZiAdNgv--_ptj2Jf7vwNDxX20KMin3O80Xrjyl1BzDCM8Sfe2MXizEODQqKb1Cuz-Rlz_69CzhYKRhFr12eYAXezbr5YnRkjw_k6VUft--i1led9Q.png) +* A Slack workspace where you have permission to install apps and create channels + +* A Kubernetes cluster where you have access to install Botkube + +* Working kubectl and helm installation + -5\. You now have a chance to review the app settings. Click the Create button. +Multi-cluster caveat: The architecture of socket-based Slack apps is different from the older Slack app. If you are using Botkube executors (e.g. kubectl commands) and have multiple Kubernetes clusters, you need to install a Botkube Slack app for each cluster. This is required so that the Slack to Botkube connections go to the right place. We recommend you set the name of each app to reflect the cluster it will connect to in the next steps. + +Installing the Slack App in your workspace +------------------------------------------ -6\. Click the Install to Workspace button to add this newly created app to the Slack Workspace. +Let's go through the initial steps for installing the socket-based Slack app itself in your Slack workspace. -![Image 3: Slack Webhook API for building Slack Bots](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd53a3620a880c1429d_2lBQzqtvc7o-h5cHB7Hp-qyFgGwlqldNSxf1lHVyYUDUwGBXgpmBEPHOH5xj_bEQnudTJx6d1agQgl6EZoptfPbrgxwWU3hwn-C-0-23ImODUiph_cvEFxMcMPEjewJEeL8Gvj-NNj_ysyTstwz8fFB5jtyGIy6-dmpTM1v8D097Tx6VQ12Q-mumwzFGhA.png) +1. Open the [Slack App Console](https://api.slack.com/apps) and click Create an App or Create New App. + +2. Click "From an app manifest" as we will use the Botkube-provided manifest for the new app. + + +![Image 2: Kubernetes Deployment Setup wizard](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd5bd91dbba0faccc21_9xHsAYF1sDUzf92VzItiVmpg6pPfW8mLBma5StF_-j8ZfzyqSgBnPbqpPnTLGLzn2nCGy_wEPBw9E5dpwbZBNXbKm0jSWixj-ufmFk-7JtqPw5TXhXO4a4LpwXLVJgh2pRe2U-bx0KhPJoUCB5EkdhT20QMTg4VVQvty5IqPCG3ITKmfL_f1nNdZQ_hlcQ.png) + +3. Select the workspace into which you want to install the app and click Next. + +4. You can find the latest app manifests [in the Botkube documentation](https://docs.botkube.io/installation/slack/#create-slack-app). There are three different YAML manifests available. The manifests vary based on whether you want to use Botkube in a public Slack channel, a private channel, or both. This is one of the new improved security features that limits the scope of the token that Botkube uses. This is an example of the manifest for both public and private channels: + + + display_information: + name: Botkube + description: Botkube + background_color: "#a653a6" + features: + bot_user: + display_name: Botkube + always_online: false + oauth_config: + scopes: + bot: + - channels:read + - groups:read + - app_mentions:read + - chat:write + - files:write + settings: + event_subscriptions: + bot_events: + - app_mention + interactivity: + is_enabled: true + org_deploy_enabled: false + socket_mode_enabled: true + token_rotation_enabled: false -7\. Review the permissions and click Allow. The app is now installed in your Slack workspace. +If you are using Botkube with multiple Kubernetes clusters as mentioned in the earlier caveat, set the name and description fields to something specific to the cluster this app will manage. This will make it clear in Slack itself which bot maps to which cluster. Paste this YAML into the app manifest dialog and click Next. -![Image 4: Allow Botkube permissions into Group Channels](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd5d46fe3cc1ec655d1_kR2N0u3ZQlfHarVS2aC5lfyerRXjRmE25noMdLH2yp3l1Rd8gNeplU-JbQ4aak4LlhHk-H7-G3nxO8CXJyD5eH0mhy5-69gJsjwSUJaWeHijGc94iFse5AYCKYEG9-fxZ5Q57C9JUcPTfRsqiiPpBzU4Bc_7MlJo2lzKrnBhtudCygDS0M35okbc39reEg.png) +![Image 3: Kubernetes Manifest file for Botkube](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd59be2c7f0b4231ab2_rT70Rd59URrbNTS0SF4iTHlKyh9YkqZylD9a_vi_umpJJghbKTkrlq4dc1SUb1JmLa-TvD-Zv0fgQZiAdNgv--_ptj2Jf7vwNDxX20KMin3O80Xrjyl1BzDCM8Sfe2MXizEODQqKb1Cuz-Rlz_69CzhYKRhFr12eYAXezbr5YnRkjw_k6VUft--i1led9Q.png) -\## Botkube Slack App Tokens +5. You now have a chance to review the app settings. Click the Create button. + +6. Click the Install to Workspace button to add this newly created app to the Slack Workspace. + -Now that the Slack app is installed in your workspace, you can proceed to installing Botkube in your Kubernetes cluster. First, you need two tokens, a bot token and an app-level token. This is another additional security measure in the new Slack app. You can see details on these token types in the \[Slack documentation\](https://api.slack.com/authentication/token-types). You will use these tokens in the Botkube installation process. +![Image 4: Slack Webhook API for building Slack Bots](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd53a3620a880c1429d_2lBQzqtvc7o-h5cHB7Hp-qyFgGwlqldNSxf1lHVyYUDUwGBXgpmBEPHOH5xj_bEQnudTJx6d1agQgl6EZoptfPbrgxwWU3hwn-C-0-23ImODUiph_cvEFxMcMPEjewJEeL8Gvj-NNj_ysyTstwz8fFB5jtyGIy6-dmpTM1v8D097Tx6VQ12Q-mumwzFGhA.png) -1\. From the Slack app page where you left off after installing the app in your workspace, select OAuth & Permissions in the left navigation bar. +7. Review the permissions and click Allow. The app is now installed in your Slack workspace. -2\. Copy the Bot User OAuth Token shown here. +![Image 5: Allow Botkube permissions into Group Channels](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd5d46fe3cc1ec655d1_kR2N0u3ZQlfHarVS2aC5lfyerRXjRmE25noMdLH2yp3l1Rd8gNeplU-JbQ4aak4LlhHk-H7-G3nxO8CXJyD5eH0mhy5-69gJsjwSUJaWeHijGc94iFse5AYCKYEG9-fxZ5Q57C9JUcPTfRsqiiPpBzU4Bc_7MlJo2lzKrnBhtudCygDS0M35okbc39reEg.png) -![Image 5: Oauth Tokens for Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd57f6d2658565c2802_EbTpqUY7Kxtxi7pDnIVQREtoVR7lLKJaHYlFSo5Ald7PPzcwWuoNxhTIfjSu5b8on04-YKAtxwuwBPSAlO-MBAGNkM9RsjYLb-D9prje8FoOORshIpi3AUvnyPP9aFj08weq-EjK0bMLtb_II93-zftUqceLGV3SropKhaNaRckmI7UHx3BMPSpyU0JhSQ.png) +Botkube Slack App Tokens +------------------------ -3\. Click Basic Information in the left navigation bar. +Now that the Slack app is installed in your workspace, you can proceed to installing Botkube in your Kubernetes cluster. First, you need two tokens, a bot token and an app-level token. This is another additional security measure in the new Slack app. You can see details on these token types in the [Slack documentation](https://api.slack.com/authentication/token-types). You will use these tokens in the Botkube installation process. -4\. Scroll down to the App-Level Tokens section and click the Generate Token and Scopes button. +1. From the Slack app page where you left off after installing the app in your workspace, select OAuth & Permissions in the left navigation bar. + +2. Copy the Bot User OAuth Token shown here. + -5\. Give the token an appropriate name and click Add Scope. +![Image 6: Oauth Tokens for Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd57f6d2658565c2802_EbTpqUY7Kxtxi7pDnIVQREtoVR7lLKJaHYlFSo5Ald7PPzcwWuoNxhTIfjSu5b8on04-YKAtxwuwBPSAlO-MBAGNkM9RsjYLb-D9prje8FoOORshIpi3AUvnyPP9aFj08weq-EjK0bMLtb_II93-zftUqceLGV3SropKhaNaRckmI7UHx3BMPSpyU0JhSQ.png) -6\. Select the connections:write scope, then click the Generate button. +3. Click Basic Information in the left navigation bar. + +4. Scroll down to the App-Level Tokens section and click the Generate Token and Scopes button. + +5. Give the token an appropriate name and click Add Scope. + +6. Select the connections:write scope, then click the Generate button. + -![Image 6: Generating app token for custom Slack Bot](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd57787389c7b4d6eac_Wl7cvk72vCB_r0giRxWLTQlmew8rmPFkFTZUaj7urPf2C4LM_YaVuO5XrDXOl9Ql58cOrnQT3LiDl4dcY0PjyIUWHivxBlIsTOsWdYX4un0JJaI8DIQfIxOfTHjVxD50Yk9QaLTQ_zlbcmhdZzjZN_1-4FSFZCYzO8k8N1uLxDQRcIXRZZIAMLFQJuG5iw.png) +![Image 7: Generating app token for custom Slack Bot](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd57787389c7b4d6eac_Wl7cvk72vCB_r0giRxWLTQlmew8rmPFkFTZUaj7urPf2C4LM_YaVuO5XrDXOl9Ql58cOrnQT3LiDl4dcY0PjyIUWHivxBlIsTOsWdYX4un0JJaI8DIQfIxOfTHjVxD50Yk9QaLTQ_zlbcmhdZzjZN_1-4FSFZCYzO8k8N1uLxDQRcIXRZZIAMLFQJuG5iw.png) -7\. Copy the created token and click Done. +7. Copy the created token and click Done. -\## Invite Botkube to a channel +Invite Botkube to a channel +--------------------------- Now that everything is set up for the Slack app, you need to invite the Botkube bot to a Slack channel. This is the channel that you will use for notifications and command execution and is required for the Botkube configuration before it is installed in Kubernetes. @@ -107,94 +134,96 @@ You should see a new Slack bot in your workspace under "Apps" with the name that Invite the bot to the channel. The easiest way to do this is to open the Slack channel and send a message to _@botkube bot name_. You will be prompted to add the bot to the channel, click the Add to Channel button. -![Image 7: Adding Botube to your cluster chat channel](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd5bd91db676aaccc2a_5FVGjg5gJZRQdEsdM2zokGiw_bH5m2tUJm100sy1unbpCAwupyN2hYkXLc21-emgPzST00zRg5srK_eQXKsJ_X8xnBRe4tHcyCnvH97uePNhnRt4TA2B6y0sqr-Um2-V1V9U-mJcpFvuPxo5LzH3kLBMnSbHWnycZ6BTSNb7e9issQ2kcAwLv6oue8ePUg.png) +![Image 8: Adding Botube to your cluster chat channel](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd5bd91db676aaccc2a_5FVGjg5gJZRQdEsdM2zokGiw_bH5m2tUJm100sy1unbpCAwupyN2hYkXLc21-emgPzST00zRg5srK_eQXKsJ_X8xnBRe4tHcyCnvH97uePNhnRt4TA2B6y0sqr-Um2-V1V9U-mJcpFvuPxo5LzH3kLBMnSbHWnycZ6BTSNb7e9issQ2kcAwLv6oue8ePUg.png) -\## Installing Botkube +Installing Botkube +------------------ -We now have everything we need to configure and install Botkube. We will use helm to install it in a Kubernetes cluster. First, configure some environment variables that we will pass to the \`helm install\` command. +We now have everything we need to configure and install Botkube. We will use helm to install it in a Kubernetes cluster. First, configure some environment variables that we will pass to the `helm install` command. The Slack app bot token from earlier: -\`export SLACK\_API\_BOT\_TOKEN="xoxb-{botToken}"\` +`export SLACK_API_BOT_TOKEN="xoxb-{botToken}"` The Slack app-level token from earlier: -\`export SLACK\_API\_APP\_TOKEN="xapp-{appToken}"\` +`export SLACK_API_APP_TOKEN="xapp-{appToken}"` The cluster name that will be used when interacting with this instance of Botkube. Notifications and other interactive commands will use this name to reference this cluster: -\`export CLUSTER\_NAME={cluster\_name}\` +`export CLUSTER_NAME={cluster_name}` Set to true to allow execution of kubectl commands, false to make this bot instance for event notifications only: -\`export ALLOW\_KUBECTL={allow\_kubectl}\` +`export ALLOW_KUBECTL={allow_kubectl}` Specify the Slack channel name where you invited the bot earlier. Make sure you do not include the # in the channel name: -\`export SLACK\_CHANNEL\_NAME={channel\_name}\` +`export SLACK_CHANNEL_NAME={channel_name}` Now that those five environment variables are set, make sure you have the Botkube helm repository configured: -\`helm repo add botkube https://charts.botkube.io\` - -\`helm repo update\` - -Now you can simply run the helm install command shown here, or copy from the \[documentation\](https://docs.botkube.io/installation/slack/#install-botkube-backend-in-kubernetes-cluster). Note that this installs version v0.16.0 of Botkube which is the latest version as of this article: - -\`\`\` - -helm install --version v0.16.0 botkube --namespace botkube --create-namespace \\ - -\--set communications.default-group.socketSlack.enabled=true \\ - -\--set communications.default-group.socketSlack.channels.default.name=${SLACK\_CHANNEL\_NAME} \\ - -\--set communications.default-group.socketSlack.appToken=${SLACK\_API\_APP\_TOKEN} \\ - -\--set communications.default-group.socketSlack.botToken=${SLACK\_API\_BOT\_TOKEN} \\ - -\--set settings.clusterName=${CLUSTER\_NAME} \\ - -\--set executors.kubectl-read-only.kubectl.enabled=${ALLOW\_KUBECTL} \\ - -botkube/botkube - -\`\`\` +`helm repo add botkube https://charts.botkube.io` + +`helm repo update` + +Now you can simply run the helm install command shown here, or copy from the [documentation](https://docs.botkube.io/installation/slack/#install-botkube-backend-in-kubernetes-cluster). Note that this installs version v0.16.0 of Botkube which is the latest version as of this article: + + helm install --version v0.16.0 botkube --namespace botkube --create-namespace \ + + --set communications.default-group.socketSlack.enabled=true \ + + --set communications.default-group.socketSlack.channels.default.name=${SLACK_CHANNEL_NAME} \ + + --set communications.default-group.socketSlack.appToken=${SLACK_API_APP_TOKEN} \ + + --set communications.default-group.socketSlack.botToken=${SLACK_API_BOT_TOKEN} \ + + --set settings.clusterName=${CLUSTER_NAME} \ + + --set executors.kubectl-read-only.kubectl.enabled=${ALLOW_KUBECTL} \ + + botkube/botkube + If everything goes according to plans, you will see Botkube start up in the Slack channel and print the initial interactive help menu. -![Image 8: Kubernetes Alerts now actively alerting Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd53a3620ccfbc1429e_T_WAEBM055UezMigtRJmb49_MhQocCrlbgee7nW_ekbsIKvexG3KzQrjn9gUsJkbOYCGPhanm9mYriXQu0JaDrB4Pr7AsQdg3xQfLqLB6Qi1gLRay8uSRfJGke15DOmfBFWoCL9xGQTjBdi50CRU4z_thYxXVS3mASf-cbxluEV7EezHvV4sill1apGpEw.png) +![Image 9: Kubernetes Alerts now actively alerting Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638defd53a3620ccfbc1429e_T_WAEBM055UezMigtRJmb49_MhQocCrlbgee7nW_ekbsIKvexG3KzQrjn9gUsJkbOYCGPhanm9mYriXQu0JaDrB4Pr7AsQdg3xQfLqLB6Qi1gLRay8uSRfJGke15DOmfBFWoCL9xGQTjBdi50CRU4z_thYxXVS3mASf-cbxluEV7EezHvV4sill1apGpEw.png) Botkube is now ready to go! -\## Explore the New Slack App +Explore the New Slack App +------------------------- The new Botkube Slack app adds some great features that weren't previously available, particularly around interactive event response. You saw the interactive help at the end of the installation process in the previous section. You can click the buttons in the interactive help to run the commands as shown. You can also make configuration changes interactively, try clicking the Adjust notifications button and you can set notification settings using a dialog rather than editing YAML. -Another interactive feature is the Run command option shown with events. Any time an event is sent to the channel, you can select a contextual command from the Run command drop-down box. The list of commands will be only those relevant to the resource type in the event. Selecting a command will use the kubectl executor to run the command against the specific resource in the event. This saves typing out the kubectl commands by hand if you want to quickly get some information about a resource, like \`describe\` a new resource or get \`logs\` on a pod with errors. +Another interactive feature is the Run command option shown with events. Any time an event is sent to the channel, you can select a contextual command from the Run command drop-down box. The list of commands will be only those relevant to the resource type in the event. Selecting a command will use the kubectl executor to run the command against the specific resource in the event. This saves typing out the kubectl commands by hand if you want to quickly get some information about a resource, like `describe` a new resource or get `logs` on a pod with errors. -![Image 9: Run Kubernetes troubleshooting commands](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638dfeee173eea4859c13681_aeB3oRSq_LvBSkdLujcv2ls4WiN8M1W-Mo6KDzL2MmC7bQ487s0DSqXd5X4iejHKHgtD1abNQn6LEREE-J4U-TR5VEre1aATDi51rzTn2WQVogIE6qV6bFYRZe_2O7o7ZkH_5iUa5j5DcVMbzzo7mXKi3N2n04WcE7cqj5MEly6On-gg-fRNpxsmDAxn9A.png) +![Image 10: Run Kubernetes troubleshooting commands](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638dfeee173eea4859c13681_aeB3oRSq_LvBSkdLujcv2ls4WiN8M1W-Mo6KDzL2MmC7bQ487s0DSqXd5X4iejHKHgtD1abNQn6LEREE-J4U-TR5VEre1aATDi51rzTn2WQVogIE6qV6bFYRZe_2O7o7ZkH_5iUa5j5DcVMbzzo7mXKi3N2n04WcE7cqj5MEly6On-gg-fRNpxsmDAxn9A.png) -Another interactive feature can be found by running \`@botkube kubectl\` with no options. This starts the interactive command generator. This presents you with a list of verbs that you can run and as you make selections, automatically offers the contextually-relevant options in drop-down boxes until you have built a complete command. You can then click the Run command button and see the resulting output. You can also filter the output by specifying a match string in the Filter output box. +Another interactive feature can be found by running `@botkube kubectl` with no options. This starts the interactive command generator. This presents you with a list of verbs that you can run and as you make selections, automatically offers the contextually-relevant options in drop-down boxes until you have built a complete command. You can then click the Run command button and see the resulting output. You can also filter the output by specifying a match string in the Filter output box. -![Image 10: Pulling K8s Logs](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638dfeee5c48734b1151fe69_VBgNCtn62GTB7Ee-xc2z5xMXs92IaE5blN1CZPVNeV18fpAF4dSTi_giYZyoA80T4BBTnajpiBnsl7kX-xlWPKTdjTb1-6zKxNSJCQwjsqA9HyYinugvHNE-B0oQKj0MkV-FsRNbuIvmJe77SdtuFJv6tR5WxKwmvLkMzxDMFlLCA6lCItB8uUtFHS7Lmg.png) +![Image 11: Pulling K8s Logs](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/638dfeee5c48734b1151fe69_VBgNCtn62GTB7Ee-xc2z5xMXs92IaE5blN1CZPVNeV18fpAF4dSTi_giYZyoA80T4BBTnajpiBnsl7kX-xlWPKTdjTb1-6zKxNSJCQwjsqA9HyYinugvHNE-B0oQKj0MkV-FsRNbuIvmJe77SdtuFJv6tR5WxKwmvLkMzxDMFlLCA6lCItB8uUtFHS7Lmg.png) -\## What Could Go Wrong? +What Could Go Wrong? +-------------------- There are several steps in the process to look out for. These are where things could go wrong and you could end up with a Botkube installation that doesn't work. Always check the Botkube pod logs for details on why something might not be working, but here are a few things to look out for: -\- Slack App Manifest Scope: When using the YAML app manifest to create the Slack app, make sure you use the \[appropriate version\](https://docs.botkube.io/installation/slack/#create-slack-app) for public, private, or both Slack channel types. - -\- Slack app-level token scope: The app-level token needs to have the \`connections:write\` scope assigned. - -\- Multiple clusters: When using Botkube to execute commands in multiple Kubernetes clusters, you need to install a Slack app for each cluster to ensure the commands are routed to the correct one. If you are using Botkube for \*\*notifications only\*\* and have command execution disabled, you can get away with a single app for multiple clusters. If you ever do want to enable command executions though, you will need to revert to the Slack app per cluster model. - -\- Incorrect tokens: Make sure your bot and app-level tokens are correct and match those in the Slack App Console. - -\- Slack channel configuration: Make sure you omit the # when specifying the Slack channel that Botkube will use. +* Slack App Manifest Scope: When using the YAML app manifest to create the Slack app, make sure you use the [appropriate version](https://docs.botkube.io/installation/slack/#create-slack-app) for public, private, or both Slack channel types. + +* Slack app-level token scope: The app-level token needs to have the `connections:write` scope assigned. + +* Multiple clusters: When using Botkube to execute commands in multiple Kubernetes clusters, you need to install a Slack app for each cluster to ensure the commands are routed to the correct one. If you are using Botkube for **notifications only** and have command execution disabled, you can get away with a single app for multiple clusters. If you ever do want to enable command executions though, you will need to revert to the Slack app per cluster model. + +* Incorrect tokens: Make sure your bot and app-level tokens are correct and match those in the Slack App Console. + +* Slack channel configuration: Make sure you omit the # when specifying the Slack channel that Botkube will use. + -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-takes-on-amsterdam-a-kubecon-recap.md b/hack/assistant-setup/content/botkube.io__blog__botkube-takes-on-amsterdam-a-kubecon-recap.md index 430c1ae..e13e4d7 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-takes-on-amsterdam-a-kubecon-recap.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-takes-on-amsterdam-a-kubecon-recap.md @@ -25,10 +25,10 @@ The Kubecon Amsterdam conference was a wild ride, filled with exciting announcem * [Multi-Cloud & Hybrid](#multi-cloud-hybrid) * [GitOps is the New Normal](#gitops-is-the-new-normal) * [Looking to the Future](#looking-to-the-future) -* [Sign up now!](#sign-up-now-) +* [Sign up now](#sign-up-now) * [Feedback](#feedback) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! Kubecon EU was a wild ride, filled with exciting announcements, insightful talks, and countless networking opportunities. As an attendee and representative of Botkube, I had the privilege of observing the latest trends in the Kubernetes space, and I am thrilled to share my experience and my top five takeaways with you. @@ -88,10 +88,10 @@ While these five trends were certainly the most significant takeaways from Kubec In conclusion, Kubecon Amsterdam was an incredible experience, and I am grateful to have been a part of it. With so many exciting trends emerging, the future of Kubernetes looks brighter than ever, and I cannot wait to see what the next conference has in store. -Sign up now! ------------- +Sign up now +----------- -Get started with Botkube! Whether you're a seasoned Kubernetes pro or just getting started, Botkube has something to offer. Sign up now for free and join the community of users who are already benefiting from the power of Botkube. Don't miss out on this opportunity to streamline your K8s workflow and take your skills to the next level - try Botkube today! +Get started with Botkube! Whether you're a seasoned Kubernetes pro or just getting started, Botkube has something to offer. Sign up now for free and join the community of users who are already benefiting from the power of Botkube. Don't miss out on this opportunity to streamline your K8s workflow and take your skills to the next level - try Botkube today. Feedback -------- diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v0-18-0-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v0-18-0-release-notes.md index 4b69205..ed3d17f 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v0-18-0-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v0-18-0-release-notes.md @@ -17,43 +17,47 @@ Botkube v0.18.0 adds a Prometheus source plugin and command aliases. ### Table of Contents -* [Prometheus Plugin](#prometheus-plugin-2) -* [Aliases](#aliases-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [Prometheus Plugin](#prometheus-plugin) +* [Aliases](#aliases) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -Botkube v0.18.0 has arrived. We've added our first new source plugin for Prometheus, and customizable command aliases. Botkube is the most modern \[ChatOps tool for Kubernetes\](http://botkube.io)! +Botkube v0.18.0 has arrived. We've added our first new source plugin for Prometheus, and customizable command aliases. Botkube is the most modern [ChatOps tool for Kubernetes](http://botkube.io/)! -This release builds on the \[plugin system\](https://botkube.io/blog/build-a-github-issues-reporter-for-failing-kubernetes-apps-with-botkube-plugins) we released in \[Botkube v0.17.0\](https://botkube.io/blog/botkube-v017-release-notes). In that version we also released the first Botkube-developed executor \[plugin for Helm\](https://docs.botkube.io/configuration/executor/helm). We have made some other small enhancements to the plugin system in this version. +This release builds on the [plugin system](https://botkube.io/blog/build-a-github-issues-reporter-for-failing-kubernetes-apps-with-botkube-plugins) we released in [Botkube v0.17.0](https://botkube.io/blog/botkube-v017-release-notes). In that version we also released the first Botkube-developed executor [plugin for Helm](https://docs.botkube.io/configuration/executor/helm). We have made some other small enhancements to the plugin system in this version. -_If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)_ +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ -\## Prometheus Plugin +Prometheus Plugin +----------------- -While Botkube has supported Kubernetes events for a long time, K8s clusters tend to have a lot more state events and metrics going on. Typically tools like kube-state-metrics and custom applications are configured to use Prometheus as a store for metrics. Prometheus' Alertmanager can then find metrics that are in anomalous states and trigger alerts. We've built the Botkube source plugin for \[Prometheus\](https://docs.botkube.io/configuration/source/prometheus) to give Botkube access to those alerts. Once enabled, the Prometheus plugin can be configured to consume any alerts in the specified states and display them in any channels you have configured in your source binding configuration. +While Botkube has supported Kubernetes events for a long time, K8s clusters tend to have a lot more state events and metrics going on. Typically tools like kube-state-metrics and custom applications are configured to use Prometheus as a store for metrics. Prometheus' Alertmanager can then find metrics that are in anomalous states and trigger alerts. We've built the Botkube source plugin for [Prometheus](https://docs.botkube.io/configuration/source/prometheus) to give Botkube access to those alerts. Once enabled, the Prometheus plugin can be configured to consume any alerts in the specified states and display them in any channels you have configured in your source binding configuration. ![Image 2: Prometheus alerts in Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63e104c5fb11822e79cc09c8_ijd6WpT3jxksxNoy-fni7NrXRKM3p1iZAHutyVNDPEMjUTsgBkpAZ_pDEHEHgDKIHjjtpl_8V1Eu60mHmFUt2RIcRLv-TKdnmQIbF9op1r-VGZY6d6XTsB6zGkQHWB3r7wuk2ekw0o8Hl6adAZaoJmQ.png) -See the \[documentation\](https://docs.botkube.io/configuration/source/prometheus) to enable and configure the Prometheus plugin, it only requires a few settings. +See the [documentation](https://docs.botkube.io/configuration/source/prometheus) to enable and configure the Prometheus plugin, it only requires a few settings. -\## Aliases +Aliases +------- -As a way to save typing, Botkube had implemented the k and kc aliases for the kubectl command, much like DevOps admins like to do on the command line. Now you can \[configure your own custom aliases\](https://docs.botkube.io/configuration/alias) for any command in Botkube. Not only can you alias a single command like kubectl, you can create an alias for the full command including options and flags. In the example shown here, \`kgp\` is an alias for the full \`kubectl get pods\` command. +As a way to save typing, Botkube had implemented the k and kc aliases for the kubectl command, much like DevOps admins like to do on the command line. Now you can [configure your own custom aliases](https://docs.botkube.io/configuration/alias) for any command in Botkube. Not only can you alias a single command like kubectl, you can create an alias for the full command including options and flags. In the example shown here, `kgp` is an alias for the full `kubectl get pods` command. ![Image 3: Kubectl aliases setup](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63e104c5e04d8205b4b47aa9_yHASb87npDigom97MSabXqtK812CEfQ08iOuqf9UU9KgcSY0kRwbcCdapzCZDonNyKi-HuxxAWgAFcKaMt0MYLJKZDTW9LY75QCNi4JA_vS7V0n8A0XmMBh-WzJLxMMoyBms6HUjDEiGcEs_VSZbTms.png) Maria wrote another article on [Kubectl aliases](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) and their use cases. For more details on how to configure your own Kubernetes aliases read this article and the documentation above. -\## Bug Fixes +Bug Fixes +--------- -We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v0.18.0). +We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v0.18.0). -We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v013-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v013-release-notes.md index 2e6fe72..97035b3 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v013-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v013-release-notes.md @@ -17,27 +17,28 @@ The latest release of Botkube is here! This release from the new Botkube team in ### Table of Contents -* [Multi-Channel Support](#multi-channel-support-2) -* [Bug Fixes](#bug-fixes-2) -* [Release Pipeline Enhancements](#release-pipeline-enhancements-2) -* [Telemetry](#telemetry-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [Multi-Channel Support](#multi-channel-support) +* [Bug Fixes](#bug-fixes) +* [Release Pipeline Enhancements](#release-pipeline-enhancements) +* [Telemetry](#telemetry) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -BotKube, welcome to Kubeshop! We're happy to have the most modern \[ChatOps tool for Kubernetes\](http://botkube.io) join the team. +BotKube, welcome to Kubeshop! We're happy to have the most modern [ChatOps tool for Kubernetes](http://botkube.io/) join the team. BotKube v0.13.0 is the first release under Kubeshop and the newly formed dedicated Botkube team. We are picking up the pace of development and you can expect to see more frequent BotKube releases with lots of new, great features and bug fixes. -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ In this release, we focused on multi-channel support, bug fixes, and optimizing the BotKube release pipeline. -\## Multi-Channel Support +Multi-Channel Support +--------------------- ![Image 2: Connecting Multiple Kubernetes Clusters to Multiple Slack Channels](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb6a2fdfd662d24a9ca0_6310c1dc595cf2e50475bc23_2dGs46sYiazq09JJsR0RtJZwNSQPpS_FFV3EcATxfr7Om0vQQgafkiLDUdFNfVg31adYxk0VRVgyPxjr4nFPLENhF8XSeLPmBAAWVS6dDYtRkgat9EqCF5ApyMZyVhDBJX0cW0y9knrOPcDdSQIsRg.png) -While BotKube is now part of the Kubeshop team, BotKube development is still community-driven. Multi-channel support was requested by several users in the BotKube community and the reason why we implemented it in our first release. We also worked with the community to review the \[configuration proposal\](https://github.com/kubeshop/botkube/issues/628) and will continue this kind of community involvement as we go. +While BotKube is now part of the Kubeshop team, BotKube development is still community-driven. Multi-channel support was requested by several users in the BotKube community and the reason why we implemented it in our first release. We also worked with the community to review the [configuration proposal](https://github.com/kubeshop/botkube/issues/628) and will continue this kind of community involvement as we go. BotKube now supports multiple channels and communication tools using a single BotKube installation in your Kubernetes cluster. You can group and send events to different channels and tools. For example, some events are sent as Slack chat messages for an immediate response and others to ElasticSearch for archiving. You can even have multiple instances of these tools and send specific events to different channels in each of them. This previously required multiple BotKube installations in a cluster or complex annotations. You can also toggle filters and recommendations per-rule now, where filters and recommendation settings were global in previous versions. @@ -45,23 +46,26 @@ In future releases, we plan to streamline this source to channel mapping further It is also possible to configure the executor configuration on a per-channel basis, so that kubectl permissions can be controlled. You can set different kubectl permissions that restrict the commands, resources, and namespaces users in a specified channel can access. This is great for environments with multi-tenant Kubernetes clusters where teams use separate namespaces. -We have simplified and enhanced the BotKube configuration syntax to enable the new multi-channel support. If you are running BotKube v0.12.4 (or earlier) using a default configuration, you can specify an updated configuration when using the helm upgrade command. If you are using a custom configuration, see the \[changelog\](https://github.com/kubeshop/botkube/blob/main/CHANGELOG.md#v0130-2022-08-29) for details on the configuration syntax changes. You can modify your config.yaml file with the new structure and pass that to the helm upgrade -f command. +We have simplified and enhanced the BotKube configuration syntax to enable the new multi-channel support. If you are running BotKube v0.12.4 (or earlier) using a default configuration, you can specify an updated configuration when using the helm upgrade command. If you are using a custom configuration, see the [changelog](https://github.com/kubeshop/botkube/blob/main/CHANGELOG.md#v0130-2022-08-29) for details on the configuration syntax changes. You can modify your config.yaml file with the new structure and pass that to the helm upgrade -f command. -You can also see the configuration details for \[sources\](https://botkube.io/configuration/source/) and \[executors\](https://botkube.io/configuration/executor/) in the BotKube documentation. +You can also see the configuration details for [sources](https://botkube.io/configuration/source/) and [executors](https://botkube.io/configuration/executor/) in the BotKube documentation. -\## Bug Fixes +Bug Fixes +--------- -We have fixed several bugs in BotKube that were reported to us by users. We also spent some time refactoring code and increasing test coverage to improve the quality of BotKube. You can see the list of bug fixes in the \[changelog\](https://github.com/kubeshop/botkube/blob/main/CHANGELOG.md#v0130-2022-08-29). +We have fixed several bugs in BotKube that were reported to us by users. We also spent some time refactoring code and increasing test coverage to improve the quality of BotKube. You can see the list of bug fixes in the [changelog](https://github.com/kubeshop/botkube/blob/main/CHANGELOG.md#v0130-2022-08-29). -We appreciate your bug reports and pull requests! If you notice a bug in BotKube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in BotKube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Release Pipeline Enhancements +Release Pipeline Enhancements +----------------------------- We are working on improving the BotKube release pipeline with each release. Our goal is to fully automate the release pipeline, so that we can collect all pull requests in a release branch, perform automated end-to-end testing with the various communication platforms, and build and release the BotKube container image. In this release we have cleaned up the overall CI pipeline and automated end-to-end testing of BotKube on Slack. As we add more automation, BotKube releases will be more frequent and more reliable. -\## Telemetry +Telemetry +--------- BotKube has introduced anonymized telemetry collection in v0.13. @@ -69,38 +73,36 @@ Why: We are collecting this telemetry data in order to focus our development eff What:All data is anonymized. We use UUIDs in order to aggregate telemetry from individual BotKube installations. Other data that could identify users or environments is redacted, such as namespace names, pod names, etc. For transparency, we collect the following data: -\- BotKube version - -\- Kubernetes version - -\- Names of enabled integrations (notifiers and bots) - -\- Handled events in anonymized form, grouped by the integration (communication platform) name - -\- For each event, we collect its type (e.g. create or delete), resource API Version and resource Kind. Any custom resource API groups or Kinds are excluded from the analytics collection. - -\- Executed commands in anonymized form - -\- For kubectl commands, only the command verb is collected. Resource name and namespace are excluded from the analytics collection. - -\- App errors (crashes, configuration and notification errors) - -\- For identifying BotKube installations, we use unique identifiers generated in the following way: - -\- As an anonymous cluster identifier, we use the uid of kube-system Namespace, - -\- As an anonymous installation identifier, we use UUID generated during Helm chart installation and persisted in a ConfigMap. - -Opt-out: \*\*You can opt out of telemetry collection by setting the \`analytics.disable: true\` parameter when installing or upgrading the Helm chart.\*\* This prevents all analytics collection and we do not track the installation and opt-out actions. - -Please see the BotKube \[Privacy Policy\](https://botkube.io/privacy/) for more details. - -\## Feedback - We’d Love to Hear From You! +* BotKube version + +* Kubernetes version + +* Names of enabled integrations (notifiers and bots) + +* Handled events in anonymized form, grouped by the integration (communication platform) name + +* For each event, we collect its type (e.g. create or delete), resource API Version and resource Kind. Any custom resource API groups or Kinds are excluded from the analytics collection. + +* Executed commands in anonymized form + +* For kubectl commands, only the command verb is collected. Resource name and namespace are excluded from the analytics collection. + +* App errors (crashes, configuration and notification errors) + +* For identifying BotKube installations, we use unique identifiers generated in the following way: + +* As an anonymous cluster identifier, we use the uid of kube-system Namespace, + +* As an anonymous installation identifier, we use UUID generated during Helm chart installation and persisted in a ConfigMap. + + +Opt-out: **You can opt out of telemetry collection by setting the `analytics.disable: true` parameter when installing or upgrading the Helm chart.** This prevents all analytics collection and we do not track the installation and opt-out actions. + +Please see the BotKube [Privacy Policy](https://botkube.io/privacy/) for more details. + +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about BotKube. Help us plan the BotKube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the BotKube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), BotKube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). - -‍ - -‍ +You can talk to us in the BotKube [GitHub issues](https://github.com/kubeshop/botkube/issues), BotKube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v014-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v014-release-notes.md index e907264..8e53b2c 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v014-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v014-release-notes.md @@ -17,25 +17,26 @@ BotKube v0.14.0 addresses a number of community-suggested issues and adds some g ### Table of Contents -* [Dynamic notification setting changes](#dynamic-notification-setting-changes-2) -* [New Botkube Slack App](#new-botkube-slack-app-2) -* [Improved Help](#improved-help-2) -* [Persistent Settings](#persistent-settings-2) -* [Mattermost v7 Support](#mattermost-v7-support-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [Dynamic notification setting changes](#dynamic-notification-setting-changes) +* [New Botkube Slack App](#new-botkube-slack-app) +* [Improved Help](#improved-help) +* [Persistent Settings](#persistent-settings) +* [Mattermost v7 Support](#mattermost-v7-support) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -In the previous release of Botkube we promised to accelerate the pace of development and release. Well, here is another new release of Botkube, the most modern \[ChatOps tool for Kubernetes\](http://botkube.io)! +In the previous release of Botkube we promised to accelerate the pace of development and release. Well, here is another new release of Botkube, the most modern [ChatOps tool for Kubernetes](http://botkube.io/)! BotKube v0.14.0 addresses a number of community-suggested issues and adds some great features to help you control the notification levels you receive from your Kubernetes clusters. -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ In this release, we focused on improvements to the Botkube onboarding experience and notification tuning, persistent settings, and bug fixes. Some of the enhancements are currently Slack-specific using the additional interactive capabilities of the new Slack app. We plan to enhance other platforms with interactive features where technically feasible. -\## Dynamic notification setting changes +Dynamic notification setting changes +------------------------------------ We've received frequent feedback from users about the notification settings in Botkube. By default, Botkube monitors and shows all Kubernetes events in a configured communication channel. Previously, this could only be configured in the YAML configuration or during the Helm installation/upgrade. @@ -43,7 +44,8 @@ You can now also configure notification settings right from the Botkube interfac ![Image 2: Monitoring Kubernetes in Slack Channel](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb5b0c5188f8691d6b94_633ef84e656938a0ae571fc0_iRbu4PGydNxlrRVX0s4UpTz9QFyoUzE-l5Onxt_TW2YVakCXmxLkWfqXpgtJ7ecj136UrCZdgJGubxY_hdd2IEsiq8tyanu5ITCqu-fgUB0mP_tPZLGYtghrVHYx5uU3bhAi0H-lW6PKNIE24trMca9NWzPrlqHj-CYGLZqoA2CiKsNrr3i2TeFGfQ.png) -\## New Botkube Slack App +New Botkube Slack App +--------------------- We have created a brand new Botkube Slack app. The new app uses the Slack Socket Mode which provides a much more robust platform for interactivity and uses the new Slack permissions model for enhanced security. @@ -51,11 +53,12 @@ You will see many enhancements to Botkube in Slack in this and upcoming releases ![Image 3: Adding Kubernetes Alerts to Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb5b4e8002657684fc0e_633ef84e908df6431e4dd34d_SelrLZepl_wTwzOgctqA0qtliy6LH3SnfV8l8I2r6iMivCxRNdzhtdo9T5TvjNw9boEGHGD1jqnOcld_4B5MxTLxO01xwGq41cZ_SKhyFJLacFJFK7HMXOJ7lrP93TrM9M6CmhTpauoLdoG1D7bWLXYK-rryjw0SCVi5c-xXTh_eKe9JAB73QHI0Dg.png) -The installation process has changed for the new Slack app. See the \[installation guide\](https://botkube.io/docs/installation/socketslack) to get started with the enhanced interactive experience. +The installation process has changed for the new Slack app. See the [installation guide](https://botkube.io/docs/installation/socketslack) to get started with the enhanced interactive experience. -The \[legacy Slack app\](https://botkube.io/docs/installation/slack/) is still available, but will be deprecated in future versions. +The [legacy Slack app](https://botkube.io/docs/installation/slack/) is still available, but will be deprecated in future versions. -\## Improved Help +Improved Help +------------- The @Botkube help command has been enhanced when using the new Botkube Slack app. Run @Botkube help and you will see an interactive help message. You can click any of the buttons in the interactive help to run the commands, change settings, and more. @@ -63,26 +66,26 @@ This new, interactive help will enable new Botkube users to get up and running e ![Image 4: Botkube help suggestions for cluster management ](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb5b82ec26bf25ce56ed_633ef850e5ef9f0d7d116776_EO0U7RPVKtnFJKGI9P-P-ra7xxTD04eyiGXF_khHkvFL8Age_YGzOa7YM3iTZZ6g9OfTmH_HgJYyJNEN75LDiP5jij3hsQjAF9z0nWw2xJ42aEJlskc_lNSh6XIiwwybgIl0TGxlJRgOSKkUmGbJv9d5NLGOW-x_iVWUj5GyPevaKTWieW5B1QmpCw.png) -\## Persistent Settings +Persistent Settings +------------------- Changes to settings made from the Botkube interface, such as notifier start/stop, notification level settings, and filter enable/disable now persist across Botkube restarts. In earlier versions, these settings would reset to the settings in the Botkube configuration file upon restarting the Botkube pod. -\## Mattermost v7 Support +Mattermost v7 Support +--------------------- -Botkube now supports Mattermost version 7.x! See the \[installation guide for Mattermost\](https://botkube.io/docs/installation/mattermost) to get started. +Botkube now supports Mattermost version 7.x! See the [installation guide for Mattermost](https://botkube.io/docs/installation/mattermost) to get started. -\## Bug Fixes +Bug Fixes +--------- -We have fixed several bugs in BotKube that were reported to us by users. We also spent some time refactoring code and increasing test coverage to improve the quality of BotKube. You can see the list of bug fixes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v0.14.0). +We have fixed several bugs in BotKube that were reported to us by users. We also spent some time refactoring code and increasing test coverage to improve the quality of BotKube. You can see the list of bug fixes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v0.14.0). -We appreciate your bug reports and pull requests! If you notice a bug in BotKube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in BotKube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about BotKube. Help us plan the BotKube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the BotKube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), BotKube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). - -‍ - -‍ +You can talk to us in the BotKube [GitHub issues](https://github.com/kubeshop/botkube/issues), BotKube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v015-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v015-release-notes.md index 1e00de3..0646874 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v015-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v015-release-notes.md @@ -17,24 +17,25 @@ Botkube v0.15.0 adds some great interactivity features aimed at application deve ### Table of Contents -* [Interactive kubectl](#interactive-kubectl-2) -* [Actionable Events](#actionable-events-2) -* [Output Filtering](#output-filtering-2) -* [Interactive Output Filtering](#interactive-output-filtering-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [Interactive kubectl](#interactive-kubectl) +* [Actionable Events](#actionable-events) +* [Output Filtering](#output-filtering) +* [Interactive Output Filtering](#interactive-output-filtering) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -We have an exciting early release of Botkube, just in time for KubeCon! We've been working as fast as we can to get some great new features ready to release. Here's v0.15.0 of Botkube, the most modern \[ChatOps tool for Kubernetes\](http://botkube.io)! +We have an exciting early release of Botkube, just in time for KubeCon! We've been working as fast as we can to get some great new features ready to release. Here's v0.15.0 of Botkube, the most modern [ChatOps tool for Kubernetes](http://botkube.io/)! v0.15.0 adds some great interactivity features aimed at application developers who may not be Kubernetes experts. -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ -In this release, we focused on interactivity with Botkube and the kubectl executor. Some of the enhancements are currently Slack-specific using the additional interactive capabilities of the  \[new Slack app\](https://botkube.io/docs/installation/socketslack/). We plan to enhance other platforms with interactive features where technically feasible. +In this release, we focused on interactivity with Botkube and the kubectl executor. Some of the enhancements are currently Slack-specific using the additional interactive capabilities of the [new Slack app](https://botkube.io/docs/installation/socketslack/). We plan to enhance other platforms with interactive features where technically feasible. -\## Interactive kubectl +Interactive kubectl +------------------- If you're using the new Slack app, you can now use kubectl interactively. Simply run @botkube kubectl (or use the alias k or kc) and you will see an interactive kubectl command builder. Select the verb (get, in this example) and you can select the object type to get. Once you have selected those, based on context, you can select a namespace and, optionally, a specific object to act on. Leaving out the object will generally show the list of available objects. Once you've made your selections, you can see a preview of the constructed command. You can also specify a filter string to apply to the output (more about that later!) and click Run command. The command runs and you can see the output in the channel as usual. @@ -42,36 +43,37 @@ This interactive kubectl tool is especially useful for developers and other user ![Image 2: Getting Log reports of Kubernetes reports into Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb442fdfd602024a9acd_6356bdf725fcea68c282c460_Y3wu_jOs-Ujqsrm-K_p5k9ixbT54IMlPnlOAyBDjuVsmkqOsLDkvcN2x3ji2mRn_CU0M-1ZAnp_lwDvLRhJ_eOTYodpOZAVhLHWxpjVfrTildXKVksWotV07CJHe9H7XRhRuxiVqJ2oTLEr7zr_vT6mRQQJKV_hD1EV65oMSXkUu2YYNFTXFdY6thg.png) -\## Actionable Events +Actionable Events +----------------- If you're receiving events in the new Slack app, you can now run contextual actions right from the event message. When a pod error comes in, for example, you can run kubectl commands that are relevant to the pod object right from the "Run command" drop-down box. The command runs automatically without any typing and returns the output in the channel. This makes it quick an easy to start investigating your alerts. ![Image 3: Run Kubectl commands directly from Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb44adbd3b434f7dcbd4_6356bdf7fd97a85f48b6f4eb_tGR4IkDUpaGrpMiF7u7VXfDpliSzKiF6H8nCPk-xGSddI9heXZx6sKKPVzpy6PZVsMZ4znb37qqyJRsZZ5dQsOmxcVYNu_sXDLGcoFg88Htm7xjt_8pSsXxM3EQd-yigz8RAkChykcJEHGz8gY2zMUJca4nhxcaJoMfGLI2ZmD9YkWHn_4WTgsNPMQ.png) -\## Output Filtering +Output Filtering +---------------- -You can now filter the output of any command you run with Botkube, on any platform. Simply run the command with the \`--filter "string"\` flag and you will only see the matching output. The filter flag does simple linewise string matching. Any line in the output with a matching string will be shown, lines without a match are discarded. +You can now filter the output of any command you run with Botkube, on any platform. Simply run the command with the `--filter "string"` flag and you will only see the matching output. The filter flag does simple linewise string matching. Any line in the output with a matching string will be shown, lines without a match are discarded. ![Image 4: Filtering Kubernetes logs for important alerts](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb44701e5f37a18b49db_6356bdf7f7a6792610d5e3ca_kjx3ejlR6Aaq2y9mENfRr81flF6H3HMljZWwFis4-1rkG6jyjEiPmYwfxeMfU-_NoEE0OLtGHkPUxM90PhuFauG-7iPdakZtFEdZcqkbxRXEcnfkQnErMqivmwplsPmem-JQL-2X71Kpmh5-NS8jZJMSkWtfd2hqinQhht64CWwIJxgV4SBI1uwKzQ.png) -\## Interactive Output Filtering +Interactive Output Filtering +---------------------------- -Output filtering is even easier if you're using the \[new Slack app\](https://botkube.io/docs/installation/socketslack/). When you run a command with a lot of output (>15 lines) you will see a Filter output box. If you type a string in the box and press enter, you will then see the output of the previous command filtered to only show lines matching the filter string. This is great for quickly sifting through logs of a problematic pod, for example. +Output filtering is even easier if you're using the [new Slack app](https://botkube.io/docs/installation/socketslack/). When you run a command with a lot of output (>15 lines) you will see a Filter output box. If you type a string in the box and press enter, you will then see the output of the previous command filtered to only show lines matching the filter string. This is great for quickly sifting through logs of a problematic pod, for example. ![Image 5: Searching through K8s logs](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6360eb4426a735c2c230b1cb_6356bdf7b95716455530d559_eIDU6Illetw8nvSmjY2RF0DUfo480e8Cg-z9oo9TrZoUMc82X5QeBP_LDPjPAByGdJGZVjqAZAeFF9MphVVECeN-D1KbDxttppO-YtjdKo6dUvOhLo9b1TypQbvEX9vTnvcTJVKaC1kDxQHOdTWFqHFty4VUYZKoIgXBMmch6sNCQp2-7Mde9Zm78g.png) -\## Bug Fixes +Bug Fixes +--------- -We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v0.15.0). +We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v0.15.0). -We appreciate your bug reports and pull requests! If you notice a bug in BotKube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in BotKube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). - -‍ - -‍ +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v016-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v016-release-notes.md index 578b9a8..e8ff753 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v016-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v016-release-notes.md @@ -17,27 +17,28 @@ Botkube v0.16.0 adds new event filter criteria allowing more granular event tuni ### Table of Contents -* [Filters](#filters-2) -* [Actions](#actions-2) -* [Legacy Slack App Deprecation](#legacy-slack-app-deprecation-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [Filters](#filters) +* [Actions](#actions) +* [Legacy Slack App Deprecation](#legacy-slack-app-deprecation) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -The latest version of Botkube is here, v0.16.0. Like peanut butter and chocolate, we've brought together two great parts of Botkube to make your life working with Kubernetes even easier. Botkube is the most modern \[ChatOps tool for Kubernetes\](http://botkube.io)! +The latest version of Botkube is here, v0.16.0. Like peanut butter and chocolate, we've brought together two great parts of Botkube to make your life working with Kubernetes even easier. Botkube is the most modern [ChatOps tool for Kubernetes](http://botkube.io/)! We've addressed two things that have been frequently requested by users. First, we've added a more configurable filter system for events, meaning you can better filter what kind of events you want to see. Second, we've added actions, which can be configured to run commands automatically when an event is received and the command output is included with the event. These features work behind the scenes in the Botkube engine and are not specific to any communication platform. -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ -\## Filters +Filters +------- Botkube now has additional event and resource constraints that you can use to filter events when you're defining sources. Sources define the event stream you want to watch and are then bound to a communication channel that will receive all matching events. In earlier versions of Botkube you could create sources based on Kubernetes resource type (e.g. Pod, ConfigMap, etc.), Namespace, and event type (e.g. Create, Delete, Error). This is useful for getting all events of a certain type in a namespace, for example, but in some cases still results in a lot of events that aren't relevant to all users in a channel. In addition, this doesn't provide the granular level of control needed to automatically act on events (see Actions below!). -In Botkube v0.16.0 we've added the following \[event filter criteria\](https://docs.botkube.io/next/configuration/source#kubernetes-resource-events): +In Botkube v0.16.0 we've added the following [event filter criteria](https://docs.botkube.io/next/configuration/source#kubernetes-resource-events): * **labels and annotations**: These filters simply have to (exactly) match the labels or annotations applied to a resource in order for the event to be logged. * **name**: This is a Regex field to match resource names. Events pertaining to any resource that matches the specified pattern will be logged. @@ -47,11 +48,12 @@ The new filter criteria have lots of great uses. You may have a suspect resource They also enable Botkube actions! -\## Actions +Actions +------- -Along with the new, more granular filter options, we have introduced \[actions\](https://docs.botkube.io/next/configuration/action) to Botkube. Actions allow you to automatically trigger a specific command when a matching event occurs. You can have more context for an event delivered directly to your communication channels with no additional manual work. +Along with the new, more granular filter options, we have introduced [actions](https://docs.botkube.io/next/configuration/action) to Botkube. Actions allow you to automatically trigger a specific command when a matching event occurs. You can have more context for an event delivered directly to your communication channels with no additional manual work. -Actions consist of two parts, the command and the source binding. The command is the specific executor command that will be run by the action. In v0.16.0 only the kubectl executor is available but more will be coming soon. The command itself is defined using the \[Go template\](https://golang.org/pkg/text/template/) syntax and allows you to pass the event metadata in order to build the command you need. The source binding specifies the event source that will trigger the action and uses the same sources that can be bound to communication channels. These sources use the event filters discussed earlier. +Actions consist of two parts, the command and the source binding. The command is the specific executor command that will be run by the action. In v0.16.0 only the kubectl executor is available but more will be coming soon. The command itself is defined using the [Go template](https://golang.org/pkg/text/template/) syntax and allows you to pass the event metadata in order to build the command you need. The source binding specifies the event source that will trigger the action and uses the same sources that can be bound to communication channels. These sources use the event filters discussed earlier. When a source is bound to both an action and a communication channel, the results of the action command are delivered to the communication channel along with the original event. Actions can be used to get information using the default read-only kubectl configuration. If you want, you can even configure the executor to allow other actions beyond those that are read-only. You could have Botkube restart a hang pod automatically, for example, and the results will be sent to the communication channel along with the event. @@ -64,22 +66,25 @@ There are two preconfigured actions included with Botkube to help you get starte * **describe-created resource**: This action runs the kubectl describe command against the resource associated with an event. It is bound to the default k8s-create-events source by default. When enabled, the command will be run each time a resource is created and the event is logged by the k8s-create-events source. The results of the kubectl describe command will then be attached to the event and delivered to any channel to which the k8s-create-events source is bound. * **show-logs-on-error**: This action runs kubectl logs against a resource. It is bound to the k8s-err-with-logs-events source by default. Any event captured by this source (triggered by error event types) will include the output of the kubectl logs command and be delivered to any communication channel to which it is bound. -\## Legacy Slack App Deprecation +Legacy Slack App Deprecation +---------------------------- -With the release of the \[new Socket-mode Slack app\](https://docs.botkube.io/installation/socketslack/) in \[Botkube v0.14.0\](https://botkube.io/blog/botkube-v014-release-notes#new-botkube-slack-app), the legacy Slack app is being deprecated. In the next version (v0.17.0), it will no longer be supported in the Botkube app and Botkube will need to be configured to use the new Slack app. +With the release of the [new Socket-mode Slack app](https://docs.botkube.io/installation/socketslack/) in [Botkube v0.14.0](https://botkube.io/blog/botkube-v014-release-notes#new-botkube-slack-app), the legacy Slack app is being deprecated. In the next version (v0.17.0), it will no longer be supported in the Botkube app and Botkube will need to be configured to use the new Slack app. -This change is happening because Botkube requires the socket-mode Slack app for the new \[interactivity features\](https://botkube.io/blog/botkube-v015-release-notes#interactive-kubectl) we introduced in Botkube v0.15.0. We plan to put all of our development efforts into this new app so we can continue to build great interactive features. In addition, Slack is recommending the migration from the legacy app type to socket mode as it introduces more granular permissions for bot users and OAuth tokens. This means you have more control over what Botkube and other Slack apps can do in your Slack workspace. +This change is happening because Botkube requires the socket-mode Slack app for the new [interactivity features](https://botkube.io/blog/botkube-v015-release-notes#interactive-kubectl) we introduced in Botkube v0.15.0. We plan to put all of our development efforts into this new app so we can continue to build great interactive features. In addition, Slack is recommending the migration from the legacy app type to socket mode as it introduces more granular permissions for bot users and OAuth tokens. This means you have more control over what Botkube and other Slack apps can do in your Slack workspace. -Slack will be unapproving the legacy Botkube Slack app in their Slack App Directory on December 21, 2022. After this date you will still be able to install the legacy Slack app using the Add to Slack button in the \[legacy Slack installation\](https://docs.botkube.io/0.15/installation/slack/) guide but you will receive a warning that the app is not authorized by the Slack App Directory. You will need to accept this warning to proceed if you want to keep using the legacy Slack app with Botkube v0.16 or earlier. +Slack will be unapproving the legacy Botkube Slack app in their Slack App Directory on December 21, 2022. After this date you will still be able to install the legacy Slack app using the Add to Slack button in the [legacy Slack installation](https://docs.botkube.io/0.15/installation/slack/) guide but you will receive a warning that the app is not authorized by the Slack App Directory. You will need to accept this warning to proceed if you want to keep using the legacy Slack app with Botkube v0.16 or earlier. -\## Bug Fixes +Bug Fixes +--------- -We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v0.16.0). +We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v0.16.0). -We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v017-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v017-release-notes.md index 7d26083..92d8aa7 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v017-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v017-release-notes.md @@ -17,24 +17,25 @@ Botkube v0.17.0 adds a plugin system and the first executor plugin allowing you ### Table of Contents -* [Plugin System](#plugin-system-2) -* [Helm Plugin](#helm-plugin-2) -* [Kubectl Prefix Required](#kubectl-prefix-required-2) -* [Botkube Command Tidying](#botkube-command-tidying-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [Plugin System](#plugin-system) +* [Helm Plugin](#helm-plugin) +* [Kubectl Prefix Required](#kubectl-prefix-required) +* [Botkube Command Tidying](#botkube-command-tidying) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -Botkube v0.17.0 is here, and it's huge! We've introduced a plugin system for sources and executors along with the first plugin for Helm. Botkube is the most modern \[ChatOps tool for Kubernetes\](http://botkube.io)! +Botkube v0.17.0 is here, and it's huge! We've introduced a plugin system for sources and executors along with the first plugin for Helm. Botkube is the most modern [ChatOps tool for Kubernetes](http://botkube.io/)! This release is a major upgrade for Botkube. Kubernetes users are embracing all kinds of new tools and technologies for their application delivery workflows. GitOps and other DevOps tooling is changing the way Kubernetes is managed and monitored and automating a lot of the traditional processes. We wanted to go beyond the Kubernetes basics of monitoring the Kubernetes event stream and running kubectl commands. We decided to do that by implementing a plugin system that allows anyone to build a plugin for Botkube to add sources and executors. -With the addition of plugins in v0.17.0 combined with \[actions\](https://docs.botkube.io/next/configuration/action), which were added in \[v0.16.0\](https://botkube.io/blog/botkube-v016-release-notes), Botkube gains the ability to tie almost any tools together in the Kubernetes/CNCF ecosystem. Botkube is growing into an API automation engine that can listen for events from any source and respond with automated actions via any executor, all while reporting in to channels in your communication platform. +With the addition of plugins in v0.17.0 combined with [actions](https://docs.botkube.io/next/configuration/action), which were added in [v0.16.0](https://botkube.io/blog/botkube-v016-release-notes), Botkube gains the ability to tie almost any tools together in the Kubernetes/CNCF ecosystem. Botkube is growing into an API automation engine that can listen for events from any source and respond with automated actions via any executor, all while reporting in to channels in your communication platform. -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ -\## Plugin System +Plugin System +------------- We have introduced a plugin system to Botkube in v0.17.0. This allows anyone to write new plugins for sources and executors and those plugins can be published for other Botkube users to install and use. We'll be leading the way with our own plugins, including the first executor plugin included in this release. @@ -42,32 +43,37 @@ Botkube has two ways of interacting with APIs and other tools, sources and execu We will be publishing documentation and tutorials on the Botkube plugin system soon so you can design and create your own plugins. We are also working on additional plugins including the first new source plugin for Prometheus. -\## Helm Plugin +Helm Plugin +----------- Along with the plugin system, we have introduced Helm as the first executor plugin for Botkube. The Helm plugin allows you to run Helm commands right from your communication platform. The Botkube Helm plugin provides a subset of the most useful Helm commands, you can list installed releases, rollback upgrades, and even install charts and uninstall releases. ![Image 2: Helm list in Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63bc34953fa404bdf9e9b66c_lJAFGnZKp4HY98JtcnteqhObKFnrZ1RoxmMHj8jPZ3XcCk3TWjekXD_hQJNrucD7JANNaYNyHh4E5uIHDl1SS3RWRisuAd8boq7fXK388pca9Tae_CN2k0ZdMy1_QTC9ZGVNmLPwECEzvNKSRai2p3d4CfAMoQjNrV0VJzsfnjkjipqdmCkwT0FkrOr3EA.png) -Imagine seeing an alert in your communications platform that a deployment was updated but something went wrong and the new release is failing. You can check the application pod logs, the helm release status, then run \`@botkube helm rollback \` and fix the problem without ever leaving the chat! +Imagine seeing an alert in your communications platform that a deployment was updated but something went wrong and the new release is failing. You can check the application pod logs, the helm release status, then run `@botkube helm rollback ` and fix the problem without ever leaving the chat! -See the \[documentation\](https://docs.botkube.io/next/configuration/executor/helm) for how to enable and use the Helm plugin. Much like the kubectl executor, Helm is disabled by default and when enabled, only allows read-only operations by default. You can enable write actions if you want, and you can even segregate those to specific, more restricted channels in your communication platform. +See the [documentation](https://docs.botkube.io/next/configuration/executor/helm) for how to enable and use the Helm plugin. Much like the kubectl executor, Helm is disabled by default and when enabled, only allows read-only operations by default. You can enable write actions if you want, and you can even segregate those to specific, more restricted channels in your communication platform. -\## Kubectl Prefix Required +Kubectl Prefix Required +----------------------- -The kubectl executor was the only executor available in older versions of Botkube. With the addition of the Botkube plugin system and additional executor plugins, kubectl has company. You now need to specify the executor when running commands with Botkube. For kubectl this would be something like \`@botkube kubectl get pods\`, and we've even added the aliases \`@botkube k\` and \`@botkube kc\` to save you some typing. For Helm it would look like \`@botkube helm list\`. We added a notification about this to the help message in Botkube v0.16.0, but as of v0.17.0 the implied kubectl (i.e. \`@botkube get pods\`) will no longer work. +The kubectl executor was the only executor available in older versions of Botkube. With the addition of the Botkube plugin system and additional executor plugins, kubectl has company. You now need to specify the executor when running commands with Botkube. For kubectl this would be something like `@botkube kubectl get pods`, and we've even added the aliases `@botkube k` and `@botkube kc` to save you some typing. For Helm it would look like `@botkube helm list`. We added a notification about this to the help message in Botkube v0.16.0, but as of v0.17.0 the implied kubectl (i.e. `@botkube get pods`) will no longer work. -\## Botkube Command Tidying +Botkube Command Tidying +----------------------- -There were some inconsistencies in how Botkube commands were structured in previous versions. We put some effort into unifying the command structure. Now all Botkube commands follow the same \`@botkube \` structure. For example: \`@botkube notifier start\` is now changed to \`@botkube enable notifications\`. You can see a list of all of the changed commands in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v0.17.0). +There were some inconsistencies in how Botkube commands were structured in previous versions. We put some effort into unifying the command structure. Now all Botkube commands follow the same `@botkube ` structure. For example: `@botkube notifier start` is now changed to `@botkube enable notifications`. You can see a list of all of the changed commands in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v0.17.0). -\## Bug Fixes +Bug Fixes +--------- -We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v0.17.0). +We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v0.17.0). -We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-1-0-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-1-0-release-notes.md index e2f1644..d2ba643 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-1-0-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-1-0-release-notes.md @@ -17,59 +17,60 @@ Our most recent realese of Botkube Cloud & Open Source brings important features ### Table of Contents -* [What is Botkube?](#what-is-botkube--2) -* [Botkube Cloud with Cloud Slack Integration](#botkube-cloud-with-cloud-slack-integration-2) -* [Here are the key features of Botkube Cloud:](#here-are-the-key-features-of-botkube-cloud--2) +* [What is Botkube?](#what-is-botkube-) +* [Botkube Cloud with Cloud Slack Integration](#botkube-cloud-with-cloud-slack-integration) +* [Here are the key features of Botkube Cloud:](#here-are-the-key-features-of-botkube-cloud-) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! We are excited to announce the latest release of Botkube, packed with new features and improvements to enhance your Kubernetes collaborative troubleshooting experience. In this release, we focused on two major areas: the introduction of Botkube Cloud with Cloud Slack integration and several bug fixes and enhancements for our open-source version. -\## What is Botkube? +What is Botkube? +---------------- Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. In this blog post, we'll give you an overview of all of Botkube’s newest features from the v1.1.0 release. -\## Botkube Cloud with Cloud Slack Integration +Botkube Cloud with Cloud Slack Integration +------------------------------------------ -With the growing popularity of cloud-based collaboration tools, we recognized the need to provide seamless integration with popular platforms like Slack. That's why we are thrilled to introduce the Botkube Cloud Slack app that integrates with the Botkube web app.  This makes it easier than ever to receive Kubernetes alerts and notifications directly in your Slack workspace, and manage all of your Kubernetes clusters using a single Slack app. +With the growing popularity of cloud-based collaboration tools, we recognized the need to provide seamless integration with popular platforms like Slack. That's why we are thrilled to introduce the Botkube Cloud Slack app that integrates with the Botkube web app. This makes it easier than ever to receive Kubernetes alerts and notifications directly in your Slack workspace, and manage all of your Kubernetes clusters using a single Slack app. -\## Here are the key features of Botkube Cloud: +Here are the key features of Botkube Cloud: +------------------------------------------- -\### Easy Installation: +### Easy Installation: Setting up Botkube Cloud is a breeze. Simply connect your Slack workspace to the Botkube app with the click of a button. ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64940fc9213e4ff10a1b4672_jaaGtHC2ScR0Nac7Bts5ZqRHFfLVeeZYeY4oQk6BN3mYKpUVH09FW11MtSqAA7UBZAc-YOWj38D9F54ahYH5xRE0oDlxc9K17hYum4BIp30W64-cZxHWJJZwKrv7mNYV9-yJ46QlBcSWkiiLgIzIt20.png) -‍ - Invite the Botkube bot to the channels you want to use, and continue your configuration. Install Botkube into your Kubernetes clusters, and you're ready to manage your clusters from Slack. ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64940fe3950f20abf76fa3ce_StacAl4VR0BYqGhlJz4HOSii505G8uK8S4WNAptRmeQ0zBU3u_tzqj6Cnwmi5fjYC1aR0ssDiaKbxrrwFatfr0nolxyrFGtBbHKnlNXHpqE2oLA4GwMNU_qc6ufRj-4c71QTo5fDSK0GkHhH31kQjlY.png) ‍ -\### Multi-Cluster Support: +### Multi-Cluster Support: Botkube Cloud allows you to manage multiple Kubernetes clusters using a single Slack app. The new Botkube Slack app uses our cloud services to route executor commands to the correct cluster. There's no longer a need for a separate Slack app per cluster. This centralized approach saves time and effort when managing alerts and notifications across different environments. -\### Open Source Enhancements: +### Open Source Enhancements: While the majority of our efforts went into Botkube Cloud, we also dedicated some time to improving the open-source version. In this release, we focused on bug fixes and enhancing security and usability. Here are some of the notable changes: -\### Early Configuration Error Detection: +### Early Configuration Error Detection: We understand the frustration of misconfigurations, so we added a new feature to provide users with immediate feedback when there is an error in their configuration. This helps users identify and rectify any issues quickly, ensuring smooth operation. -\### Binary SHA Validation: +### Binary SHA Validation: To improve security, we now validate the SHA of downloaded binaries. This ensures the integrity of the Botkube installation and protects against potential tampering or unauthorized modifications. -\### Ignored Namespace Optimization: +### Ignored Namespace Optimization: We addressed an issue where Botkube was spamming notifications about events in ignored namespaces. With the fix, you can now confidently ignore specific namespaces without being bombarded with unnecessary alerts. -\### Mattermost Bug Fix: +### Mattermost Bug Fix: Thanks to an external contribution, we resolved a bug related to Mattermost integration. The fix ensures smooth and reliable communication with Mattermost, enhancing the overall user experience. @@ -77,6 +78,4 @@ We would like to express our gratitude to the community for their ongoing suppor We encourage you to update your Botkube installation to benefit from these enhancements. Your feedback and suggestions are invaluable in shaping the future of Botkube. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). - -‍ +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-2-0-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-2-0-release-notes.md index e2dde0f..650d2c2 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-2-0-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-2-0-release-notes.md @@ -17,43 +17,47 @@ Our most recent realese of Botkube Cloud & Open Source brings important features ### Table of Contents -* [What is Botkube?](#what-is-botkube--2) -* [Doctor Plugin](#doctor-plugin-2) -* [Botkube CLI for Installation](#botkube-cli-for-installation-2) -* [Botkube CLI for Easy Cloud Migration](#botkube-cli-for-easy-cloud-migration-2) -* [Exec Plugin](#exec-plugin-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [What is Botkube?](#what-is-botkube-) +* [Doctor Plugin](#doctor-plugin) +* [Botkube CLI for Installation](#botkube-cli-for-installation) +* [Botkube CLI for Easy Cloud Migration](#botkube-cli-for-easy-cloud-migration) +* [Exec Plugin](#exec-plugin) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! Botkube is introducing the power of AI to Kubernetes troubleshooting! We are excited to announce the latest release of Botkube, packed with new features and improvements to enhance your Kubernetes collaborative troubleshooting experience. This release introduces -\* Doctor, a ChatGPT plugin for Botkube +* Doctor, a ChatGPT plugin for Botkube + +* Botkube CLI for easier installation and simple migration to Botkube Cloud + +* Exec, a Botkube plugin that allows you to run any CLI command from your collaboration platform + -\* Botkube CLI for easier installation and simple migration to Botkube Cloud - -\* Exec, a Botkube plugin that allows you to run any CLI command from your collaboration platform - -\## What is Botkube? +What is Botkube? +---------------- Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. In this blog post, we'll give you an overview of all of Botkube’s newest features from the v1.2.0 release. -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ -\## Doctor Plugin +Doctor Plugin +------------- AI has been making incredible progress recently. Large Language Models power tools like ChatGPT to answer almost any question using the collective knowledge stored over years on the Internet. New applications for these tools are being recognized every day and now you can use the power of ChatGPT to troubleshoot your Kubernetes clusters with Botkube. -The Doctor plugin only requires an OpenAI API key to configure. The easiest way to configure it is through the \[Botkube web app\](https://app.botkube.io) if your cluster is connected. Otherwise you can enable it in your \[Botkube YAML configuration\](https://docs.botkube.io/configuration/executor/doctor). Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. +The Doctor plugin only requires an OpenAI API key to configure. The easiest way to configure it is through the [Botkube web app](https://app.botkube.io/) if your cluster is connected. Otherwise you can enable it in your [Botkube YAML configuration](https://docs.botkube.io/configuration/executor/doctor). Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. ‍ ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64b6a35168a1227527eb6501_Screenshot%202023-07-18%20at%2016.13.06.png) -Find out how to use the Doctor plugin in the \[documentation\](https://docs.botkube.io/usage/executor/doctor). +Find out how to use the Doctor plugin in the [documentation](https://docs.botkube.io/usage/executor/doctor). -\## Botkube CLI for Installation +Botkube CLI for Installation +---------------------------- We've introduced the Botkube CLI in order to streamline the installation process. Previous versions of Botkube were installed using Helm which was quick and easy but if misconfigurations or other errors occurred, they weren't so easy to find. Helm is great for unattended installations, but not very interactive. @@ -65,40 +69,45 @@ The new Botkube CLI still uses Helm in the background. The CLI ensures all of th Botkube can still be installed using the Helm chart alone if you want to perform automated installations with CI or GitOps tools. -It's easy to get started with the Botkube CLI, check out the \[documentation\](https://docs.botkube.io/cli/getting-started). +It's easy to get started with the Botkube CLI, check out the [documentation](https://docs.botkube.io/cli/getting-started). -\## Botkube CLI for Easy Cloud Migration +Botkube CLI for Easy Cloud Migration +------------------------------------ -\[Botkube Cloud\](https://app.botkube.io) was released with Botkube v1.0 and enhanced with advanced Slack support in \[v1.1.0\](https://botkube.io/blog/botkube-v1-1-0-release-notes). Botkube Cloud provides quicker configuration and installation, multi-cluster configuration management, aggregated audit and event logs for all of your clusters, and advanced Slack multi-cluster executor routing. +[Botkube Cloud](https://app.botkube.io/) was released with Botkube v1.0 and enhanced with advanced Slack support in [v1.1.0](https://botkube.io/blog/botkube-v1-1-0-release-notes). Botkube Cloud provides quicker configuration and installation, multi-cluster configuration management, aggregated audit and event logs for all of your clusters, and advanced Slack multi-cluster executor routing. If you are using Botkube in your cluster with local configuration and you didn't install via Botkube Cloud, you now have a simple on-ramp to the advanced Botkube Cloud services. Here's how to migrate your Botkube installation: -1\. Create a \[Botkube Cloud\](https://app.botkube.io) account - -2\. Install the \[Botkube CLI\](https://docs.botkube.io/cli/getting-started) - -3\. Run botkube login to \[authenticate\](https://docs.botkube.io/cli/getting-started#first-use) your CLI - -4\. Run botkube migrate to \[move your configuration\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to the cloud and connect your Botkube installation automatically +1. Create a [Botkube Cloud](https://app.botkube.io/) account + +2. Install the [Botkube CLI](https://docs.botkube.io/cli/getting-started) + +3. Run botkube login to [authenticate](https://docs.botkube.io/cli/getting-started#first-use) your CLI + +4. Run botkube migrate to [move your configuration](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to the cloud and connect your Botkube installation automatically + Botkube Cloud is free to use for a single cluster up to 20 nodes. For multi-cluster management, larger clusters (>20 nodes), and advanced Slack functionality, a Botkube Cloud subscription is required. -\## Exec Plugin +Exec Plugin +----------- The Exec plugin is the result of an experiment to find out how flexible the Botkube plugin system really can be. Exec allows you to install and run any CLI directly from your communication platform with Botkube. It also lets you create your own interactive Slack interface for those CLIs. The Exec plugin is not meant as a replacement for dedicated executor plugins, but you can use it to get acquainted with the plugin system, to quickly test out a new CLI in Botkube, or in a lab environment. -Check out the \[installation\](https://docs.botkube.io/configuration/executor/exec) and \[usage\](https://docs.botkube.io/usage/executor/exec) documentation for details on how to get started. +Check out the [installation](https://docs.botkube.io/configuration/executor/exec) and [usage](https://docs.botkube.io/usage/executor/exec) documentation for details on how to get started. -\## Bug Fixes +Bug Fixes +--------- -We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v1.2.0). +We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v1.2.0). -We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-3-0-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-3-0-release-notes.md index 04aaaa5..30e4f38 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-3-0-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-3-0-release-notes.md @@ -17,84 +17,84 @@ Our most recent release of Botkube Cloud & Open Source brings important features ### Table of Contents -* [What is Botkube?](#what-is-botkube--2) -* [Keptn Source Plugin](#keptn-source-plugin-2) -* [Flux CD Executor Plugin](#flux-cd-executor-plugin-2) -* [GitHub Events Source Plugin](#github-events-source-plugin-2) -* [Slack message reactions](#slack-message-reactions-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [What is Botkube?](#what-is-botkube-) +* [Keptn Source Plugin](#keptn-source-plugin) +* [Flux CD Executor Plugin](#flux-cd-executor-plugin) +* [GitHub Events Source Plugin](#github-events-source-plugin) +* [Slack message reactions](#slack-message-reactions) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you-) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud The Botkube plugin ecosystem is expanding! We are excited to announce the latest release of Botkube, packed with new features and improvements to enhance your Kubernetes collaborative troubleshooting experience. This release introduces: -\* GitHub source plugin +* GitHub source plugin + +* Keptn source plugin + +* Flux CD executor plugin + +* Slack message reactions + -\* Keptn source plugin +As usual, all of these plugins can be easily configured in [Botkube Cloud](https://app.botkube.io/) or via [manual YAML configuration](https://docs.botkube.io/configuration/) for the open source Botkube engine. -\* Flux CD executor plugin +[Botkube Actions](https://docs.botkube.io/configuration/action) also allow you to automate any of the Botkube plugins. That means that any source plugin can trigger a command in any executor plugin. Botkube is the automation glue that can tie together all of the tools you use both inside and outside of your Kubernetes cluster. We have more details coming up in future blog posts on how to use Botkube to manage and monitor your GitOps workflows with diverse tools. -\* Slack message reactions - -As usual, all of these plugins can be easily configured in \[Botkube Cloud\](https://app.botkube.io) or via \[manual YAML configuration\](https://docs.botkube.io/configuration/) for the open source Botkube engine. - -\[Botkube Actions\](https://docs.botkube.io/configuration/action) also allow you to automate any of the Botkube plugins. That means that any source plugin can trigger a command in any executor plugin. Botkube is the automation glue that can tie together all of the tools you use both inside and outside of your Kubernetes cluster. We have more details coming up in future blog posts on how to use Botkube to manage and monitor your GitOps workflows with diverse tools. - -\## What is Botkube? +What is Botkube? +---------------- Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. In this blog post, we'll give you an overview of all of Botkube’s newest features from the v1.2.0 release. -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ -\## Keptn Source Plugin +Keptn Source Plugin +------------------- The Keptn source plugin is the latest edition to Botkube’s source plugin CNCF tool suite. By incorporating Keptn, you can effortlessly orchestrate load tests and validate the results. To simplify the understanding of Keptn's synergy with Botkube, we'll take a hands-on approach. We'll deploy a straightforward task using Keptn, and then seamlessly capture Keptn events through Botkube. The result? Notifications delivered straight to your chosen communication platform, such as Slack. This integration not only enhances your insight into the deployment process but also streamlines your workflow.With this exciting update, we're merging the capabilities of Keptn and Botkube to streamline your workflow, enhance collaboration, and ensure that your deployments are more efficient than ever before. -Find out how to use the Keptn source plugin in the \[documentation\](https://docs.botkube.io/configuration/source/keptn). +Find out how to use the Keptn source plugin in the [documentation](https://docs.botkube.io/configuration/source/keptn). -You can read all about how we developed the Keptn source plugin (and how to create your own source plugins) in this \[Botkube blog post\](https://botkube.io/blog/implementing-your-own-botkube-plugin-a-real-life-use-case). +You can read all about how we developed the Keptn source plugin (and how to create your own source plugins) in this [Botkube blog post](https://botkube.io/blog/implementing-your-own-botkube-plugin-a-real-life-use-case). -\## Flux CD Executor Plugin +Flux CD Executor Plugin +----------------------- -Introducing the New Flux Executor Plugin -The Flux executor plugin marks a new approach to Botkube executor plugins. It doesn't just offer the convenience of running Flux CLI commands directly from communications platforms like Slack or Discord; it goes further by incorporating interactivity, such as tables and more. +Introducing the New Flux Executor Plugin The Flux executor plugin marks a new approach to Botkube executor plugins. It doesn't just offer the convenience of running Flux CLI commands directly from communications platforms like Slack or Discord; it goes further by incorporating interactivity, such as tables and more. -But the true game-changer is the integration of a practical, real-world use-case right from the start. With the Botkube Flux executor, executing a single command can initiate a thorough comparison between a specific pull request and the current state of your cluster. For example: -Sample code -This command streamlines tasks like: -Automatically identifying the related GitHub repository linked to the provided kustomization. -Effortlessly cloning the repository. -Checking out the specified pull request. -Seamlessly contrasting the changes in the pull request against the cluster's present state. -Gone are the days of laborious manual processes.The Botkube Flux executor helps to eliminate these complexities out of the GitOps workflow. +But the true game-changer is the integration of a practical, real-world use-case right from the start. With the Botkube Flux executor, executing a single command can initiate a thorough comparison between a specific pull request and the current state of your cluster. For example: Sample code This command streamlines tasks like: Automatically identifying the related GitHub repository linked to the provided kustomization. Effortlessly cloning the repository. Checking out the specified pull request. Seamlessly contrasting the changes in the pull request against the cluster's present state. Gone are the days of laborious manual processes.The Botkube Flux executor helps to eliminate these complexities out of the GitOps workflow. -Find out how to use the Flux CD executor plugin in the \[documentation\](https://docs.botkube.io/configuration/executor/flux). +Find out how to use the Flux CD executor plugin in the [documentation](https://docs.botkube.io/configuration/executor/flux). -\## GitHub Events Source Plugin +GitHub Events Source Plugin +--------------------------- The GitHub Events source plugin is the first Botkube plugin that we have developed that works outside of the Kubernetes cluster. This plugin allows you to stream events from the GitHub repositories you select via Botkube to your collaboration platform. Botkube Actions make this plugin especially exciting. You can use the GitHub plugin to watch for pull requests that make application or configuration changes to your environment and trigger other tools, like GitOps reviews or security scans. -Find out how to use the GitHub Events source plugin in the \[documentation\](https://docs.botkube.io/configuration/source/github-events). +Find out how to use the GitHub Events source plugin in the [documentation](https://docs.botkube.io/configuration/source/github-events). -\## Slack message reactions +Slack message reactions +----------------------- Botkube has introduced a lot of new executor plugins to help you troubleshoot and manage your Kubernetes clusters. Some commands take some time to process in the background and until now, you couldn't see if the command had completed, you just had to wait for a response. We have introduced emoji reactions to executor requests that show the state of the command. If you see 👀, the command is still running. Once the command is complete, the reaction automatically changes to ✅. ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64db6cd0c67e3e749437884e_Screenshot%202023-08-15%20at%2014.17.12.png) -Note that if you are using Botkube already, you need to add the \`reactions:write\` scope to the Bot Token. If you are using the Botkube \[Cloud Slack\](https://docs.botkube.io/installation/slack/cloud-slack) app, you can update directly from the Botkube Cloud web app. If you are using the Botkube \[Socket Slack\](https://docs.botkube.io/installation/slack/socket-slack/self-hosted) app, you need to go to the \[Slack App console\](https://api.slack.com/apps/), select your Botkube app, navigate to OAuth & Permissions, and add the \`reactions:write\` scope to the Bot Token configuration. You then need to reinstall the Slack app from the console. +Note that if you are using Botkube already, you need to add the `reactions:write` scope to the Bot Token. If you are using the Botkube [Cloud Slack](https://docs.botkube.io/installation/slack/cloud-slack) app, you can update directly from the Botkube Cloud web app. If you are using the Botkube [Socket Slack](https://docs.botkube.io/installation/slack/socket-slack/self-hosted) app, you need to go to the [Slack App console](https://api.slack.com/apps/), select your Botkube app, navigate to OAuth & Permissions, and add the `reactions:write` scope to the Bot Token configuration. You then need to reinstall the Slack app from the console. -\## Bug Fixes +Bug Fixes +--------- -We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v1.3.0). +We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v1.3.0). -We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You! +-------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](http://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-4-0-release-notes.md b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-4-0-release-notes.md index df04c51..ae401f4 100644 --- a/hack/assistant-setup/content/botkube.io__blog__botkube-v1-4-0-release-notes.md +++ b/hack/assistant-setup/content/botkube.io__blog__botkube-v1-4-0-release-notes.md @@ -17,79 +17,88 @@ Our most recent release of Botkube brings important features that help with Kube ### Table of Contents -* [What is Botkube?](#what-is-botkube--2) -* [Argo CD Source Plugin](#argo-cd-source-plugin-2) -* [Mattermost Bot Account Support](#mattermost-bot-account-support-2) -* [Custom OpenAI API Parameters for the Doctor Plugin](#custom-openai-api-parameters-for-the-doctor-plugin-2) -* [Elasticsearch V8 Support](#elasticsearch-v8-support-2) -* [Restart Crashed Plugins](#restart-crashed-plugins-2) -* [Bug Fixes](#bug-fixes-2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [What is Botkube?](#what-is-botkube-) +* [Argo CD Source Plugin](#argo-cd-source-plugin) +* [Mattermost Bot Account Support](#mattermost-bot-account-support) +* [Custom OpenAI API Parameters for the Doctor Plugin](#custom-openai-api-parameters-for-the-doctor-plugin) +* [Elasticsearch V8 Support](#elasticsearch-v8-support) +* [Restart Crashed Plugins](#restart-crashed-plugins) +* [Bug Fixes](#bug-fixes) +* [Feedback - We’d Love to Hear From You](#feedback-we-d-love-to-hear-from-you) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud Botkube continues to enhance your GitOps experience by adding support for Argo CD via a new source plugin! We are excited to announce the latest release of Botkube, packed with new features and improvements to enhance your Kubernetes collaborative troubleshooting experience. This release introduces: -\* \[Argo CD source plugin\](https://docs.botkube.io/configuration/source/argocd) +* [Argo CD source plugin](https://docs.botkube.io/configuration/source/argocd) + +* [Mattermost Bot Account support](https://docs.botkube.io/installation/mattermost/self-hosted) + +* [Custom OpenAI API parameters for the Doctor plugin](https://docs.botkube.io/configuration/executor/doctor) + +* [Elasticsearch V8 support](https://docs.botkube.io/installation/elasticsearch/self-hosted)) + +* Restart crashed plugins + -\* \[Mattermost Bot Account support\](https://docs.botkube.io/installation/mattermost/self-hosted) +As usual, plugins can be easily configured in [Botkube Cloud](https://app.botkube.io/) or via [manual YAML configuration](https://docs.botkube.io/configuration/) for the open source Botkube engine. -\* \[Custom OpenAI API parameters for the Doctor plugin\](https://docs.botkube.io/configuration/executor/doctor) +[Botkube Actions](https://docs.botkube.io/configuration/action) also allow you to automate any of the Botkube plugins. That means that any source plugin can trigger a command in any executor plugin. Botkube is the automation glue that can tie together all of the tools you use both inside and outside of your Kubernetes cluster. We have more details coming up in future blog posts on how to use Botkube to manage and monitor your GitOps workflows with diverse tools. -\* \[Elasticsearch V8 support\](https://docs.botkube.io/installation/elasticsearch/self-hosted)) +What is Botkube? +---------------- -\* Restart crashed plugins +[Botkube](http://app.botkube.io/) is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. -As usual, plugins can be easily configured in \[Botkube Cloud\](https://app.botkube.io) or via \[manual YAML configuration\](https://docs.botkube.io/configuration/) for the open source Botkube engine. +_If you have any feature requests or bug reports, reach out to us on [Slack](http://join.botkube.io/) or submit a [Github issue](https://github.com/kubeshop/botkube/issues)_ -\[Botkube Actions\](https://docs.botkube.io/configuration/action) also allow you to automate any of the Botkube plugins. That means that any source plugin can trigger a command in any executor plugin. Botkube is the automation glue that can tie together all of the tools you use both inside and outside of your Kubernetes cluster. We have more details coming up in future blog posts on how to use Botkube to manage and monitor your GitOps workflows with diverse tools. +Argo CD Source Plugin +--------------------- -\## What is Botkube? - -\[Botkube\](http://app.botkube.io) is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. - -\*If you have any feature requests or bug reports, reach out to us on \[Slack\](http://join.botkube.io) or submit a \[Github issue\](https://github.com/kubeshop/botkube/issues)\* - -\## Argo CD Source Plugin - -The \[Argo CD source plugin\](https://docs.botkube.io/configuration/source/argocd) is another addition to Botkube's \[support for GitOps processes and lifecycles\](https://botkube.io/blog/enhancing-gitops-workflows-with-botkube). The Argo CD source plugin allows users to receive and interact with crucial real time notifications when deploying applications in production -- how the deployment is progressing, a health check on the deployment, and more — all directly into communication platforms like Slack, Mattermost, MS Teams, and Discord. While Argo CD does provide a native notification system in some of these platforms, the set-up process can be cumbersome and difficult with many manual steps to get up and running. Botkube’s plug-and-play-style native Argo CD plugin can be configured in minutes directly in \[Botkube’s web interface\](http://app.botkube.io). +The [Argo CD source plugin](https://docs.botkube.io/configuration/source/argocd) is another addition to Botkube's [support for GitOps processes and lifecycles](https://botkube.io/blog/enhancing-gitops-workflows-with-botkube). The Argo CD source plugin allows users to receive and interact with crucial real time notifications when deploying applications in production -- how the deployment is progressing, a health check on the deployment, and more — all directly into communication platforms like Slack, Mattermost, MS Teams, and Discord. While Argo CD does provide a native notification system in some of these platforms, the set-up process can be cumbersome and difficult with many manual steps to get up and running. Botkube’s plug-and-play-style native Argo CD plugin can be configured in minutes directly in [Botkube’s web interface](http://app.botkube.io/). ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6509a59c63441b36226ea80d_argocd-events-e6eabb1f581e9822020d55461539bfcd.png) -You can get started with the Argo CD with the \[Documentation\](https://docs.botkube.io/configuration/source/argocd). +You can get started with the Argo CD with the [Documentation](https://docs.botkube.io/configuration/source/argocd). -\## Mattermost Bot Account Support +Mattermost Bot Account Support +------------------------------ -Botkube now supports running as a \[Mattermost bot account\](https://developers.mattermost.com/integrate/reference/bot-accounts/). Mattermost bot accounts have more limited privileges, do not consume a user license, and are not associated with a specific user so there's no concern about Botkube continuing to run if someone leaves your organization. +Botkube now supports running as a [Mattermost bot account](https://developers.mattermost.com/integrate/reference/bot-accounts/). Mattermost bot accounts have more limited privileges, do not consume a user license, and are not associated with a specific user so there's no concern about Botkube continuing to run if someone leaves your organization. -Get started with Mattermost and Botkube with the \[documentation\](https://docs.botkube.io/installation/mattermost/self-hosted). +Get started with Mattermost and Botkube with the [documentation](https://docs.botkube.io/installation/mattermost/self-hosted). -\## Custom OpenAI API Parameters for the Doctor Plugin +Custom OpenAI API Parameters for the Doctor Plugin +-------------------------------------------------- -The Botkube Doctor plugin now supports configurable alternate base URLs for the OpenAI API. This means you can use other OpenAI-compatible APIs with the doctor plugin. You can use Azure OpenAI Service, 3rd party Llama models, OpenAI proxies, and more. +The Botkube Doctor plugin now supports configurable alternate base URLs for the OpenAI API. This means you can use other OpenAI-compatible APIs with the doctor plugin. You can use Azure OpenAI Service, 3rd party Llama models, OpenAI proxies, and more. -Find out how to configure custom parameters for Doctor in the \[documentation\](https://docs.botkube.io/configuration/executor/doctor). +Find out how to configure custom parameters for Doctor in the [documentation](https://docs.botkube.io/configuration/executor/doctor). -\## Elasticsearch V8 Support +Elasticsearch V8 Support +------------------------ Botkube now supports Elasticsearch V8 as a platform. If you're using the latest and greatest version of Elasticsearch, Botkube has you covered and will happily send your events over. -Get set up with Elasticsearch with the \[documentation\](https://docs.botkube.io/installation/elasticsearch/self-hosted). +Get set up with Elasticsearch with the [documentation](https://docs.botkube.io/installation/elasticsearch/self-hosted). -## Restart Crashed Plugins +Restart Crashed Plugins +----------------------- We have added advanced logic to the Botkube plugin system in order to detect plugins that might have crashed and automatically restart them. This makes Botkube more reliable as a core part of your observability and troubleshooting platform. Plugin crashes are logged to the Botkube pod log and will only attempt to restart a fixed number of times in order to avoid continuous restart loops. -\## Bug Fixes +Bug Fixes +--------- -We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the \[changelog\](https://github.com/kubeshop/botkube/releases/tag/v1.4.0). +We have also fixed a couple of small bugs in Botkube that were reported to us by users and found by us. You can see the full list of changes in the [changelog](https://github.com/kubeshop/botkube/releases/tag/v1.4.0). -We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a \[GitHub issue\](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. +We appreciate your bug reports and pull requests! If you notice a bug in Botkube, please report it as a [GitHub issue](https://github.com/kubeshop/botkube/issues) and we are happy to collaborate with you on getting it resolved. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You +------------------------------------- As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. -You can talk to us in the Botkube \[GitHub issues\](https://github.com/kubeshop/botkube/issues), Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can talk to us in the Botkube [GitHub issues](https://github.com/kubeshop/botkube/issues), Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__build-a-github-issues-reporter-for-failing-kubernetes-apps-with-botkube-plugins.md b/hack/assistant-setup/content/botkube.io__blog__build-a-github-issues-reporter-for-failing-kubernetes-apps-with-botkube-plugins.md index 33c2305..95c3621 100644 --- a/hack/assistant-setup/content/botkube.io__blog__build-a-github-issues-reporter-for-failing-kubernetes-apps-with-botkube-plugins.md +++ b/hack/assistant-setup/content/botkube.io__blog__build-a-github-issues-reporter-for-failing-kubernetes-apps-with-botkube-plugins.md @@ -5,45 +5,70 @@ URL Source: https://botkube.io/blog/build-a-github-issues-reporter-for-failing-k Published Time: Feb 01, 2023 Markdown Content: -Botkube gives you fast and simple access to your clusters right from your communication platform. It does that by sending \[actionable notifications\](https://docs.botkube.io/configuration/action) (via \[_sources\](https://docs.botkube.io/architecture/#source)_) and allowing you to run _kubectl_ and _helm_ commands (via \[_executors\](https://docs.botkube.io/architecture/#executor)_) straight from the platform (Slack, Discord, Microsoft Teams and Mattermost). +![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/636df3ec19d99029e7cfb5bd_n-vUM0Lz3yXA1WLyfxEMUxXQpUDEiKv9EmEe4NnCbCI.png) + +Mateusz Szostok + +Software Engineer + +Botkube + +Botkube 0.17 introduces plugin support. In this guide you will learn how to create your own Botkube executor plugin to build a GitHub issues reporter for Kubernetes apps that are failing. + +### Table of Contents + +* [Goal](#goal) +* [Prerequisites](#prerequisites) +* [What's under the hood](#what-s-under-the-hood) +* [Step-By-Step Instructions](#step-by-step-instructions) +* [Summary](#summary) +* [How can I get involved?](#how-can-i-get-involved-) + +#### Start Using Botkube AI Assistant Today! + +Botkube gives you fast and simple access to your clusters right from your communication platform. It does that by sending [actionable notifications](https://docs.botkube.io/configuration/action) (via [_sources_](https://docs.botkube.io/architecture/#source)) and allowing you to run _kubectl_ and _helm_ commands (via [_executors_](https://docs.botkube.io/architecture/#executor)) straight from the platform (Slack, Discord, Microsoft Teams and Mattermost). In the recent Botkube 0.17 release, we took it to the next level by giving you an easy way to bring your own tools to a chat window! In this blog post, you will learn how to develop your own executor plugin to fill the gap in your daily workflow. -\## Goal +Goal +---- To make it simple but functional, I will show you how to develop an executor that creates an issue for failing Kubernetes resources such as Job, Deployment, StatefulSet, and Pod. -![Image 1: Github reporter bot for updating Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d810824fa1ec68968b8ee2_gh-demo.gif) +![Image 2: Github reporter bot for updating Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d810824fa1ec68968b8ee2_gh-demo.gif) GitHub executor demo -\### Why it's worth it +### Why it's worth it With just a few lines of code, we will automate the process of creating a GitHub issue that out-of-the box contains Kubernetes-specific information useful for further debugging. All of that, directly from Slack, Discord, Mattermost, or MS Teams! No need for connecting to your cluster in your terminal, installing and running _kubectl_ commands and copy-pasting fetched details into your browser. -Instead, you will be able to type \*\*_@Botkube gh create issue pod/foo\*\*_ from any device that has access to your chat, including mobile apps. +Instead, you will be able to type **_@Botkube gh create issue pod/foo_** from any device that has access to your chat, including mobile apps. -\## Prerequisites +Prerequisites +------------- -\- Access to a Kubernetes cluster**‍**‍ +* Access to a Kubernetes cluster**‍**‍ To create a local cluster for testing purposes using [`k3d`](https://k3d.io/v5.0.1/#installation), run: -\- \[Botkube installed and configured[\](https://docs.botkube.io)](https://docs.botkube.io/installation/) - -\- Basic understanding of the Go language[‍](https://go.dev/doc/install) - -\- \[Go\](https://go.dev/doc/install) at least 1.18 +* [Botkube installed and configured](https://docs.botkube.io/)[](https://docs.botkube.io/installation/) + +* Basic understanding of the Go language[‍](https://go.dev/doc/install) + +* [Go](https://go.dev/doc/install) at least 1.18 + ‍ -\## What's under the hood +What's under the hood +--------------------- To understand better what we will develop, I want to give you a bigger picture of the Botkube plugin system. The animation below focuses only on the executor part, but it's almost the same for sources. -![Image 2: Custom built plugin system for Kubernetes tools](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d811d4762a4de9804bc215_arch-executor-plugin.gif) +![Image 3: Custom built plugin system for Kubernetes tools](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d811d4762a4de9804bc215_arch-executor-plugin.gif) Botkube Plugin System @@ -53,39 +78,43 @@ The plugin manager consumes user's configuration, and downloads and starts **onl Such approach allows us to decouple the Botkube core and its extensions. Thanks to that, we can: -\- Avoid having the Botkube core crash if a given plugin malfunctions - -\- Write extensions in any language as gRPC is used +* Avoid having the Botkube core crash if a given plugin malfunctions + +* Write extensions in any language as gRPC is used + From the end-user's perspective, you can: -\- Specify and use multiple plugin repositories at the same time - -\- Enable different plugin versions within the same Botkube version - -To learn more, see \[Botkube architecture\](https://docs.botkube.io/architecture/). +* Specify and use multiple plugin repositories at the same time + +* Enable different plugin versions within the same Botkube version + -\## Step-By-Step Instructions +To learn more, see [Botkube architecture](https://docs.botkube.io/architecture/). -To quickly onboard you to Botkube plugins, we maintain the \[kubeshop/botkube-plugins-template\](https://github.com/kubeshop/botkube-plugins-template) repository that has all batteries included. Our first step is to bootstrap your own GitHub repository. +Step-By-Step Instructions +------------------------- -To check out the entire code, visit the \[Botkube GitHub repository\](https://github.com/kubeshop/botkube/tree/main/cmd/executor/gh/main.go). +To quickly onboard you to Botkube plugins, we maintain the [kubeshop/botkube-plugins-template](https://github.com/kubeshop/botkube-plugins-template) repository that has all batteries included. Our first step is to bootstrap your own GitHub repository. -\### Repository setup +To check out the entire code, visit the [Botkube GitHub repository](https://github.com/kubeshop/botkube/tree/main/cmd/executor/gh/main.go). -1\. Navigate to \[botkube-plugins-template\](https://github.com/kubeshop/botkube-plugins-template). +### Repository setup -2\. Click \*\*Use this template\*\*, and then \*\*Create a new repository\*\*. +1. Navigate to [botkube-plugins-template](https://github.com/kubeshop/botkube-plugins-template). + +2. Click **Use this template**, and then **Create a new repository**. + ‍ -![Image 3: github pull request automation](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d812e448eb8e82ad2d44d9_tpl-repo.png) +![Image 4: github pull request automation](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d812e448eb8e82ad2d44d9_tpl-repo.png) By doing so, you will create your own plugin repository with a single commit. -3\. Clone your repository locally:_‍_ +3. Clone your repository locally:_‍_ -4\. Create and push a new tag to perform the initial release: +4. Create and push a new tag to perform the initial release: After a few minutes, you should see a new GitHub release. @@ -97,34 +126,35 @@ In this blog post, we use only GitHub releases that work out-of-the-box. Releasi ‍ -\### Develop GitHub executor +### Develop GitHub executor To make the code-snippets more readable, I skipped the error handling. However, it will be useful if you will add error handling for the final implementation. You can check the full [gh source-code](https://github.com/kubeshop/botkube/tree/main/cmd/executor/gh/main.go) for the reference. ‍ -1\. Create a \`cmd/gh/main.go\` file with the following template: +1. Create a `cmd/gh/main.go` file with the following template:
package main
import (
"context"
"github.com/hashicorp/go-plugin"
"github.com/kubeshop/botkube/pkg/api"
"github.com/kubeshop/botkube/pkg/api/executor"
)
const (
pluginName = "gh"
)
// GHExecutor implements the Botkube executor plugin interface.
type GHExecutor struct{}
// Metadata returns details about the GitHub plugin.
func (*GHExecutor) Metadata(context.Context) (api.MetadataOutput, error) {
return api.MetadataOutput{
Version: "v1.0.0",
Description: "GH creates an issue on GitHub for a related Kubernetes resource.",
}, nil
}
// Execute returns a given command as a response.
func (e *GHExecutor) Execute(ctx context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) {
return executor.ExecuteOutput{
Data: "Aloha! 🏄",
}, nil
}
func main() {
executor.Serve(map[string]plugin.Plugin{
pluginName: &executor.Plugin{
Executor: &GHExecutor{},
},
})
}
This template code imports required packages and registers `GHExecutor` as the gRPC plugin. Our `GHExecutor` service already implements the required [Protocol Buffers](https://github.com/kubeshop/botkube/blob/main/proto/executor.proto) contract. As you can see, we require **only 2 methods**. +\- The `Metadata` method returns basic information about your plugin. This data is used when the plugin index is [generated in an automated way](https://docs.botkube.io/plugin/repo). + \- The `Execute` method is the heart of your executor plugin. This method runs your business logic and returns the output as plaintext. Next, the Botkube core sends back the response to a given communication platform. ‍ -2\. To download the imported dependencies, in your terminal, run: +2. To download the imported dependencies, in your terminal, run: ‍ -3\. Great! At this stage, you already have a functional Botkube executor plugin. However, for now, it only responds with a hard-coded "Aloha!" greeting. But it can do that already on all supported communication platforms. -‍ +3. Great! At this stage, you already have a functional Botkube executor plugin. However, for now, it only responds with a hard-coded "Aloha!" greeting. But it can do that already on all supported communication platforms. ‍ -![Image 4: Getting GitHub reports in Slack about repo](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d814cf12ac7e2d4a40d002_demo-gh-aloha.gif) +![Image 5: Getting GitHub reports in Slack about repo](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d814cf12ac7e2d4a40d002_demo-gh-aloha.gif) Don't worry, in the next steps, we will implement our business logic. -4\. Add support for user configuration: +4. Add support for user configuration:
package main
import (
"context"
"fmt"
"github.com/kubeshop/botkube/pkg/api/executor"
"github.com/kubeshop/botkube/pkg/pluginx"
)
// Config holds the GitHub executor configuration.
type Config struct {
GitHub struct {
Token string `yaml:"token"`
Repository string `yaml:"repository"`
IssueTemplate string `yaml:"issueTemplate"`
} `yaml:"gitHub"`
}
// Execute returns a given command as a response.
func (e *GHExecutor) Execute(_ context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) {
var cfg Config
pluginx.MergeExecutorConfigs(in.Configs, &cfg)
}
@@ -136,7 +166,7 @@ In our case, we need to have a GitHub token, a GitHub repository where the issue ‍**‍**‍ -5\. Let's implement command parsing to properly understand command syntax: +5. Let's implement command parsing to properly understand command syntax: Our goal is to parse `gh create issue KIND/NAME [-n, --namespace]` @@ -148,7 +178,7 @@ Under the hood, the `pluginx.ParseCommand` method uses [go-arg](https://github.c ‍ -6\. We are almost there! Now let's fetch the issue details: +6. We are almost there! Now let's fetch the issue details:
const (
logsTailLines = 150
defaultNamespace = "default"
)
// Execute returns a given command as a response.
func (e *GHExecutor) Execute(ctx context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) {
// ...
issueDetails, _ := getIssueDetails(ctx, cmd.Create.Issue.Namespace, cmd.Create.Issue.Type)
// ...
}
// IssueDetails holds all available information about a given issue.
type IssueDetails struct {
Type string
Namespace string
Logs string
Version string
}
func getIssueDetails(ctx context.Context, namespace, name string) (IssueDetails, error) {
if namespace == "" {
namespace = defaultNamespace
}
logs, _ := pluginx.ExecuteCommand(ctx, fmt.Sprintf("kubectl logs %s -n %s --tail %d", name, namespace, logsTailLines))
ver, _ := pluginx.ExecuteCommand(ctx, "kubectl version -o yaml")
return IssueDetails{
Type: name,
Namespace: namespace,
Logs: logs,
Version: ver,
}, nil
}
@@ -156,15 +186,15 @@ Here, we fetch logs and the cluster version, but you can extend it to fetch othe ‍ -7\. Render issue description: +7. Render issue description: -
import (
"bytes"
"context"
"fmt"
"text/template"
"github.com/kubeshop/botkube/pkg/api/executor"
)
// Execute returns a given command as a response.
func (e *GHExecutor) Execute(ctx context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) {
// ...
mdBody, _ := renderIssueBody(cfg.GitHub.IssueTemplate, issueDetails)
// ...
}
const defaultIssueBody = `
## Description
This issue refers to the problems connected with {{ .Type | code "bash" }} in namespace {{ .Namespace | code "bash" }}
<details>
<summary><b>Logs</b></summary>
{{ .Logs | code "bash"}}
</details>
### Cluster details
{{ .Version | code "yaml"}}
`
func renderIssueBody(bodyTpl string, data IssueDetails) (string, error) {
if bodyTpl == "" {
bodyTpl = defaultIssueBody
}
tmpl, _ := template.New("issue-body").Funcs(template.FuncMap{
"code": func(syntax, in string) string {
return fmt.Sprintf("\n```%s\n%s\n```\n", syntax, in)
},
}).Parse(bodyTpl)
var body bytes.Buffer
tmpl.Execute(&body, data)
return body.String(), nil
}
+
import (
"bytes"
"context"
"fmt"
"text/template"
"github.com/kubeshop/botkube/pkg/api/executor"
)
// Execute returns a given command as a response.
func (e *GHExecutor) Execute(ctx context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) {
// ...
mdBody, _ := renderIssueBody(cfg.GitHub.IssueTemplate, issueDetails)
// ...
}
const defaultIssueBody = `
## Description
This issue refers to the problems connected with {{ .Type | code "bash" }} in namespace {{ .Namespace | code "bash" }}
Logs
{{ .Logs | code "bash"}}
### Cluster details
{{ .Version | code "yaml"}}
`
func renderIssueBody(bodyTpl string, data IssueDetails) (string, error) {
if bodyTpl == "" {
bodyTpl = defaultIssueBody
}
tmpl, _ := template.New("issue-body").Funcs(template.FuncMap{
"code": func(syntax, in string) string {
return fmt.Sprintf("\n```%s\n%s\n```\n", syntax, in)
},
}).Parse(bodyTpl)
var body bytes.Buffer
tmpl.Execute(&body, data)
return body.String(), nil
}
In this step, we use the issue template that the user specified in plugin configuration. I decided to use the [Go template](https://pkg.go.dev/text/template), as it fits perfectly into our template rendering flow. ‍ -8\. Finally! Submitting an issue! +8. Finally! Submitting an issue!
package main
import (
"context"
"fmt"
"github.com/kubeshop/botkube/pkg/api/executor"
"github.com/kubeshop/botkube/pkg/pluginx"
)
// Execute returns a given command as a response.
func (e *GHExecutor) Execute(ctx context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) {
// ...
title := fmt.Sprintf("The `%s` malfunctions", cmd.Create.Issue.Type)
issueURL, _ := createGitHubIssue(cfg, title, mdBody)
return executor.ExecuteOutput{
Data: fmt.Sprintf("New issue created successfully! 🎉\n\nIssue URL: %s", issueURL),
}, nil
}
func createGitHubIssue(cfg Config, title, mdBody string) (string, error) {
cmd := fmt.Sprintf("gh issue create --title %q --body '%s' --label bug -R %s", title, mdBody, cfg.GitHub.Repository)
envs := map[string]string{
"GH_TOKEN": cfg.GitHub.Token,
}
return pluginx.ExecuteCommandWithEnvs(context.Background(), cmd, envs)
}
@@ -174,7 +204,7 @@ The `gh` CLI doesn't accept fine-grained access tokens. As a workaround, you can ‍ -9\. The last part is to download our dependencies. +9. The last part is to download our dependencies.
var depsDownloadLinks = map[string]api.Dependency{
"gh": {
URLs: map[string]string{
"darwin/amd64": "https://github.com/cli/cli/releases/download/v2.21.2/gh_2.21.2_macOS_amd64.tar.gz//gh_2.21.2_macOS_amd64/bin",
"linux/amd64": "https://github.com/cli/cli/releases/download/v2.21.2/gh_2.21.2_linux_amd64.tar.gz//gh_2.21.2_linux_amd64/bin",
"linux/arm64": "https://github.com/cli/cli/releases/download/v2.21.2/gh_2.21.2_linux_arm64.tar.gz//gh_2.21.2_linux_arm64/bin",
"linux/386": "https://github.com/cli/cli/releases/download/v2.21.2/gh_2.21.2_linux_386.tar.gz//gh_2.21.2_linux_386/bin",
},
},
"kubectl": {
URLs: map[string]string{
"darwin/amd64": "https://dl.k8s.io/release/v1.26.0/bin/darwin/amd64/kubectl",
"linux/amd64": "https://dl.k8s.io/release/v1.26.0/bin/linux/amd64/kubectl",
"linux/arm64": "https://dl.k8s.io/release/v1.26.0/bin/linux/arm64/kubectl",
"linux/386": "https://dl.k8s.io/release/v1.26.0/bin/linux/386/kubectl",
},
},
}
func main() {
pluginx.DownloadDependencies(depsDownloadLinks)
//...
}
@@ -182,24 +212,22 @@ We already improved this step and in the 0.18 version Botkube will download defi ‍ -Congrats! The \*gh_\*_ plugin is finally implemented. Now, let's play a DevOps role! 😈 In the next section, I will show you how to build and release your brand-new executor plugin. +Congrats! The _gh_ plugin is finally implemented. Now, let's play a DevOps role! 😈 In the next section, I will show you how to build and release your brand-new executor plugin. -\### Release the \*gh_\*_ executor +### Release the _gh_ executor -It's time to build your plugin. For that purpose, we will use \[GoReleaser\](https://goreleaser.com/). It simplifies building Go binaries for different architectures. The important thing is to produce the binaries for the architecture of the host platform where Botkube is running. Adjust the \*\*goos\*\*, \*\*goarch\*\*, and \*\*goarm\*\* properties based on this architecture. +It's time to build your plugin. For that purpose, we will use [GoReleaser](https://goreleaser.com/). It simplifies building Go binaries for different architectures. The important thing is to produce the binaries for the architecture of the host platform where Botkube is running. Adjust the **goos**, **goarch**, and **goarm** properties based on this architecture. -‍ -Add new build entry under \*.goreleaser.yaml\*: -‍ +‍ Add new build entry under _.goreleaser.yaml_: ‍
builds:
- id: gh
main: cmd/gh/main.go
binary: executor_gh_{{ .Os }}_{{ .Arch }}
no_unique_dist_dir: true
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
goarch:
- amd64
- arm64
goarm:
- 7
-‍ -Now, we need to distribute our plugins. As we mentioned earlier, a plugin repository can be any static file server. The \[kubeshop/botkube-plugins-template\](https://github.com/kubeshop/botkube-plugins-template) repository comes with two \[GitHub Actions\](https://github.com/features/actions): +‍ Now, we need to distribute our plugins. As we mentioned earlier, a plugin repository can be any static file server. The [kubeshop/botkube-plugins-template](https://github.com/kubeshop/botkube-plugins-template) repository comes with two [GitHub Actions](https://github.com/features/actions): -1\. The \[.github/workflows/release.yml\](https://github.com/kubeshop/botkube-plugins-template/blob/main/.github/workflows/release.yml) action, which builds the plugin binaries and index file each time a new tag is pushed. - -2\. The \[.github/workflows/pages-release.yml\](https://github.com/kubeshop/botkube-plugins-template/blob/main/.github/workflows/pages-release.yml) action, which updates GitHub Pages with plugin binaries and index file each time a new tag is pushed. +1. The [.github/workflows/release.yml](https://github.com/kubeshop/botkube-plugins-template/blob/main/.github/workflows/release.yml) action, which builds the plugin binaries and index file each time a new tag is pushed. + +2. The [.github/workflows/pages-release.yml](https://github.com/kubeshop/botkube-plugins-template/blob/main/.github/workflows/pages-release.yml) action, which updates GitHub Pages with plugin binaries and index file each time a new tag is pushed. + To cut a new release, you need to commit all your work and tag a new commit: @@ -207,37 +235,39 @@ Next, let's push our changes and the new tag: This triggers GitHub Action: -![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d817a66682780daf595ab4_release-job.png) +![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d817a66682780daf595ab4_release-job.png) -\### What this automation does under the hood +### What this automation does under the hood This automation: -1\. Installs the latest GoReleaser tool. - -2\. Builds all plugin binaries defined in the _.goreleaser.yaml_ file. - -3\. Generates an index file using the \[Botkube helper tool\](https://docs.botkube.io/plugin/repo#generate-index-file). +1. Installs the latest GoReleaser tool. + +2. Builds all plugin binaries defined in the _.goreleaser.yaml_ file. + +3. Generates an index file using the [Botkube helper tool](https://docs.botkube.io/plugin/repo#generate-index-file). + +4. Generates a release description. + +5. Uses the [gh](https://cli.github.com/) CLI to create a new GitHub release. + -4\. Generates a release description. - -5\. Uses the \[gh\](https://cli.github.com) CLI to create a new GitHub release. - -\### Use the _gh_ executor +### Use the _gh_ executor In the description of a new GitHub release, you will see the repository URL that you can use within Botkube. -\### Steps - -1\. Follow one of our \[installation guides\](https://docs.botkube.io/installation). Once you reach the Botkube deployment step, add flags specified in the steps below to \*helm install\*. +### Steps -2\. Export required environment variables: +1. Follow one of our [installation guides](https://docs.botkube.io/installation). Once you reach the Botkube deployment step, add flags specified in the steps below to _helm install_. + +2. Export required environment variables: + Follow the official GitHub guide on how to create a [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-personal-access-token-classic). To be able to create GitHub issues, add the **repo** permission. -3\. Add the \*gh_\*_ executor related configuration: +3. Add the _gh_ executor related configuration: -4\. Depending on the selected platform, add the _plugin-based_ executor binding. For Slack, it looks like this: +4. Depending on the selected platform, add the _plugin-based_ executor binding. For Slack, it looks like this: If you follow all the steps above, you will have all the necessary flags allowing you to install Botkube with the **_gh_** executor! @@ -245,29 +275,31 @@ Here's an example of a full command that you should have constructed for Slack i
export SLACK_CHANNEL_NAME={channel_name}
export SLACK_APP_TOKEN={token}
export SLACK_BOT_TOKEN={token}
export PLUGINS_URL={plugin_index_url}
export REPOSITORY={repo} # format OWNER/REPO_NAME, e.g. kubeshop/botkube
export GITHUB_TOKEN={token}
helm install --version v0.17.0 botkube --namespace botkube --create-namespace \
--set communications.default-group.socketSlack.enabled=true \
--set communications.default-group.socketSlack.channels.default.name=${SLACK_CHANNEL_NAME} \
--set communications.default-group.socketSlack.channels.default.bindings.executors={"plugin-based"} \
--set communications.default-group.socketSlack.appToken=${SLACK_APP_TOKEN} \
--set communications.default-group.socketSlack.botToken=${SLACK_BOT_TOKEN} \
--set 'plugins.repositories.botkube-plugins.url'=${PLUGINS_URL} \
--set 'executors.plugin-based.botkube-plugins/gh.config.github.repository'=${REPOSITORY} \
--set 'executors.plugin-based.botkube-plugins/gh.config.github.token'=${GITHUB_TOKEN} \
botkube/botkube
-\### Testing +### Testing -1\. Navigate to your communication channel. +1. Navigate to your communication channel. + +2. On a given channel, run: **@Botkube list executors** + -2\. On a given channel, run: \*\*@Botkube list executors\*\* - -![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d81ba395f87021e5d45685_list-exec.png) +![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d81ba395f87021e5d45685_list-exec.png) It returns information about enabled _gh_ executor -3\. Create a failing Job: +3. Create a failing Job:
apiVersion: batch/v1
kind: Job
metadata:
name: oops
spec:
backoffLimit: 1
template:
spec:
restartPolicy: Never
containers:
- name: main
image: docker.io/library/bash:5
command: ["bash"]
args:
- -c
- echo "Hello from failing job!" && exit 42
‍ -![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d81bb595f870bd6ed45689_alert.png) +![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d81bb595f870bd6ed45689_alert.png) After a few seconds, you should see a new alert on your channel -4\. To create a GitHub issue for a given alert, run: **_@Botkube gh create issue job/oops_**‍ +4. To create a GitHub issue for a given alert, run: **_@Botkube gh create issue job/oops_**‍ -\## Summary +Summary +------- Botkube executors are powerful because they can glue together three important parts: Kubernetes clusters, communicators, and tools of your choice. There would be nothing special about it if it wasn't, in fact, unburdening you of those implementation-specific details. @@ -275,11 +307,12 @@ As you noticed, you can focus purely on your business logic. Without the need to Once Botkube is deployed, your extension will be available to you and your teammates in a given channel. There is no need to maintain your local setup. Thanks to that, you can also easily run executors on private clusters. -Botkube extensions can be used with other Botkube functionality too. It means that you can use them to create \[automation\](https://docs.botkube.io/configuration/action). We will shed more light on that in the next blog post. Stay tuned! +Botkube extensions can be used with other Botkube functionality too. It means that you can use them to create [automation](https://docs.botkube.io/configuration/action). We will shed more light on that in the next blog post. Stay tuned! > Implement once, access everywhere (Slack, Discord, Mattermost, MS Teams). -\## How can I get involved? +How can I get involved? +----------------------- The implemented plugin is as simple as possible. However, it is a great base for further extension based on your needs; for example: introduce your own Kubernetes annotation to route the notification to a specific repository, add a threshold to create issues only for constantly failing Pods, etc. The possibilities are endless, and we cannot wait to see what kind of great workflows you will create! @@ -287,11 +320,11 @@ As always, we want to hear your feedback and ideas about Botkube. Help us plan t There are plenty of options to contact us: -\- \[GitHub issues\](https://github.com/kubeshop/botkube/issues) - -\- \[Slack\](https://join.botkube.io/) - -\- or email our Product Leader at blair@kubeshop.io. +* [GitHub issues](https://github.com/kubeshop/botkube/issues) + +* [Slack](https://join.botkube.io/) + +* or email our Product Leader at blair@kubeshop.io. + -‍ -Thank you for taking the time to learn about Botkube 🙌 +‍ Thank you for taking the time to learn about Botkube 🙌 diff --git a/hack/assistant-setup/content/botkube.io__blog__building-a-chatgpt-plugin-from-ideation-to-implementation.md b/hack/assistant-setup/content/botkube.io__blog__building-a-chatgpt-plugin-from-ideation-to-implementation.md index 70ae7ab..5c6c4a2 100644 --- a/hack/assistant-setup/content/botkube.io__blog__building-a-chatgpt-plugin-from-ideation-to-implementation.md +++ b/hack/assistant-setup/content/botkube.io__blog__building-a-chatgpt-plugin-from-ideation-to-implementation.md @@ -17,100 +17,86 @@ Botkube now includes AI recommendations to help you diagnose and troubleshoot is ### Table of Contents -* [Introduction](#introduction-2) -* [Ideation Phase: The Company-Wide Hackathon](#ideation-phase-the-company-wide-hackathon-2) -* [Planning and Conceptualization](#planning-and-conceptualization-2) -* [Development Process](#development-process-2) -* [Result](#result-2) -* [Conclusion](#conclusion-2) +* [Introduction](#introduction) +* [Ideation Phase: The Company-Wide Hackathon](#ideation-phase-the-company-wide-hackathon) +* [Planning and Conceptualization](#planning-and-conceptualization) +* [Development Process](#development-process) +* [Result](#result) +* [Conclusion](#conclusion) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud -\## Introduction +Introduction +------------ The Botkube team is a group of dedicated individuals with a common focus on developing innovative solutions in the technology landscape. With AI getting more and more widely used, the team saw an opportunity to explore the potential of AI-powered chatbots in the DevOps space. A significant event that played a crucial role in shaping the trajectory of the ChatGPT plugin was the company-wide hackathon organized by Kubeshop. The hackathon was a great opportunity for the team to brainstorm ideas and collaborate on projects that would help people make Kubernetes life easier, simpler and faster. -This blog post aims to document the entire process involved in the creation of the \[Botkube ChatGPT plugin\](https://docs.botkube.io/configuration/executor/doctor). From the initial spark of the idea during the hackathon to the final stages of implementation, we'll take you on a behind-the-scenes journey. Expect insights into the challenges, breakthroughs, and collaborative efforts that went into making this vision a reality. +This blog post aims to document the entire process involved in the creation of the [Botkube ChatGPT plugin](https://docs.botkube.io/configuration/executor/doctor). From the initial spark of the idea during the hackathon to the final stages of implementation, we'll take you on a behind-the-scenes journey. Expect insights into the challenges, breakthroughs, and collaborative efforts that went into making this vision a reality. -‍ - -## Ideation Phase: The Company-Wide Hackathon +Ideation Phase: The Company-Wide Hackathon +------------------------------------------ It all started with the internal Kubeshop hackathon. During this intense and collaborative event, team members from diverse backgrounds came together to brainstorm, experiment, and find novel solutions to challenges in the Kubernetes space, as a part of the existing projects in Kubeshop portfolio. The hackathon's theme was to help Developers, Testers, DevOps, SRE’s or their managers with making Kubernetes life easier, simpler, and faster. In 48 hours, the teams had to come up with an idea, build a prototype, and present their proof-of-concept solution to the judges. The Botkube team came up with 14 different ideas. As the hackathon time was limited, the team had to filter out the ideas we should focus on. After several discussions and internal voting, we decided to improve the Botkube onboarding experience. This consisted of 4 different parts: -\- Botkube Cloud Migration Tool, to seamlessly migrate existing Botkube installation to Botkube Cloud. - -\- Botkube Cloud Instance Builder, a convenient drag-and-drop UI tool to configure Botkube instance. - -\- Exec plugin, to install and run any CLI application directly from chat platform, without any hassle. - -\- ChatGPT executor plugin, which is the main topic of this blog post. +1. Botkube Cloud Migration Tool, to seamlessly migrate existing Botkube installation to Botkube Cloud. +2. Botkube Cloud Instance Builder, a convenient drag-and-drop UI tool to configure Botkube instance. +3. Exec plugin, to install and run any CLI application directly from chat platform, without any hassle. +4. ChatGPT executor plugin, which is the main topic of this blog post. The ChatGPT plugin was the most voted idea internally, as we all saw the potential to bring significant value to the users. The team, guided by the goal of selecting an idea with the highest impact, set specific criteria to evaluate each proposal. We considered factors such as feasibility, market demand, and alignment with the Botkube's long-term vision. The ChatGPT plugin idea ticked all the boxes, showing promise to address real customer needs and aligning perfectly with the Botkube's mission. -‍ - -\## Planning and Conceptualization +Planning and Conceptualization +------------------------------ Once the ChatGPT executor plugin was selected as a part of our hackathon topic, the team started working on the project. The first step was to define the goals and objectives of the plugin. The main goal was to lower the barrier of entry for new Botkube users. Sometimes it is hard to understand and troubleshoot the Kubernetes errors and their meaning, especially for beginners. That's why the idea was to introduce "Get help" button under incoming error events. -‍ - ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c21a033e2e505f6d63b554_figma.png) -‍ - -The button would pass the error data to the ChatGPT plugin, which would use return an AI-generated response with actionable buttons. The user would be able to click on the buttons to execute specific commands, such as \`kubectl describe pod\` or \`kubectl logs pod\`. This would help the user to troubleshoot the issue without the need to search for the solution on the Internet. +The button would pass the error data to the ChatGPT plugin, which would use return an AI-generated response with actionable buttons. The user would be able to click on the buttons to execute specific commands, such as `kubectl describe pod` or `kubectl logs pod`. This would help the user to troubleshoot the issue without the need to search for the solution on the Internet. Another use case we considered is answering human questions directly from the chat. The user would be able to ask questions like "How to create a Pod?" or "How to troubleshoot non-working Service?" and get an AI-generated response. This would be useful for new users who are not familiar with Kubernetes concepts and terminology. The final part of this phase was to come up with a name for the plugin. This was one of the hardest challenges. -\> There are only two hard things in Computer Science: cache invalidation and naming things. +> There are only two hard things in Computer Science: cache invalidation and naming things. +> +> — Phil Karlton -\> -- Phil Karlton +‍ We decided to call it "Doctor", as it would help users to diagnose and fix Kubernetes issues. -‍ - -\## Development Process +Development Process +------------------- The enthusiasm and dedication displayed by the team during the ideation phase laid a strong foundation for the development of the ChatGPT plugin. As we already knew what we wanted to develop, we had to decide on the specific technologies and tools to use. -Choosing plugin language was the first step. Botkube plugin API uses Hashicorp's \[\`go-plugin\`\](https://github.com/hashicorp/go-plugin) gRPC interface. While it has cross-language support, we decided to stick to Go as it is the primary language used in Botkube. We also wanted to leverage the existing Go SDK and pipelines we set up for the Botkube Go codebase. +Choosing plugin language was the first step. Botkube plugin API uses Hashicorp's [`go-plugin`](https://github.com/hashicorp/go-plugin) gRPC interface. While it has cross-language support, we decided to stick to Go as it is the primary language used in Botkube. We also wanted to leverage the existing Go SDK and pipelines we set up for the Botkube Go codebase. -The next step was a bit more challenging: choosing the right AI model. We wanted to use a pre-trained model to avoid the need for training data and the time-consuming training process. The most important thing was to be able to answer Kubernetes-related questions efficiently. After careful consideration, we decided to use OpenAI's GPT-3 (\`text-davinci-003\`) model for the chatbot. +The next step was a bit more challenging: choosing the right AI model. We wanted to use a pre-trained model to avoid the need for training data and the time-consuming training process. The most important thing was to be able to answer Kubernetes-related questions efficiently. After careful consideration, we decided to use OpenAI's GPT-3 (`text-davinci-003`) model for the chatbot. -While ChatGPT integration is very straightforward, another little challenge was to construct a prompt that produces predictable results and to parse the response from the model, so that we could render interactive output for a user. After a little bit of testing and experimenting, we achieved the desired result. +While ChatGPT integration is very straightforward, another little challenge was to construct a prompt that produces predictable results and to parse the response from the model, so that we could render interactive output for a user. After a little bit of testing and experimenting, we achieved the desired result. ‍ -The last part was to integrate the ChatGPT plugin into Kubernetes source plugin, which watches for Kubernetes events and sends notifications to the chat interface. We extended the Kubernetes plugin with \`extraButtons\` configuration property, which accepts command templates and renders them as interactive buttons as a part of each notification: +The last part was to integrate the ChatGPT plugin into Kubernetes source plugin, which watches for Kubernetes events and sends notifications to the chat interface. We extended the Kubernetes plugin with `extraButtons` configuration property, which accepts command templates and renders them as interactive buttons as a part of each notification: This way, we were able to render the "Get help" button under each error event. As the implementation is generic, users can also benefit from it and configure virtually any command button under specific types of events. -‍ - -## Result +Result +------ -In 48 hours, Botkube team was able to deliver a fully-working ChatGPT plugin called "Doctor". The plugin is able to help troubleshooting Kubernetes cluster issues based on incoming events. It's best used in combination with Slack integration, as it provides interactive buttons to help users navigate through the troubleshooting process. No typing required! - -‍ +In 48 hours, Botkube team was able to deliver a fully-working ChatGPT plugin called "Doctor". The plugin is able to help troubleshooting Kubernetes cluster issues based on incoming events. It's best used in combination with Slack integration, as it provides interactive buttons to help users navigate through the troubleshooting process. No typing required. ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c21a2723cb531baf9f0867_doctor-interactive-help.gif) -‍ - -It also exposes ChatGPT prompt, so you can ask some arbitrary, not necessarily Kubernetes-related questions: - -‍ +‍ It also exposes ChatGPT prompt, so you can ask some arbitrary, not necessarily Kubernetes-related questions: ![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c21a323e2e505f6d63c5a8_common-k8s-service-problems.png) @@ -118,15 +104,12 @@ It also exposes ChatGPT prompt, so you can ask some arbitrary, not necessarily K ![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c21a491f0e3972e7e5430d_how-to-create-a-pod.png) -‍ - -The team was very happy with the result, and we decided to \*\*ship it to all users in \[Botkube 1.2 release\](https://botkube.io/blog/botkube-v1-2-0-release-notes)\*\*! 🎉 - -How to get started, you ask? \[Install Botkube\](https://docs.botkube.io/), if you haven't already, and enable Doctor plugin following the \[Configuration\](https://docs.botkube.io/configuration/executor/doctor) document. Then, learn how to use it by \[following the tutorial that our DevRel Maria put together\](https://botkube.io/blog/doctor-plug-in-tutorial). +The team was very happy with the result, and we decided to **ship it to all users in [Botkube 1.2 release](https://botkube.io/blog/botkube-v1-2-0-release-notes)**! 🎉 -‍ +How to get started, you ask? [Install Botkube](https://docs.botkube.io/), if you haven't already, and enable Doctor plugin following the [Configuration](https://docs.botkube.io/configuration/executor/doctor) document. Then, learn how to use it by [following the tutorial that our DevRel Maria put together](https://botkube.io/blog/doctor-plug-in-tutorial). -\## Conclusion +Conclusion +---------- The journey from the hackathon ideation to the final ChatGPT plugin has been nothing short of remarkable. It all began with the internal Kubeshop hackathon, where the Botkube team collaborated intensely and passionately to brainstorm ideas for making Kubernetes life easier, simpler, and faster. After carefully evaluating various proposals, the ChatGPT plugin emerged as the most promising idea, driven by its potential to revolutionize the Botkube onboarding experience and provide users with an unparalleled DevOps tool. @@ -134,4 +117,4 @@ This would not have been possible without the spirit of cross-team collaboration The Doctor plugin was just the beginning of our journey. We plan to continually enhance its functionality, leveraging user feedback and insights to make it more versatile and user-friendly. That's why your feedback is very important to us. -Let us know what do you think about the \[ChatGPT-based Doctor plugin\](https://docs.botkube.io/configuration/executor/doctor)! We are always open to feedback and suggestions. If you have any questions, feel free to reach out to us on \[Slack\](https://join.botkube.io/) or \[Twitter\](https://twitter.com/botkube\_io). +Let us know what do you think about the [ChatGPT-based Doctor plugin](https://docs.botkube.io/configuration/executor/doctor)! We are always open to feedback and suggestions. If you have any questions, feel free to reach out to us on [Slack](https://join.botkube.io/) or [Twitter](https://twitter.com/botkube_io). diff --git a/hack/assistant-setup/content/botkube.io__blog__command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube.md b/hack/assistant-setup/content/botkube.io__blog__command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube.md index 67005f2..7cada35 100644 --- a/hack/assistant-setup/content/botkube.io__blog__command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube.md +++ b/hack/assistant-setup/content/botkube.io__blog__command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube.md @@ -17,26 +17,28 @@ With custom aliases, you can create shortcuts for those long and confusing Kuber ### Table of Contents -* [So how do you do it?](#so-how-do-you-do-it--2) -* [Syntax](#syntax-2) +* [So how do you do it?](#so-how-do-you-do-it-) +* [Syntax](#syntax) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! -Are you tired of typing out long and complex Kubernetes commands, only to realize you've made a typo and have to start over? Do you wish there was a way to make managing your Kubernetes clusters easier and more efficient? Fortunately, \[custom kubectl aliases\](https://docs.botkube.io/usage/executor/#aliases) on Botkube are here to save the day. With custom aliases, you can create shortcuts for those long and confusing Kubernetes commands, making it easy to manage your clusters and focus on what really matters - \*\*your code\*\*. +Are you tired of typing out long and complex Kubernetes commands, only to realize you've made a typo and have to start over? Do you wish there was a way to make managing your Kubernetes clusters easier and more efficient? Fortunately, [custom kubectl aliases](https://docs.botkube.io/usage/executor/#aliases) on Botkube are here to save the day. With custom aliases, you can create shortcuts for those long and confusing Kubernetes commands, making it easy to manage your clusters and focus on what really matters - **your code**. Whether you're a seasoned Kubernetes pro or just starting out, custom aliases on Botkube can help you work more efficiently and productively. In this blog, we'll show you why custom aliases with Botkube should be in every developer's toolkit. -###Prerequisites : +### Prerequisites : -\- Access to a Kubernetes cluster +* Access to a Kubernetes cluster + +* Botkube [installed](https://docs.botkube.io/) and configured + -\- Botkube \[installed\](https://docs.botkube.io/) and configured +So how do you do it? +-------------------- -##So how do you do it? +Alias are a shortcut for a longer command or just a part of it. It can be defined for all commands, including [executor plugins](https://docs.botkube.io/usage/executor/) and built-in Botkube commands. This powerful tool lets you create shortcuts for longer, more complex commands, making them quicker and easier to execute. And the best part? You can create aliases for all commands, including built-in Botkube commands and executor plugins. When you use an alias, it replaces the original command with the underlying command before executing it, saving you precious seconds and reducing the risk of errors. -Alias are a shortcut for a longer command or just a part of it. It can be defined for all commands, including \[executor plugins\](https://docs.botkube.io/usage/executor/) and built-in Botkube commands. This powerful tool lets you create shortcuts for longer, more complex commands, making them quicker and easier to execute. And the best part? You can create aliases for all commands, including built-in Botkube commands and executor plugins. When you use an alias, it replaces the original command with the underlying command before executing it, saving you precious seconds and reducing the risk of errors. - -To save on time, Botkube had implemented the \`k\` and \`kc\` aliases for the kubectl command, much like DevOps admins like to do on the command line. But we took it a step further: \*\*now you can configure your own custom aliases for any command in Botkube\*\*. Not only can you alias a single command like kubectl, you can create an alias for the full command, including options and flags. +To save on time, Botkube had implemented the `k` and `kc` aliases for the kubectl command, much like DevOps admins like to do on the command line. But we took it a step further: **now you can configure your own custom aliases for any command in Botkube**. Not only can you alias a single command like kubectl, you can create an alias for the full command, including options and flags. In the example shown below, kgp is an alias for the full kubectl get pods command. @@ -44,32 +46,33 @@ In the example shown below, kgp is an alias for the full kubectl get pods comman Once you have configured aliases, you can use them interchangeably with a full command. For example: -\*\*k\*\* as kubectl, +**k** as kubectl, -\*\*kgp\*\* as \`kubectl get pods\`, +**kgp** as `kubectl get pods`, -\*\*kgpa\*\* as \`kubectl get pods -A\`, +**kgpa** as `kubectl get pods -A`, -\*\*hh\*\* as \`helm history\`, +**hh** as `helm history`, -\*\*a\*\* as list actions, the built-in Botkube command, +**a** as list actions, the built-in Botkube command, and so on. -Aliases are defined globally for the whole Botkube installation. To see which aliases are available for current conversation, run \`@Botkube list aliases\`. +Aliases are defined globally for the whole Botkube installation. To see which aliases are available for current conversation, run `@Botkube list aliases`. -\## Syntax +Syntax +------ ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/642d8fd3d44f31b2f4b28059_Screenshot%202023-04-05%20at%208.11.31%20AM.png) -So there you have it- \*\*the power of custom aliases on Botkube\*\*. By creating personalized shortcuts for your most-used commands, you'll be able to work smarter, not harder, and get things done more efficiently than ever before. Plus, with the ability to create aliases for all commands, including built-in Botkube commands and executor plugins, the possibilities are truly endless.  So, if you want to streamline your workflow and become a more efficient developer, custom alias feature on Botkube is definitely worth exploring +So there you have it- **the power of custom aliases on Botkube**. By creating personalized shortcuts for your most-used commands, you'll be able to work smarter, not harder, and get things done more efficiently than ever before. Plus, with the ability to create aliases for all commands, including built-in Botkube commands and executor plugins, the possibilities are truly endless. So, if you want to streamline your workflow and become a more efficient developer, custom alias feature on Botkube is definitely worth exploring 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: -\- \[GitHub issues\](https://github.com/kubeshop/botkube/issues) - -\- \[Slack\](https://join.botkube.io/) - -\- or email our Product Leader at blair@kubeshop.io. +* [GitHub issues](https://github.com/kubeshop/botkube/issues) + +* [Slack](https://join.botkube.io/) + +* or email our Product Leader at blair@kubeshop.io. diff --git a/hack/assistant-setup/content/botkube.io__blog__configure-event-sources-with-new-botkube-filters.md b/hack/assistant-setup/content/botkube.io__blog__configure-event-sources-with-new-botkube-filters.md deleted file mode 100644 index 1c318b4..0000000 --- a/hack/assistant-setup/content/botkube.io__blog__configure-event-sources-with-new-botkube-filters.md +++ /dev/null @@ -1,47 +0,0 @@ -Title: Configuring Event Sources with the New Botkube Filters - -URL Source: https://botkube.io/blog/configure-event-sources-with-new-botkube-filters - -Published Time: Dec 12, 2022 - -Markdown Content: -Configuring Event Sources with the New Botkube Filters ------------------------------------------------------- - -![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6388d8a9440baf86c12e1332_BQ_cKZugm2gU2CJlE2SwuDKqkczTCA0n645DHiHJkUQ.png) - -[](#home) - -![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/636df3edbf5389368f6bef9c_cYbM1beBC5tQnSPVfaXCg_W9tkHugByZV2TOleN6pTw.jpeg) - -Blair Rampling - -Product Leader - -Botkube - -Configuring Event Sources with the New Botkube Filters - -### Table of Contents - -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! - -![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/636df3edbf5389368f6bef9c_cYbM1beBC5tQnSPVfaXCg_W9tkHugByZV2TOleN6pTw.jpeg) - -Blair Rampling - -Product Leader - -Botkube - -Related Content ---------------- - -Stay in the Loop ----------------- - -![Image 4: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/636d3117b8612105c60e0bd9_botkube-front-right.svg) - -Join the Botkube Community in one of these channels - -Subscribe to our monthly newsletter to stay up to date with all-things Botkube. diff --git a/hack/assistant-setup/content/botkube.io__blog__creating-the-botkube-flux-plugin-for-day-2-operations.md b/hack/assistant-setup/content/botkube.io__blog__creating-the-botkube-flux-plugin-for-day-2-operations.md index 9f948c6..aded113 100644 --- a/hack/assistant-setup/content/botkube.io__blog__creating-the-botkube-flux-plugin-for-day-2-operations.md +++ b/hack/assistant-setup/content/botkube.io__blog__creating-the-botkube-flux-plugin-for-day-2-operations.md @@ -24,7 +24,7 @@ From this deep dive you'll know the Zapier-like aspect of Botkube that connects * [Behind the Scenes: Developing the Botkube Flux Plugin](#behind-the-scenes-developing-the-botkube-flux-plugin) * [Conclusion](#conclusion) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -48,17 +48,13 @@ Now, let's get into the nitty-gritty of this plugin's journey. Picture yourself ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f9944f5ec10d12756e4d2b_flux-get-source-git.png) -‍ - 2. Next, let's make it mobile friendly. The secret ingredient is interactivity like buttons and select menus. ‍ ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f9949ad7623bfae8357d71_flux-get-source-git-btns.png) Typing or copy-pasting a long names doesn't work well. Now, you have a handy Flux client right in your pocket, ready with just a few clicks. And we are just half-way there 😈‍ -‍ - -3. Here comes the last, but unique, part that makes the difference: **support for Day 2 operations**. +3\. Here comes the last, but unique, part that makes the difference: **support for Day 2 operations**. In our case, we stitched together three important parts: Kubernetes cluster, GitHub platform, and Flux CLI. As a result, we've provided a streamlined experience for generating a diff report in the context of GitHub pull requests and the current cluster state. @@ -72,8 +68,6 @@ In our case, we stitched together three important parts: Kubernetes cluster, Git 4\. Now, when we're happy about the result, we are still missing one more part to **automate our day 2 operation.** -‍ - Even though the diffing flow integrates with GitHub, it still requires two manual steps: * discovering that a new pull request was created @@ -116,14 +110,14 @@ Manual Approach vs. Botkube Flux Plugin While you were reading the first part of the Flux plugin evolution, did you consider what kind of manual steps would be required without the plugin? Let's break it down: 1. Checking GitHub repository for a new pull requests. -2. **(One-time operation)** Downloading and installing Flux CLI on you localhost. +2. \*\*(One-time operation)\*\* Downloading and installing Flux CLI on you localhost. 3. Manually connecting to the related Kubernetes cluster. -4. **(One-time operation)** Cloning the repository. +4. \*\*(One-time operation)\*\* Cloning the repository. 5. Checking out the pull request. 6. Constructing a Flux command. 7. Sharing the diff report on Slack/GitHub. -Even if we exclude the one-time operations, we're left with 5 steps for each new pull request. Lots of manual steps mean lots of room for human errors. Plus, all that jumping between different sites and context switching can impact your productivity. It's much better to focus on the main aspect, which is the review, and let automation handle the rest. +‍ Even if we exclude the one-time operations, we're left with 5 steps for each new pull request. Lots of manual steps mean lots of room for human errors. Plus, all that jumping between different sites and context switching can impact your productivity. It's much better to focus on the main aspect, which is the review, and let automation handle the rest. Behind the Scenes: Developing the Botkube Flux Plugin ----------------------------------------------------- @@ -156,9 +150,7 @@ Thanks to embedding it, we can distribute it as a single plugin binary, and we d Under the hood we use \`go-getter\` library which has a lot of great features. If you need to download assets from different sources, we recommend that library your projects as well. -‍ ‍ - -The trickiest part was to develop GitHub Events source. The best way is to use GitHub App with the webhook approach. However, we didn't want to require you to have an external endpoint exposed from your cluster. +‍ The trickiest part was to develop GitHub Events source. The best way is to use GitHub App with the webhook approach. However, we didn't want to require you to have an external endpoint exposed from your cluster. We started with [GitHub repository events endpoint](https://docs.github.com/en/rest/activity/events?apiVersion=2022-11-28#list-repository-events). But it turned out that even though it serves events that we are interested in, it was not meant to be used for the real-time use-cases. We still integrate with the `events` API, but it's recommended for event subscription where time is not that important. For example, getting notification about new stars on your GitHub repositories: ‍ @@ -166,10 +158,10 @@ We started with [GitHub repository events endpoint](https://docs.github.com/en/r ‍ To achieve our e2e goal, we decided to develop a custom polling mechanism that uses [pull request endpoint](https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#list-pull-requests). The polling mechanism forces us to be more rational about the number of calls to fit into defined rate limits. We decided on two things: -1. [Conditional requests](https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#conditional-requests) because receiving a 304 response doesn't count against token rate limit. +1. \[Conditional requests\](https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#conditional-requests) because receiving a 304 response doesn't count against token rate limit. 2. Adding support for GitHub App tokens. By using GitHub Apps, you can increase your maximum rate limits because multiple GitHub Apps are independent and do not share the rate limits. Where, using multiple Personal Access Tokens (PATs) for the same account will result in sharing the same rate limit. -In the future, we can consider adding a token rotator that automatically switches tokens before hitting the rate limit. +‍ In the future, we can consider adding a token rotator that automatically switches tokens before hitting the rate limit. For the [Botkube web app](https://app.botkube.io/) we will consider native integration using GitHub App, to reduce friction with the initial setup for Flux and GitHub Events plugins. @@ -178,6 +170,4 @@ Conclusion The [Botkube Flux plug-in](https://botkube.io/blog/introducing-botkubes-integration-with-flux) offers valuable solutions for streamlining GitOps workflows. Its capabilities, including mobile-friendly interactivity and automated Day 2 operations support, can significantly enhance your Kubernetes management. -We encourage you to explore the Botkube Flux plugin and consider integrating it into your workflows. Don't hesitate to share your feedback and ideas about Botkube. Feel free to reach out to us on [Slack](https://join.botkube.io/) or [Twitter](http://twitter.com/botkube_io). - -Thank you for taking the time to learn about Botkube 🙌 +We encourage you to explore the Botkube Flux plugin and consider integrating it into your workflows. Don't hesitate to share your feedback and ideas about Botkube. Feel free to reach out to us on [Slack](https://join.botkube.io/) or [X](https://twitter.com/botkube_io). diff --git a/hack/assistant-setup/content/botkube.io__blog__doctor-plug-in-tutorial.md b/hack/assistant-setup/content/botkube.io__blog__doctor-plug-in-tutorial.md index a82eca4..203a847 100644 --- a/hack/assistant-setup/content/botkube.io__blog__doctor-plug-in-tutorial.md +++ b/hack/assistant-setup/content/botkube.io__blog__doctor-plug-in-tutorial.md @@ -17,138 +17,154 @@ This Tutorial is about the new ChatGPT-powered Doctor plugin which allows for ea ### Table of Contents -* [Requirements](#requirements-2) -* [Method 1: Install the Doctor Plug into a new instance](#method-1-install-the-doctor-plug-into-a-new-instance-2) -* [Method 2: Install the Doctor plug-in into an already created Botkubeinstance.](#method-2-install-the-doctor-plug-in-into-an-already-created-botkubeinstance--2) -* [Interactive Troubleshooting](#interactive-troubleshooting-2) -* [Support for Generic Questions](#support-for-generic-questions-2) -* [Scalable Plugin Pipelining](#scalable-plugin-pipelining-2) -* [Conclusion](#conclusion-2) -* [We'd Love Your Feedback](#we-d-love-your-feedback-2) +* [Requirements](#requirements) +* [Method 1: Install the Doctor Plug into a new instance](#method-1-install-the-doctor-plug-into-a-new-instance) +* [Method 2: Install the Doctor plug-in into an already created Botkubeinstance.](#method-2-install-the-doctor-plug-in-into-an-already-created-botkubeinstance-) +* [Interactive Troubleshooting](#interactive-troubleshooting) +* [Support for Generic Questions](#support-for-generic-questions) +* [Scalable Plugin Pipelining](#scalable-plugin-pipelining) +* [Conclusion](#conclusion) +* [We'd Love Your Feedback](#we-d-love-your-feedback) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud -Discover the future of efficient Kubernetes troubleshooting with Botkube’s new \[Doctor plug-in\](https://botkube.io/integration/chatgpt-botkube-kubernetes-integration)! By leveraging ChatGPT's powerful capabilities, you can now troubleshoot your Kubernetes cluster with unparalleled ease and save valuable time in the process. Say goodbye to tedious and time-consuming tasks, as ChatGPT helps to automate much of the troubleshooting process, allowing you to concentrate on more critical aspects of your workflow. Moreover, ChatGPT's comprehensive analysis of your cluster configuration and resource utilization offers invaluable insights to optimize performance and cut down on costs. Real-time errors and recommendations enhance your troubleshooting experience, ensuring you're always up-to-date with the health of your cluster. Seamlessly integrated with major communication channels, Botkube empowers you to act swiftly on identified errors, keeping your Kubernetes environment running smoothly at all times. +Discover the future of efficient Kubernetes troubleshooting with Botkube’s new [Doctor plug-in](https://botkube.io/integration/chatgpt-botkube-kubernetes-integration)! By leveraging ChatGPT's powerful capabilities, you can now troubleshoot your Kubernetes cluster with unparalleled ease and save valuable time in the process. Say goodbye to tedious and time-consuming tasks, as ChatGPT helps to automate much of the troubleshooting process, allowing you to concentrate on more critical aspects of your workflow. Moreover, ChatGPT's comprehensive analysis of your cluster configuration and resource utilization offers invaluable insights to optimize performance and cut down on costs. Real-time errors and recommendations enhance your troubleshooting experience, ensuring you're always up-to-date with the health of your cluster. Seamlessly integrated with major communication channels, Botkube empowers you to act swiftly on identified errors, keeping your Kubernetes environment running smoothly at all times. -Learn more about Botkube's ChatGPT-powered Doctor plugin in our \[release announcement\](https://botkube.io/blog/use-chatgpt-to-troubleshoot-kubernetes-errors-with-botkubes-doctor). +Learn more about Botkube's ChatGPT-powered Doctor plugin in our [release announcement](https://botkube.io/blog/use-chatgpt-to-troubleshoot-kubernetes-errors-with-botkubes-doctor). -In this tutorial, we will walk you through the step-by-step process of setting up and utilizing Botkube's new \[Doctor plug-in\](https://docs.botkube.io/usage/executor/doctor), optimizing your team’s performance, and maximizing your Kubernetes productivity. +In this tutorial, we will walk you through the step-by-step process of setting up and utilizing Botkube's new [Doctor plug-in](https://docs.botkube.io/usage/executor/doctor), optimizing your team’s performance, and maximizing your Kubernetes productivity. -\## Requirements +Requirements +------------ -\* A Slack workspace -\* A \[Botkube Cloud\](http://app.botkube.io) account -\* \[OpenAI credits \[(https://openai.com/) +* A Slack workspace +* A [Botkube Cloud](http://app.botkube.io/) account +* \[OpenAI credits \[(https://openai.com/) -\## Method 1: Install the Doctor Plug into a new instance +Method 1: Install the Doctor Plug into a new instance +----------------------------------------------------- -\### Creating a Botkube Cloud Account +### Creating a Botkube Cloud Account -1\. On the Botkube \[homepage\](https://botkube.io/), locate the “Get Started” button and click on it. This will take you to the account registration page. -2\. Fill in the required information in the registration form. You can sign up with your email address or Github account. +1. On the Botkube [homepage](https://botkube.io/), locate the “Get Started” button and click on it. This will take you to the account registration page. +2. Fill in the required information in the registration form. You can sign up with your email address or Github account. -\* Click \[here\](https://botkube.io/blog/step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting) for a more indepth Botkube installation tutorial +* Click [here](https://botkube.io/blog/step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting) for a more indepth Botkube installation tutorial -\### Connecting Kubernetes Cluster to Slack +### Connecting Kubernetes Cluster to Slack -1\. Select either the Wizard or the Block builder method to initiate the setup process for Botkube's Cloud Slack integration. +1. Select either the Wizard or the Block builder method to initiate the setup process for Botkube's Cloud Slack integration. ![Image 2: Easy one click Kubernetes deployment for cloud](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709dfd8e90bc79339fcd0_cQKP0DfzGkbQO4R8kCAnqr54pgSa_IKaPa756N-FFua5n9N1omSH9fg9nGI1JYNjRS6ZmkbNUYrZLK1Z2BmTjPVHBDP0U9jNpidqq7RIqKWJScUJ32pOPryOAp49HR6OoerKN7yJSu6yHr2DU1GDaoo.png) ‍ -2\. Next, enter your instance display name. +2. Next, enter your instance display name. ![Image 3: K8s cluster building GUI](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709efd8e90bc7933a1393_nAeC7-04jk70WellyEP2GM4m75jP4jrLhnmbjAkZr3rLlNi7zaD2bMLx8rvebpfqFIrvB8OSIxIqKezCZngk7ooCH6WAOT_1PBSQKz-sAAl9WRSq-GqtR1gmHmwC87Oq443Bzdu_sMKsHw-_g8Jwrfo.png) -‍ -3\. Select the \*Official Botkube Slack\* option. (Note this option requires you to sign up for a 30 day free trial) +‍ + +3. Select the _Official Botkube Slack_ option. (Note this option requires you to sign up for a 30 day free trial) ![Image 4: Official Slack Kubernetes bot](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709ffd8e90bc7933a2249_3GYyjQn-Uklnp1Bn8T7YmSOdKEaFnl3idDQcYJiD1mx7xeBbr6yvoRgbLI3Fir7TaW4a1N8l4tgB_Zbt6b3XryqzyYff4z1I_nffpWkoS6Hx7yPmmTrk2Z9tnAlXWUoM_VrAm0iBje2a8oaIiaGxRx0.png) ‍ -4\. Access the app settings within Slack to configure the integration with Botkube. Click the "Add Slack" button to initiate the process. - -5\. Select the workspace within Slack where you want to utilize Botkube. Botkube will now have access to public and private channels, enabling seamless communication and collaboration for Kubernetes troubleshooting tasks. +4. Access the app settings within Slack to configure the integration with Botkube. Click the "Add Slack" button to initiate the process. + +5. Select the workspace within Slack where you want to utilize Botkube. Botkube will now have access to public and private channels, enabling seamless communication and collaboration for Kubernetes troubleshooting tasks. + ![Image 5: Multicluster setup screen for Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a0bae43806c67551203_v-0W_ZDNIBT2Z7lbvKemYUyidm6L4ftXfEXxY9t0i5d6NB3_A_wrkVIluEVKfh8ZCCSYan2mS8PfS0YXm8DmViUyII5FXmmaLUPy6deAhqmYypJr0mZCg8aOo1FckVZaX3LOlTK6Epso_FqKUAde3Qw.png) ‍ -6\. To include Botkube in private channels, utilize the "Add to Channel" feature. This ensures that Botkube is present in relevant channels where Kubernetes-related discussions and incident responses take place. +6. To include Botkube in private channels, utilize the "Add to Channel" feature. This ensures that Botkube is present in relevant channels where Kubernetes-related discussions and incident responses take place. ![Image 6: One click slack sign in](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a1d00209556840fc2aa_qCmpnXKLE-S-5GKx1PijNsYeJOqKsWffvD0NIp708myAL6SynM44bx0khhpKpQCX-LnUoIQ2t5JAbqjdOfxrQSxIJPZWLRKYrX0O1lKJJQQj0hmkIM_5ADswoPXLaRPrMmLwAtVCSAsGEbySEsGW0WY.png) -‍ ‍ -7\. Select the Plugins you would like to use. \[Helm\](https://docs.botkube.io/usage/executor/helm), \[kubectl\](https://docs.botkube.io/usage/executor/kubectl), and Kubernetes source are the Botkube default plug-ins. Select the \[Doctor plug-in\](https://docs.botkube.io/usage/executor/doctor). +7. Select the Plugins you would like to use. [Helm](https://docs.botkube.io/usage/executor/helm), [kubectl](https://docs.botkube.io/usage/executor/kubectl), and Kubernetes source are the Botkube default plug-ins. Select the [Doctor plug-in](https://docs.botkube.io/usage/executor/doctor). ![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c821b8724cd267a8f2079e_S_D9N3SAYRhJit2YvTCT1mfdMWr6Ba5CAX33ioUVeqdNvcycYIkd7yrIZ5Av6kG-hVuQXtTODdwDYtzoCWuV2NMH5F0waTITlkQXvBxglTo8aU_feKRZqpp9pZcssPIvxotbXdoKE49GVO9r9CreqyY.png) -‍ -8\. Navigate to the OpenAI website \[here \](https://beta.openai.com/account/api-keys) and create your API key -9\. Paste your API key into the empty box and press submit. +‍ + +8. Navigate to the OpenAI website [here](https://beta.openai.com/account/api-keys) and create your API key +9. Paste your API key into the empty box and press submit. ![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c821bb26bb53b2ce43074d_I-Jz17f6Ag1ojKmWY0MT8l-IgRvU82Q2Gfwqk9OQVLXHF4Wx_0yQM-iy3GPnmIgQrDm1_Nck_-M2bpccmV2VY9svcoSjN7yylToOVl21vWoeJb6pp_bldS9zT677JvGJ0022oJd5dWlKN06Nph8UAmw.png) -10\. On the next page, you will have the option to also enable \[Command Alias\](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube)and \[Botkube Actions\](https://docs.botkube.io/usage/automated-actions/). Make your selection and click the Create button. +10. On the next page, you will have the option to also enable [Command Alias](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube)and [Botkube Actions](https://docs.botkube.io/usage/automated-actions/). Make your selection and click the Create button. ![Image 9](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c821b95d087e15b6d1ec7d_zoOK3PqJeNz8R8Mgngk-Qssdni9rpMmx6-CMe1cGxvODqzVz-vb4cJ62ZbWeGfeoAudmnhkwKCzY8bb1UwAIoeefzAAFgwHfLKt4VNkU9kX_0Q8UJFhbWcqfLdJoLcmeNHAcluZPXeEA5I0FkkfQ4kA.png) -‍ -11\. You are now ready to start utilizing the Botkube Doctor plugin! +‍ + +11. You are now ready to start utilizing the Botkube Doctor plugin. -\## Method 2: Install the Doctor plug-in into an already created Botkubeinstance. +Method 2: Install the Doctor plug-in into an already created Botkubeinstance. +----------------------------------------------------------------------------- -\### Creating your New Plug-In +### Creating your New Plug-In -1\. Select the \`Add Plug-in\` button +1. Select the `Add Plug-in` button ![Image 10](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c821b87c3808d8b8fb048d_fyMnDpgGrvfDOKs6zbiAj1SXGp5deepJ1_uWTLiYuXgcnv7tonGyf-NolV9U2d-IeH0nFMdnSpwX12xtV4355EoQ6kuWd2FmBEpjtpOrIc7UQQ5Mnc6YrB8kxajMO3yfbORKjh6Y6JYunOB5OLTfZAc.png) -‍ -2\. Select the option for the Doctor plug-in +‍ + +2. Select the option for the Doctor plug-in ![Image 11](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c821ba302266c000e029ec_FbpyK0RLgMWySuuwKBVfVBtsX-eDAoIuGqze913li_eZyDDjWoOpj7JmmeXKci6M7xzbGddBcqLz17gYRuDN0ISndRLHtc2gvkApV9GJIXUNfn2o7B-J8Zg-lpiNe9UUMKsffwaQ1A_-qImmfhAw1UY.png) -‍ -3\. Navigate to the OpenAI website \[here\](https://beta.openai.com/account/api-keys) and create your API key -4\. Paste your API key into the empty field and press Submit. +‍ + +3. Navigate to the OpenAI website [here](https://beta.openai.com/account/api-keys) and create your API key +4. Paste your API key into the empty field and press Submit. ![Image 12](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c821bb26bb53b2ce43074d_I-Jz17f6Ag1ojKmWY0MT8l-IgRvU82Q2Gfwqk9OQVLXHF4Wx_0yQM-iy3GPnmIgQrDm1_Nck_-M2bpccmV2VY9svcoSjN7yylToOVl21vWoeJb6pp_bldS9zT677JvGJ0022oJd5dWlKN06Nph8UAmw.png) -‍ -5\. Select the Save button and refresh your browser. -6\. Start interacting with your new Doctor Plug-in! +‍ -\## Interactive Troubleshooting +5. Select the Save button and refresh your browser. +6. Start interacting with your new Doctor Plug-in! -When the Doctor AI detects an error or anomaly in the Kubernetes environment, it takes proactive steps to assist users in resolving the issue. Upon detecting an error event, the Doctor AI generates a Slack message with a \`Get Help\` button. Clicking on this button triggers the Doctor AI to provide users with actionable solutions and next steps to tackle the problem. This interactive troubleshooting approach empowers users with the knowledge and confidence to resolve Kubernetes issues swiftly. -\## Support for Generic Questions +Interactive Troubleshooting +--------------------------- + +When the Doctor AI detects an error or anomaly in the Kubernetes environment, it takes proactive steps to assist users in resolving the issue. Upon detecting an error event, the Doctor AI generates a Slack message with a `Get Help` button. Clicking on this button triggers the Doctor AI to provide users with actionable solutions and next steps to tackle the problem. This interactive troubleshooting approach empowers users with the knowledge and confidence to resolve Kubernetes issues swiftly. + +Support for Generic Questions +----------------------------- Beyond its ability to tackle specific errors, the Doctor AI is also well-versed in answering general questions related to Kubernetes. Users can seek guidance on various Kubernetes concepts, best practices, or configurations directly within the Slack channel. This means no more interruptions to access a separate dashboard or documentation, making it easier to gain quick insights and expand Kubernetes expertise. ![Image 13](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c821bb21a0701673853991__UHn0zhtq5mu4YOnbuJN0vHABCKyUNCqyhsohVmShvTAPqmc8RJo4DQNsiN-QDU2vZ03D-W9N8_x-G9jSQpxGfeErfnxuzMt4YCE7BavU_uuXf0nTRhDDzp3NaIedpaXj0_8ehtKPQdYiynaCK6sunk.png) -\## Scalable Plugin Pipelining +Scalable Plugin Pipelining +-------------------------- + +The Doctor AI plugin's versatility extends beyond standalone usage. It can be easily combined with other [Botkube plug-ins](https://botkube.io/integrations), allowing users to create custom workflows tailored to their specific use cases. By pipelining the Doctor AI with other plugins, teams can orchestrate complex actions and integrations, further streamlining Kubernetes management processes. -The Doctor AI plugin's versatility extends beyond standalone usage. It can be easily combined with other \[Botkube plug-ins\](https://botkube.io/integrations), allowing users to create custom workflows tailored to their specific use cases. By pipelining the Doctor AI with other plugins, teams can orchestrate complex actions and integrations, further streamlining Kubernetes management processes. -\## Conclusion +Conclusion +---------- Botkube's new Doctor plug-in brings the future of efficient Kubernetes troubleshooting to your fingertips. With the power of ChatGPT, you can now effortlessly troubleshoot your Kubernetes cluster, saving precious time and streamlining your workflow. Bid farewell to tedious tasks, as ChatGPT automates much of the troubleshooting process, allowing you to focus on critical aspects of your work. -With seamless integration into \[major communication channels\](http://botkube.io/integrations), Botkube empowers you to take swift action on identified errors, ensuring your Kubernetes environment runs smoothly wherever you are. +With seamless integration into [major communication channels](http://botkube.io/integrations), Botkube empowers you to take swift action on identified errors, ensuring your Kubernetes environment runs smoothly wherever you are. -\### Sign up now +### Sign up now -Whether you're a seasoned Kubernetes pro or just getting started, Botkube helps make troubleshooting Kubernetes easier and faster. \[Sign up now for free\](http://app.botkube.io) and \[join the community\](https://join.botkube.io/) of users who are already benefiting from the power of Botkube. +Whether you're a seasoned Kubernetes pro or just getting started, Botkube helps make troubleshooting Kubernetes easier and faster. [Sign up now for free](http://app.botkube.io/) and [join the community](https://join.botkube.io/) of users who are already benefiting from the power of Botkube. -\## We'd Love Your Feedback +We'd Love Your Feedback +----------------------- -We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give away cool Botkube plushies and t-shirts. Just email \[maria@kubeshop.io\](mailto:maria@kubeshop.io) or \[set up a meeting\](https://calendly.com/maria-botkube/30min). +We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give away cool Botkube plushies and t-shirts. Just email [maria@kubeshop.io](mailto:maria@kubeshop.io) or [set up a meeting](https://calendly.com/maria-botkube/30min). -You can also talk to us in the Botkube GitHub \[issues\](https://github.com/kubeshop/botkube/issues), connect with others and get help in the \[Botkube Slack community\](http://join.botkube.io), or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can also talk to us in the Botkube GitHub [issues](https://github.com/kubeshop/botkube/issues), connect with others and get help in the [Botkube Slack community](https://join.botkube.io/), or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__empowering-your-kubernetes-multi-cluster-observability-with-intelligent-monitoring.md b/hack/assistant-setup/content/botkube.io__blog__empowering-your-kubernetes-multi-cluster-observability-with-intelligent-monitoring.md index 58881ea..cdc7097 100644 --- a/hack/assistant-setup/content/botkube.io__blog__empowering-your-kubernetes-multi-cluster-observability-with-intelligent-monitoring.md +++ b/hack/assistant-setup/content/botkube.io__blog__empowering-your-kubernetes-multi-cluster-observability-with-intelligent-monitoring.md @@ -23,7 +23,7 @@ Discover how Botkube optimizes multi-cluster Kubernetes observability with autom * [Conclusion](#conclusion) * [Getting Started with Botkube Today](#getting-started-with-botkube-today) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! @@ -64,6 +64,4 @@ Botkube offers a comprehensive solution for enhancing multi-cluster Kubernetes o Getting Started with Botkube Today ---------------------------------- -[Try it for yourself](https://app.botkube.io/)! Follow our step-by-step [tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams) to set up Botkube using our web app. We're excited to hear how you use Botkube. Create a support ticket directly in the dashboard, share your stories with us in the [Botkube Slack community](https://join.botkube.io/). We’ll even send you some cool swag as a thank you. - -‍ +[Try it for yourself](https://app.botkube.io/). Follow our step-by-step [tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams) to set up Botkube using our web app. We're excited to hear how you use Botkube. Create a support ticket directly in the dashboard, share your stories with us in the [Botkube Slack community](https://join.botkube.io/). We’ll even send you some cool swag as a thank you. diff --git a/hack/assistant-setup/content/botkube.io__blog__enhancing-gitops-workflows-with-botkube.md b/hack/assistant-setup/content/botkube.io__blog__enhancing-gitops-workflows-with-botkube.md index 9344cf0..9add85e 100644 --- a/hack/assistant-setup/content/botkube.io__blog__enhancing-gitops-workflows-with-botkube.md +++ b/hack/assistant-setup/content/botkube.io__blog__enhancing-gitops-workflows-with-botkube.md @@ -5,23 +5,25 @@ URL Source: https://botkube.io/blog/enhancing-gitops-workflows-with-botkube Published Time: Aug 23, 2023 Markdown Content: -In the ever-evolving landscape of software development and operations, efficient collaboration, seamless communication, and swift troubleshooting are the cornerstones of success. GitOps is a game-changing method that makes development operations smoother by using version control systems. While GitOps introduces an innovative method that refines development operations, it's not without its challenges. Enter \[Botkube\](http://botkube.io) - a collaborative troubleshooting tool designed specifically for Kubernetes. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. It can also be harnessed as a powerful tool that can optimize GitOps workflows by streamlining manual processes, fostering real-time collaboration, and centralizing knowledge. In this blog post, we delve into the capabilities of Botkube and how it can significantly elevate your GitOps practices. +In the ever-evolving landscape of software development and operations, efficient collaboration, seamless communication, and swift troubleshooting are the cornerstones of success. GitOps is a game-changing method that makes development operations smoother by using version control systems. While GitOps introduces an innovative method that refines development operations, it's not without its challenges. Enter [Botkube](http://botkube.io/) - a collaborative troubleshooting tool designed specifically for Kubernetes. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. It can also be harnessed as a powerful tool that can optimize GitOps workflows by streamlining manual processes, fostering real-time collaboration, and centralizing knowledge. In this blog post, we delve into the capabilities of Botkube and how it can significantly elevate your GitOps practices. -\## What is GitOps? +What is GitOps? +--------------- GitOps is an operational framework that evolved from the core principles of DevOps, which include application development strategies like version control, collaborative workflows, compliance adherence, and continuous integration/continuous deployment (CI/CD). It hinges on four core principles: -\*\*Declarative:\*\* Entire system described declaratively, using facts over instructions. Git becomes the source of truth for Kubernetes deployment. +**Declarative:** Entire system described declaratively, using facts over instructions. Git becomes the source of truth for Kubernetes deployment. -\*\*Versioned and Immutable:\*\* Canonical state stored in version-controlled Git repository, enabling simple rollbacks and audit trails. +**Versioned and Immutable:** Canonical state stored in version-controlled Git repository, enabling simple rollbacks and audit trails. -\*\*Automated Pull:\*\* Changes from Git to Kubernetes occur automatically, separating the operational environment from the defined state. Policies drive automated deployment. +**Automated Pull:** Changes from Git to Kubernetes occur automatically, separating the operational environment from the defined state. Policies drive automated deployment. -\*\*Continuous Reconciliation:\*\* Software agents detect deviations, ensuring the system is self-sufficient and resilient to human errors. +**Continuous Reconciliation:** Software agents detect deviations, ensuring the system is self-sufficient and resilient to human errors. The Gitops framework applies these practices to the realm of infrastructure automation and centers Git as the foundation for a streamlined approach to software deployment -\## Benefits of GitOps +Benefits of GitOps +------------------ At its core, GitOps empowers organizations to oversee their entire infrastructure and application development lifecycle through a singular, unified tool. This innovative approach fosters unprecedented collaboration and coordination among teams, paving the way for streamlined workflows and minimizing the occurrence of errors. From an improved developer experience to reduced costs and accelerated deployments, @@ -29,102 +31,95 @@ Swift problem resolution becomes a reality, transforming the operational landsca GitOps redefines the infrastructure and application lifecycle through a unified tool, driving collaboration and streamlined workflows while minimizing errors. This approach yields swift problem resolution and improves developer experience. It ensures auditable changes, heightened reliability, consistency, and standardization, underpinned by strong security measures. This translates to increased productivity, faster development, and efficient operations. With GitOps, compliance and auditing become seamless, incident response is expedited, and security is fortified. -\## The Pitfalls of GitOps +The Pitfalls of GitOps +---------------------- The manual approach to GitOps presents several challenges that hinder efficiency. Firstly, setting up and configuring GitOps tools on your local environment is a prerequisite. Additionally, directly managing connections to the Kubernetes cluster becomes a time-consuming obligation, involving context switches for various deployment stages. Handling repositories by manually cloning and inspecting pull requests for changes adds complexity to the workflow. Lastly, sharing updates and reports across platforms like Slack and GitHub requires constant navigation, demanding extra effort and impacting seamless communication. -‍ -\### Auditing Complexity +### Auditing Complexity While Git provides an audit trail for infrastructure changes, this process is not without its complexities. Regulatory compliance and code reviews demand meticulous tracking of modifications. However, identifying the relevant repository, configuration file, and commit history can be a time-consuming task, especially for intricate applications with numerous data points. Additionally, the ability to force-push commits introduces the risk of inadvertently removing critical information from the central repository, further complicating the audit process. -\### Scalability Hurdles +### Scalability Hurdles The scalability of GitOps can pose challenges, particularly as organizations expand. To effectively implement GitOps, maintaining a comprehensive record of pull requests and issues is crucial, necessitating a high level of visibility and accountability. This demand is more manageable in smaller organizations but can become overwhelming for enterprises with an extensive portfolio of repositories, environments, and applications. The complexities of managing a larger setup require a simplified structure with limited repositories and configuration files to fully harness GitOps benefits. -\### Governance Complexity +### Governance Complexity Automated changes at scale are powerful yet come with substantial responsibilities. Organizations adopting GitOps face the task of managing changes efficiently while ensuring security. The potential introduction of security vulnerabilities through GitOps-driven alterations could lead to severe consequences. Although automation tools are invaluable, many open-source GitOps solutions lack built-in governance capabilities. A proactive approach to addressing this challenge is integrating policy as code (PaC) to embed policy-based governance into the software development process, mitigating risks and fostering control. -‍ -\## How Botkube Addresses these Challenges +How Botkube Addresses these Challenges +-------------------------------------- Navigating the realm of GitOps workflows can be more efficient with Botkube. It adeptly addresses various challenges, from scalability concerns to auditing needs. By incorporating features like Automatic Issue Reporting, Implementing Best Practices, Improved Developer Experience, and Efficient Monitoring and Action, Botkube streamlines your team's operations, optimizing their efficiency within the GitOps framework. -‍ - ![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64e694bca6bd600e8a7e88dd_flux-diff-1.gif) -\### Automatic Issue Reporting +### Automatic Issue Reporting Botkube introduces a solution to scalability concerns through its automatic issue reporting feature. By identifying issues in Kubernetes environments and promptly notifying relevant parties, Botkube streamlines problem detection and resolution. This dynamic functionality alleviates the burden of monitoring multiple repositories and applications, enabling smoother scalability within the GitOps framework. -\### Implementing Best Practices +### Implementing Best Practices GitOps, at its core, thrives on best practices that fortify its deployment. The integration of practices such as Policy as Code (PaC) and rigorous security scanning bolsters the foundation of governance. With PaC, organizations can encode policies directly into their version control repositories, ensuring that automated changes align with established protocols. Concurrently, security scanning serves as a robust barrier against vulnerabilities, preventing potentially risky alterations from being incorporated into the automated process. -\### Improved Developer Experience +### Improved Developer Experience -In a GitOps workflow, Botkube takes the lead by offering teams  unmatched insights and control over their Kubernetes resources. It acts as a window into active clusters, functioning as the central hub for informed actions. With Botkube's capabilities, teams can  receive real-time alert of changes and scan results, facilitating well-informed decision-making. Whether it's detecting changes or evaluating scan outcomes, Botkube's centralized interface ensures the smooth execution of every necessary action. +In a GitOps workflow, Botkube takes the lead by offering teams unmatched insights and control over their Kubernetes resources. It acts as a window into active clusters, functioning as the central hub for informed actions. With Botkube's capabilities, teams can receive real-time alert of changes and scan results, facilitating well-informed decision-making. Whether it's detecting changes or evaluating scan outcomes, Botkube's centralized interface ensures the smooth execution of every necessary action. -\### Efficient Monitoring and Action +### Efficient Monitoring and Action Botkube excels at monitoring Kubernetes resources, which lays the foundation for effective governance. Through Botkube, potential deviations from policies or security standards are quickly identified. This empowers the system to swiftly respond to unexpected issues in real-time. Equipped with a comprehensive overview of the entire automated process, a team can confidently take informed actions or implement automations to address any discrepancies. By incorporating best practices, harnessing Botkube's insights, and aligning with policies, organizations not only bolster security but also enhance the reliability and integrity of their automated deployments. -\## Enter Botkube: A Smoother GitOps Workflow - -‍ +Enter Botkube: A Smoother GitOps Workflow +----------------------------------------- ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64e6946be4cd9b0c47a55f75_flux-interactivity-1.gif) -‍ +‍ Botkube emerges as the solution to these challenges, making the GitOps workflow not just smoother, but remarkably efficient. Here's how Botkube transforms the game: -Botkube emerges as the solution to these challenges, making the GitOps workflow not just smoother, but remarkably efficient. Here's how Botkube transforms the game: - -\### Real-time Collaboration +### Real-time Collaboration Imagine a scenario where crucial alerts about pod crashes, resource constraints, or deployment failures are instantly delivered to your preferred chat platform. Botkube ensures that team members are promptly informed, enabling quick decision-making and streamlined troubleshooting. No more delays or communication gaps – Botkube fosters instant collaboration in its truest sense. -\### Centralized Knowledge +### Centralized Knowledge With Botkube, all Kubernetes-related discussions, diagnoses, and actions unfold within your chat platform. This not only promotes the sharing of knowledge but also establishes a centralized repository of information and actions taken. Bid farewell to scattered conversations and context loss; everything is meticulously preserved for effortless access and accelerated onboarding of new team members. -\### Turbocharged Efficiency +### Turbocharged Efficiency Botkube's automation capabilities eradicate repetitive tasks, allowing lightning-fast actions via simple chat commands. Whether scaling deployments, examining logs, or rolling back changes, these actions seamlessly integrate into your chat conversations. This fluid workflow minimizes context switching, amplifies productivity, and accelerates application deployment and management. -\### Flexibility and Scalability +### Flexibility and Scalability -Be it a single Kubernetes cluster or a sprawling array of them, Botkube adapts effortlessly. Its scalability ensures that you can effectively monitor and manage your infrastructure without limitations. Moreover, Botkube's extensible architecture empowers you to integrate custom alerting mechanisms or notifications, tailoring the tool to precisely match your organizational needs. +Be it a single Kubernetes cluster or a sprawling array of them, Botkube adapts effortlessly. Its scalability ensures that you can effectively monitor and manage your infrastructure without limitations. Moreover, Botkube's extensible architecture empowers you to integrate custom alerting mechanisms or notifications, tailoring the tool to precisely match your organizational needs -\### Optimizing Flux +### Optimizing Flux ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64e6c1703e7d7fa16f63c0db_ezgif.com-resize.gif) The [Botkube Flux executor](https://botkube.io/blog/botkube-v1-3-0-release-notes) streamlines the diff process by enabling a one-command execution for diffing between a specific pull request and the cluster state. An example command could be: -\`\`\`@BotKube flux diff kustomization podinfo --path ./kustomize --github-ref \[PR Number| URL | Branch\] -\`\`\` +`@BotKube flux diff kustomization podinfo --path ./kustomize --github-ref [PR Number| URL | Branch]` This command automates multiple tasks, including identifying the associated GitHub repository linked to the provided kustomization, repository cloning, pull request checkout, and comparison of pull request changes with the present cluster state. The results of this comparison are shared by posting a diff report on the designated Slack channel, allowing team members to easily review and discuss the alterations. Furthermore, the tool offers users a few additional buttons: -\* Option to post the diff report as a GitHub comment directly on the corresponding pull request. This feature provides intentionality and user control over the sharing of potentially sensitive information. -\* Ability to approve the pull request. -\* Access to view the details of the pull request. +* Option to post the diff report as a GitHub comment directly on the corresponding pull request. This feature provides intentionality and user control over the sharing of potentially sensitive information. +* Ability to approve the pull request. +* Access to view the details of the pull request. -‍ -\## Conclusion +Conclusion +---------- In conclusion, Botkube is a revolutionary tool that elevates GitOps workflows by eradicating manual hurdles, propelling real-time collaboration, and consolidating knowledge. Embrace Botkube, and empower your team with the tools to succeed in the fast-paced world of modern software development and operations. -\## Get Started with Botkube's Flux Plugin - -Ready to try it out on your own? The easiest way to configure it is through the \[Botkube web app\](https://app.botkube.io/) if your cluster is connected. Otherwise you can enable it in your \[Botkube YAML configuration\](https://docs.botkube.io/configuration/executor/flux). +Get Started with Botkube's Flux Plugin +-------------------------------------- -Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. Find out how to use the Flux plugin in the \[documentation\](https://docs.botkube.io/usage/executor/flux/). +Ready to try it out on your own? The easiest way to configure it is through the [Botkube web app](https://app.botkube.io/) if your cluster is connected. Otherwise you can enable it in your [Botkube YAML configuration](https://docs.botkube.io/configuration/executor/flux). -We’d love to hear how you are using Gitops! Share your experiences with us in the Botkube \[Slack community\](http://join.botkube.io/) or \[email our Developer Advocate, Maria\](mailto:maria@kubeshop.io) and we’ll send you some fun swag. +Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. Find out how to use the Flux plugin in the [documentation](https://docs.botkube.io/usage/executor/flux/). -‍ +We’d love to hear how you are using Gitops! Share your experiences with us in the Botkube [Slack community](https://join.botkube.io/) or [email our Developer Advocate, Maria](mailto:maria@kubeshop.io) and we’ll send you some fun swag. diff --git a/hack/assistant-setup/content/botkube.io__blog__explore-the-new-era-of-aiops-with-botkubes-ai-assistant.md b/hack/assistant-setup/content/botkube.io__blog__explore-the-new-era-of-aiops-with-botkubes-ai-assistant.md index 7a9191e..ed36432 100644 --- a/hack/assistant-setup/content/botkube.io__blog__explore-the-new-era-of-aiops-with-botkubes-ai-assistant.md +++ b/hack/assistant-setup/content/botkube.io__blog__explore-the-new-era-of-aiops-with-botkubes-ai-assistant.md @@ -17,77 +17,74 @@ Discover how to revolutionize Kubernetes management with Botkube's AI Assistant! ### Table of Contents -* [Getting Started with Botkube's AI Assistant](#getting-started-with-botkube-s-ai-assistant-2) -* [How to use Botkube's AI Assistant](#how-to-use-botkube-s-ai-assistant-2) -* [Conclusion](#conclusion-2) -* [Get Started Today!](#get-started-today--2) +* [Getting Started with Botkube's AI Assistant](#getting-started-with-botkube-s-ai-assistant) +* [How to use Botkube's AI Assistant](#how-to-use-botkube-s-ai-assistant) +* [Conclusion](#conclusion) +* [Get Started Today](#get-started-today) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Start Receiving Kubernetes Notifications Now with Botkube Cloud -Kubernetes management requires lots of expertise. In the era of artificial intelligence, this  complexity has led to the advent of \[AIOps\](https://botkube.io/learn/aiops-tools)—artificial intelligence for IT operations—which aims to enhance operational processes through the use of AI. In addition, Kubernetes Assistant tools like \[Botkube's AI Assistant\](https://botkube.io/blog/real-time-platform-engineer-advice-ai-assistant) have launched in response to the challenge of Kubernetes developer experience. They can simplify the Kubernetes experience through automation, real-time monitoring, and intelligent troubleshooting directly from chat platforms. These new tools are vital for both seasoned DevOps professionals and newcomers to make Kubernetes operations more accessible and efficient. +Kubernetes management requires lots of expertise. In the era of artificial intelligence, this complexity has led to the advent of [AIOps](https://botkube.io/learn/aiops-tools)—artificial intelligence for IT operations—which aims to enhance operational processes through the use of AI. In addition, Kubernetes Assistant tools like [Botkube's AI Assistant](https://botkube.io/blog/real-time-platform-engineer-advice-ai-assistant) have launched in response to the challenge of Kubernetes developer experience. They can simplify the Kubernetes experience through automation, real-time monitoring, and intelligent troubleshooting directly from chat platforms. These new tools are vital for both seasoned DevOps professionals and newcomers to make Kubernetes operations more accessible and efficient. This tutorial walks you through how to use Botkube's AI Assistant to modernize, automate, and to enhance your Kubernetes management workflow. -\## **Getting Started with Botkube's AI Assistant** +Getting Started with Botkube's AI Assistant +------------------------------------------- -\### **Prerequisites** +### Prerequisites Before exploring Botkube's AI Assistant, you’ll need: -\- A Botkube account +* A Botkube account + +* Access to a Kubernetes cluster. + +* A chat platform supported by Botkube (e.g., Slack, Microsoft Teams). + -\- Access to a Kubernetes cluster. +1. ****Create Your Botkube Account:**** [Create an account](http://app.botkube.io/) to get started. -\- A chat platform supported by Botkube (e.g., Slack, Microsoft Teams). +**Note for Existing Users:** Ensure your setup is upgraded to version 1.9 or later before starting to use Botkube's AI Assistant. -1\. **\*\*Create Your Botkube Account:\*\*** \[Create an account\](http://app.botkube.io/) to get started. +#### For Open Source Users -\*\*Note for Existing Users:\*\* Ensure your setup is upgraded to version 1.9 or later before starting to use Botkube's AI Assistant. - -\#### For Open Source Users -\- Follow our [straightforward guide](https://botkube.io/blog/botkube-open-source-to-cloud-migration) to migrate your OSS instances to Botkube. - -‍ - -‍ +* Follow our [straightforward guide](https://botkube.io/blog/botkube-open-source-to-cloud-migration) to migrate your OSS instances to Botkube. ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65ecd856e5a6e7c2b404c66d_N1o3vsdP6wCYKbJZGkhQRxDQXG9z_jKjVoZjvGeUH2CddQSNd0IY8Ue1-0CfDX5LWhmtSNYgncFxPntT9j3kr_YuzWezKrZXDmYTB-VAKuU2oXXOZ3UOGq8DrBNckB2ipzta_zpdWMNidFY7lNukoJs.png) -‍ - -2\. **\*\*Cluster Integration:\*\*** Connect your Kubernetes cluster with Botkube by following the straightforward setup guide. This step is essential for enabling the AI Assistant to interact with your cluster. +2. ****Cluster Integration:**** Connect your Kubernetes cluster with Botkube by following the straightforward setup guide. This step is essential for enabling the AI Assistant to interact with your cluster. ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65ecd86310dd50a06df954e2_oeh6mJwm7VXV8-qP22EHYCGBGTD3Vkj_oNVMyhDANhHg-oI3h4xHJ2GQ_EMtiqxtwkKTdEsN73su0lsORSgBBuxnd3hL-KNkAyVdwLn5Qeo54tpzPL9Emihf-l1B-YdyvhlN8DJMCvmjtIIBytLwleo.png) -‍ - -3\. **Initiate AI Assistance:** After connecting your instance, the AI Assistant feature is automatically enabled as part of the installation process. Begin your interaction with the AI Assistant by using: **`@Botkube ai hi`** +3. **Initiate AI Assistance:** After connecting your instance, the AI Assistant feature is automatically enabled as part of the installation process. Begin your interaction with the AI Assistant by using: **`@Botkube ai hi`** ![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65ecd86f1927490939066d7b_jdK_nbhFbWzCMwC8aCYHZ5o7JZJ4G1LOVwrcWtEoEC1YlFx9oQzja864BYJEf1Ber1UtBcV2nB_y5ZIgf6C1-Sl8z-gbX7Y3jPXGemQc_yT4xeSw9JVTZjyIdqq7wWwmzunejS2Ncep2JV0gN8DgKsQ.png) ‍ -\## **How to use Botkube's AI Assistant** +How to use Botkube's AI Assistant +--------------------------------- -\### **Automated Incident Reporting** +### Automated Incident Reporting ![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65e8a037ee1160c06c47b0cc_LopU3vbDXwRSiyWbJgwCkZ2vsifEeikrsi9f16OWeJE83BBJGt2tqJn2O-2mq8nTvDlNejOFdH2LyHXcKccnsFcyjeDoccaBZSLLuxm3HZtsE3-TBmPgOEkLEjSr9_K5DcIvpZkd1KVFyN4uly3aImU.png) Botkube's AI Assistant simplifies incident management by analyzing issues and sharing detailed reports in your chat platform. -\### **To use Botkube's AI Assistant for incident management:** - -1\. Integrate Botkube with your \[preferred chat platform\](https://botkube.io/integrations). +### To use Botkube's AI Assistant for incident management: -2\. Ask Botkube questions directly in your chat: - -**@Botkube ai are there any failing pods in my default namespace?** +1. Integrate Botkube with your [preferred chat platform](https://botkube.io/integrations). + +2. Ask Botkube questions directly in your chat: + + **@Botkube ai are there any failing pods in my default namespace?** + In two steps, you can get immediate, detailed insights into your cluster's health and kick start your troubleshooting process. It also makes it easy to highlight and escalate critical issues with your team right in the chat. -\### **Cluster Analysis and Automated Runbooks** +### Cluster Analysis and Automated Runbooks ![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65e8a0387271b3eec14634d8_Co_cwk72Ki64q1a3A6OAcxn0qQvCjlhWWlTtBLPzMwhPjvVn6oHn-e2_L4twExmcpGAuis9bZKJXC2JRzuOzxMXg5MsbAugaCwe1xt5GUqWsnbug3CQkm7uGo7GX2g4dgTc-TCK1oScC7aUd82RMlG4.png) @@ -99,18 +96,18 @@ AI Assistant significantly enhances Kubernetes diagnostics by offering detailed When an error occurs, Botkube will offer an in-depth analysis. -1\. \*\*Ask a Question\*\*: Use the command \`@Botkube ai how do I fix this?\` to describe your issue. -2\. \*\*Receive Guidance\*\*: Botkube will offer a step-by-step guide to address the problem, aiming for a more reliable and efficient cluster. -3\. \*\*Apply Fixes\*\*: Implement the provided suggestions by executing commands directly in your chat window. +1. **Ask a Question**: Use the command `@Botkube ai how do I fix this?` to describe your issue. +2. **Receive Guidance**: Botkube will offer a step-by-step guide to address the problem, aiming for a more reliable and efficient cluster. +3. **Apply Fixes**: Implement the provided suggestions by executing commands directly in your chat window. -\## **Conclusion** +Conclusion +---------- -Botkube's AI Assistant redefines \[Kubernetes management\](https://botkube.io/learn/kubernetes-observability-best-practices), offering AI-enhanced troubleshooting and operational efficiency. By integrating AI Assistant into your workflow, you unlock a more accessible, reliable, and efficient Kubernetes ecosystem. Start your journey towards AI-driven Kubernetes management today and experience the benefits of having a virtual platform engineer by your side. +Botkube's AI Assistant redefines [Kubernetes management](https://botkube.io/learn/kubernetes-observability-best-practices), offering AI-enhanced troubleshooting and operational efficiency. By integrating AI Assistant into your workflow, you unlock a more accessible, reliable, and efficient Kubernetes ecosystem. Start your journey towards AI-driven Kubernetes management today and experience the benefits of having a virtual platform engineer by your side. -\## **Get Started Today!** +Get Started Today +----------------- -Starting with our AI Assistant is simple and intuitive. It's included in every Botkube Cloud instance, ensuring a smooth integration for users updating to the latest version. \*\*New users can easily begin with Botkube, quickly enjoying AI-enhanced Kubernetes management.\*\* \[Start with Botkube here\](http://app.botkube.io). For those using the open-source version, \[follow our migration guide\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to swiftly upgrade to Botkube Cloud and access all new features. +Starting with our AI Assistant is simple and intuitive. It's included in every Botkube Cloud instance, ensuring a smooth integration for users updating to the latest version. **New users can easily begin with Botkube, quickly enjoying AI-enhanced Kubernetes management.** [Start with Botkube here](https://app.botkube.io/). For those using the open-source version, [follow our migration guide](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to swiftly upgrade to Botkube Cloud and access all new features. Dive into the Botkube AI Assistant for an optimized Kubernetes management experience. Sign up now to integrate real-time, AI-powered support into your cluster management, improving efficiency and reliability. With the Botkube AI Assistant, you gain a 24/7 platform engineer at your service. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__blog__five-essential-kubernetes-tasks.md b/hack/assistant-setup/content/botkube.io__blog__five-essential-kubernetes-tasks.md index 1579031..e5b1b4a 100644 --- a/hack/assistant-setup/content/botkube.io__blog__five-essential-kubernetes-tasks.md +++ b/hack/assistant-setup/content/botkube.io__blog__five-essential-kubernetes-tasks.md @@ -24,7 +24,7 @@ Learn how to simplify DevOps tasks directly within your favorite communication p * [Executor Plugin](#executor-plugin-) * [Conclusion](#conclusion) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! @@ -144,4 +144,4 @@ In conclusion, Botkube offers a variety of powerful [features](https://botkube.i ### Getting Started with Botkube Today -[Try it for yourself](https://app.botkube.io/)! Follow our step-by-step [tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams) to set up Botkube using our web app. We're excited to hear how you use Botkube. Create a support ticket directly in the dashboard, share your stories with us in the [Botkube Slack community](https://join.botkube.io/). We’ll even send you some cool swag as a thank you. +[Try it for yourself](https://app.botkube.io/). Follow our step-by-step [tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams) to set up Botkube using our web app. We're excited to hear how you use Botkube. Create a support ticket directly in the dashboard, share your stories with us in the [Botkube Slack community](https://join.botkube.io/). We’ll even send you some cool swag as a thank you. diff --git a/hack/assistant-setup/content/botkube.io__blog__get-botkube-running-in-under-3-minutes-the-new-slack-app.md b/hack/assistant-setup/content/botkube.io__blog__get-botkube-running-in-under-3-minutes-the-new-slack-app.md index bba801f..3b2025d 100644 --- a/hack/assistant-setup/content/botkube.io__blog__get-botkube-running-in-under-3-minutes-the-new-slack-app.md +++ b/hack/assistant-setup/content/botkube.io__blog__get-botkube-running-in-under-3-minutes-the-new-slack-app.md @@ -20,7 +20,7 @@ Life is short, install quickly - Learn how to get started with Botkube and Slack * [Benefits of Easy Installation](#benefits-of-easy-installation) * [Get Started with Botkube’s new Slack App](#get-started-with-botkube-s-new-slack-app) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud diff --git a/hack/assistant-setup/content/botkube.io__blog__getting-started-with-botkube-and-argocd.md b/hack/assistant-setup/content/botkube.io__blog__getting-started-with-botkube-and-argocd.md index d4b02d6..09fd0c7 100644 --- a/hack/assistant-setup/content/botkube.io__blog__getting-started-with-botkube-and-argocd.md +++ b/hack/assistant-setup/content/botkube.io__blog__getting-started-with-botkube-and-argocd.md @@ -17,14 +17,14 @@ Learn how to set up Botkube with ArgoCD plugins in this step-by-step tutorial. ### Table of Contents -* [Prerequisites](#prerequisites-2) -* [Install the ArgoCD Plugin into a new instance](#install-the-argocd-plugin-into-a-new-instance--2) -* [Using the ArgoCD Plugin in Action](#using-the-argocd-plugin-in-action-2) -* [Conclusion](#conclusion-2) -* [Sign up now!](#sign-up-now--2) -* [Feedback](#feedback-2) +* [Prerequisites](#prerequisites) +* [Install the ArgoCD Plugin into a new instance](#install-the-argocd-plugin-into-a-new-instance-) +* [Using the ArgoCD Plugin in Action](#using-the-argocd-plugin-in-action) +* [Conclusion](#conclusion) +* [Sign up now!](#sign-up-now-) +* [Feedback](#feedback) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Start Receiving Kubernetes Notifications Now with Botkube Cloud @@ -34,7 +34,7 @@ Enter [Botkube](http://botkube.io/), a Kubernetes collaborative troubleshooting Learn more about Botkube’s move towards [GitOps](https://botkube.io/blog/enhancing-gitops-workflows-with-botkube) and the new ArgoCD Plugin– the second installment in the Botkube GitOps plugin series in our [release announcement](https://botkube.io/blog/argo-cd-botkube-integration). -In this tutorial, we'll delve into the capabilities of the [Botkube ArgoCD plugin](https://docs.botkube.io/configuration/source/argocd/). This powerful tool automates notifications, and enables bi-directional action.  By the end of this tutorial, you will know how to create, configure, and effectively leverage the Botkube ArgoCD plugin to enhance and simplify your GitOps workflow. +In this tutorial, we'll delve into the capabilities of the [Botkube ArgoCD plugin](https://docs.botkube.io/configuration/source/argocd/). This powerful tool automates notifications, and enables bi-directional action. By the end of this tutorial, you will know how to create, configure, and effectively leverage the Botkube ArgoCD plugin to enhance and simplify your GitOps workflow. Prerequisites ------------- @@ -42,9 +42,9 @@ Prerequisites Before you begin, make sure you have the following prerequisites in place: * Basic familiarity with Kubernetes and its components -* Access to a Kubernetes cluster with Helm installed  +* Access to a Kubernetes cluster with Helm installed * Access to Slack workspace -* A [Botkube Cloud Account](http://app.botkube.io/)  +* A [Botkube Cloud Account](http://app.botkube.io/) * [Argo CD](https://argoproj.github.io/cd/) must be installed on your Kubernetes cluster * [Install the Argo CD CLI](https://argo-cd.readthedocs.io/en/stable/?_gl=1*10c1kh8*_ga*NDc0Nzg3NTU3LjE2OTU2NTg1MzI.*_ga_5Z1VTPDL73*MTY5NTkxNTMyMC4yLjEuMTY5NTkxNTM0NC4wLjAuMA..#getting-started) on your local machine @@ -52,12 +52,12 @@ Before you begin, make sure you have the following prerequisites in place: * Ensure that you have at least one application configured within ArgoCD -Install the ArgoCD Plugin into a new instance  ----------------------------------------------- +Install the ArgoCD Plugin into a new instance +--------------------------------------------- ### Creating Botkube Cloud Account -1. Sign in to Botkube Cloud, either as a new user with a free account with an email or Github account or as an existing user.  +1. Sign in to Botkube Cloud, either as a new user with a free account with an email or Github account or as an existing user. \* Click [here](https://botkube.io/blog/step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting) for a more indepth Botkube installation tutorial @@ -81,16 +81,17 @@ Install the ArgoCD Plugin into a new instance  1. Select the ArgoCD and kubectl Plugin -2. Begin by selecting the ArgoCD and kubectl plugins within your Botkube setup +2\. Begin by selecting the ArgoCD and kubectl plugins within your Botkube setup ![Image 3: Adding Argo CD API Keys](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6516ed347d480ce1978008ad_ISJShwJ0wGBlQUqSnpW1Zt-9vzEKnLzwFnLMlxGIX0WI25KZ7tWnyapg0LSixCOslONWZfHErb-qmr_MvlqlWTDK3VxGnPKsZfDCnNKGJNAy90orbvT3HHXdkgm-D3JeArzT4pea8mUOExvfS7QY0rY.png) -3. Configure the plugin with your Botkube instance - -4. Insert your resources from your ArgoCD UI + 3. Configure the plugin with your Botkube instance + + 4. Insert your resources from your ArgoCD UI + * Fill in your “Name” and “Namespace” -* Make sure your BaseURl matches the one found on your ArgoCD UI  +* Make sure your BaseURl matches the one found on your ArgoCD UI ![Image 4: Setting Argo CD permissions on deployment](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6516ed337ad79fb0c8bb0436_zRBc4WDwcmJW7sKZjJaItEuxSAKmzxrqxw3C-QhoAPTf7Br_i67Eyk5XN6jYPowsCQ836d4ogBZ3Lh6rC42cbw1Ato5chhbOP9UOxTy6hQy_F0prcvSRmD7IBZtfCFMoKqcjlnUYMYCC9SVqJYl6NJ4.png) @@ -100,27 +101,28 @@ Install the ArgoCD Plugin into a new instance  * Choose the "Custom" option. * Under the custom permissions, select the "Group" option * Next, update the permissions for RBAC (Role-Based Access Control). -* Add "argocd”  +* Add "argocd” ![Image 5: RBAC controls for Argo](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6516ed3352cdb1553efc2f21_7bqFl-gQuFLiZqajb4AXF0r0BOJ-_D0SseHOHPGjUQ6DKi6M_YWpc2qNljNslsn7UMMDmAULu_cbURDPd6ilRAbbtKE3sQHURZPpcGMMwzgEIuXq1dm0m0R1LTVkQirBVpOsBWF-ooL1EBd1bb2hogs.png) 5. Click "Next" to proceed to the installation step. -6. On the next page, you will have the option to also enable [Command Alias](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) and [Botkube Actions](https://docs.botkube.io/usage/automated-actions/).  +6. On the next page, you will have the option to also enable [Command Alias](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) and [Botkube Actions](https://docs.botkube.io/usage/automated-actions/). -7. Make your selection and click the create button. +7\. Make your selection and click the create button. -8. You are now ready to start playing with your Botkube plugin. + 8. You are now ready to start playing with your Botkube plugin. + Using the ArgoCD Plugin in Action --------------------------------- -### Checking the Health Status of Apps  +### Checking the Health Status of Apps ![Image 6: ArgoCD events](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6509a59c63441b36226ea80d_argocd-events-e6eabb1f581e9822020d55461539bfcd.png) ‍ -Use Botkube’s ArgoCD plugin for seamless health status checks on your ArgoCD apps. Dive into the world of troubleshooting with just a couple of commands. Utilize "kubectl describe" and "kubectl get" within Botkube to verify the optimal functioning of the Argo CD source plugin. Leverage slack  interactivity and automation to make health status checks a breeze. +Use Botkube’s ArgoCD plugin for seamless health status checks on your ArgoCD apps. Dive into the world of troubleshooting with just a couple of commands. Utilize "kubectl describe" and "kubectl get" within Botkube to verify the optimal functioning of the Argo CD source plugin. Leverage slack interactivity and automation to make health status checks a breeze. Conclusion ---------- @@ -137,4 +139,4 @@ Get started with Botkube! Whether you're a seasoned Kubernetes pro or just getti Feedback -------- -We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. [Reach out to our Developer Advocate, Maria](mailto:maria@kubeshop.io) or schedule a quick 15min meeting at your preferred time. As a thank you, we’ll send you some great Botkube swag! +We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. [Reach out to our Developer Advocate, Maria](mailto:maria@kubeshop.io) or schedule a quick 15min meeting at your preferred time. As a thank you, we’ll send you some great Botkube swag. diff --git a/hack/assistant-setup/content/botkube.io__blog__implementing-your-own-botkube-plugin-a-real-life-use-case.md b/hack/assistant-setup/content/botkube.io__blog__implementing-your-own-botkube-plugin-a-real-life-use-case.md index 0c86619..f5e9491 100644 --- a/hack/assistant-setup/content/botkube.io__blog__implementing-your-own-botkube-plugin-a-real-life-use-case.md +++ b/hack/assistant-setup/content/botkube.io__blog__implementing-your-own-botkube-plugin-a-real-life-use-case.md @@ -17,23 +17,23 @@ Botkube has plugin system that allows you to extend the functionalities of Botku ### Table of Contents -* [Background](#background-2) -* [Keptn Installation](#keptn-installation-2) -* [Accessing Keptn Gateway](#accessing-keptn-gateway-2) -* [Keptn CLI](#keptn-cli-2) -* [Create Keptn Project](#create-keptn-project-2) -* [Create Keptn Service with Resource](#create-keptn-service-with-resource-2) -* [Trigger Keptn Sequence](#trigger-keptn-sequence-2) -* [Accessing API](#accessing-api-2) -* [Plugin Development](#plugin-development-2) -* [Plugin Configuration Structure](#plugin-configuration-structure-2) -* [Simple Keptn Client Implementation](#simple-keptn-client-implementation-2) -* [Keptn Plugin Core](#keptn-plugin-core-2) -* [Building Plugin](#building-plugin-2) -* [Running Botkube](#running-botkube-2) -* [Get Started with Botkube Plugin Development](#get-started-with-botkube-plugin-development-2) - -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +* [Background](#background) +* [Keptn Installation](#keptn-installation) +* [Accessing Keptn Gateway](#accessing-keptn-gateway) +* [Keptn CLI](#keptn-cli) +* [Create Keptn Project](#create-keptn-project) +* [Create Keptn Service with Resource](#create-keptn-service-with-resource) +* [Trigger Keptn Sequence](#trigger-keptn-sequence) +* [Accessing API](#accessing-api) +* [Plugin Development](#plugin-development) +* [Plugin Configuration Structure](#plugin-configuration-structure) +* [Simple Keptn Client Implementation](#simple-keptn-client-implementation) +* [Keptn Plugin Core](#keptn-plugin-core) +* [Building Plugin](#building-plugin) +* [Running Botkube](#running-botkube) +* [Get Started with Botkube Plugin Development](#get-started-with-botkube-plugin-development) + +#### Start Using Botkube AI Assistant Today! [Botkube's plugin system](https://botkube.io/blog/beginners-guide-to-botkube-plugin-development-how-botkube-plug-ins-can-unify-your-cloud-native-tools) allows users to extend the functionalities of Botkube core to enhance the capabilities of cloud native tools already in their tool belt. Whether you're using some of our pre-built plugins like [Helm](https://botkube.io/integration/helm) or [Prometheus](https://botkube.io/integration/prometheus), or want to use tools like Flux, Thanos, or any others on the CNCF landscape, the plugin system will help you and your team with collaborative troubleshooting instantly through your favorite messaging platform. @@ -41,35 +41,35 @@ So let's dive in! In this article, we will implement a Botkube plugin to integrate it with [Keptn,](https://botkube.io/integration/keptn) a cloud-native application lifecycle management tool for kubernetes. Use this as a starting point for your own creation! -\## Background -Before starting Keptn plugin implementation, let's take a look what it is and what kind of use-case it solves for us. -Assume that you have CD flow that ships your features to live environment whenever you merge that specific feature into main branch. -You might want to do a couple of checks before deployment, and Keptn is good for that kind of verifications. You can do a load test with \[k6\](https://k6.io/), an open source load testing tool, by using in Keptn to do load test and verify results. However, to make it simpler to understand how Keptn works and how to integrate it with Botkube, we will be deploying a simple task with Keptn and consume Keptn events with Botkube to receive notifications in communication platform like Slack. +Background +---------- + +Before starting Keptn plugin implementation, let's take a look what it is and what kind of use-case it solves for us. Assume that you have CD flow that ships your features to live environment whenever you merge that specific feature into main branch. You might want to do a couple of checks before deployment, and Keptn is good for that kind of verifications. You can do a load test with [k6](https://k6.io/), an open source load testing tool, by using in Keptn to do load test and verify results. However, to make it simpler to understand how Keptn works and how to integrate it with Botkube, we will be deploying a simple task with Keptn and consume Keptn events with Botkube to receive notifications in communication platform like Slack. + +Keptn Installation +------------------ -\## Keptn Installation You can easily deploy keptn via Helm Chart with the following command. -To execute a task in Keptn environment, we can use a Keptn integration which is 'Job Executor Service'. This will help us to execute task -based on our configuration. You can deploy executor service as shown below. +To execute a task in Keptn environment, we can use a Keptn integration which is 'Job Executor Service'. This will help us to execute task based on our configuration. You can deploy executor service as shown below. -
export JES_VERSION=0.3.0
export TASK_SUBSCRIPTION="sh.keptn.event.remote-task.triggered"
helm upgrade --install --create-namespace -n keptn-jes job-executor-service \
https://github.com/keptn-contrib/job-executor-service/releases/download/${JES_VERSION}/job-executor-service-${JES_VERSION}.tgz \
--set remoteControlPlane.autoDetect.enabled="true" \    
--set subscription.pubsubTopic=${TASK_SUBSCRIPTION}
+
export JES_VERSION=0.3.0
export TASK_SUBSCRIPTION="sh.keptn.event.remote-task.triggered"
helm upgrade --install --create-namespace -n keptn-jes job-executor-service \
https://github.com/keptn-contrib/job-executor-service/releases/download/${JES_VERSION}/job-executor-service-${JES_VERSION}.tgz \
--set remoteControlPlane.autoDetect.enabled="true" \
--set subscription.pubsubTopic=${TASK_SUBSCRIPTION}
-‍ -Keptn produces lots of events during the lifecycle management, but notice we are only interested in the event type \`sh.keptn.event.remote-task.triggered\`. Since, we -deploy job executor service in same Kubernetes cluster, it will automatically find Keptn gateway with the flag \`remoteControlPlane.autoDetect.enabled="true"\` +‍ Keptn produces lots of events during the lifecycle management, but notice we are only interested in the event type `sh.keptn.event.remote-task.triggered`. Since, we deploy job executor service in same Kubernetes cluster, it will automatically find Keptn gateway with the flag `remoteControlPlane.autoDetect.enabled="true"` -\## Accessing Keptn Gateway +Accessing Keptn Gateway +----------------------- You can visit http://localhost:8080 to access Keptn Gateway by providing user and password which we extracted before. -\## Keptn CLI -While you can handle everything in Keptn Gateway Dashboard, it would be beneficial to use Keptn CLI to handle things faster. You can install -Keptn CLI with following command. +Keptn CLI +--------- + +While you can handle everything in Keptn Gateway Dashboard, it would be beneficial to use Keptn CLI to handle things faster. You can install Keptn CLI with following command. In order to access Keptn Gateway, you need to authenticate Keptn CLI with following command. -‍ -You can copy this command from Keptn Gateway Dashboard under User icon in top right corner. +‍ You can copy this command from Keptn Gateway Dashboard under User icon in top right corner. ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/646b71df0ddcf082e6d025ff_keptn-user-icon.png) @@ -77,133 +77,126 @@ You can copy this command from Keptn Gateway Dashboard under User icon in top ri Now we are ready to create resources in Keptn. -‍ -\## Create Keptn Project +‍ + +Create Keptn Project +-------------------- + In Keptn, everything starts with Project where you basically define your Keptn resources. Keptn projects works with Git Upstream that you can also create one as shown below. -‍ -\`$GITHUB\_USERNAME\` and \`$GITHUB\_TOKEN\` is used by Keptn to maintain its state in remote repository which is defined by empty \`$GITHUB\_REPO\`. \`--shipyard\` parameter -is used to defined project stages each deployment should go through until production stage. You can see an example shipyard file as follows. +‍ `$GITHUB_USERNAME` and `$GITHUB_TOKEN` is used by Keptn to maintain its state in remote repository which is defined by empty `$GITHUB_REPO`. `--shipyard` parameter is used to defined project stages each deployment should go through until production stage. You can see an example shipyard file as follows.
apiVersion: "spec.keptn.sh/0.2.4"
kind: "Shipyard"
metadata:
name: "botkube"
spec:
stages:
- name: "production"
sequences:
- name: "botkube-seq"
tasks:
- name: "remote-task"
-‍ -We have only one stage \`production\` and it contains a task which is named as \`remote-task\`. Now that we defined our project, let's continue with creating a service as follows. +‍ We have only one stage `production` and it contains a task which is named as `remote-task`. Now that we defined our project, let's continue with creating a service as follows. -\## Create Keptn Service with Resource +Create Keptn Service with Resource +---------------------------------- -‍ -Above command simply creates a \`hello\` service under \`botkube\` project. Next step is to add resources to this service, for example a job definition as you can also see below. +‍ Above command simply creates a `hello` service under `botkube` project. Next step is to add resources to this service, for example a job definition as you can also see below. -‍ -We added job config to \`hello\` service for \`production\` stage under \`botkube\` project. Also, you can see the content of \`jobconfig.yaml\` below. +‍ We added job config to `hello` service for `production` stage under `botkube` project. Also, you can see the content of `jobconfig.yaml` below.
apiVersion: v2
actions:
- name: "Hello, Botkuber!"
events:
- name: "sh.keptn.event.remote-task.triggered"
tasks:
- name: "Say Hello"
image: "alpine"
cmd:
- echo
args:
- "Hello World"
-‍ -As you can also understand, it simply provisions a task by using \`alpine\` image to print \`Hello World\`. Once the task is started, it will produce an event \`sh.keptn.event.remote-task.triggered\`. This event -is the one our job executor service interested in. +‍ As you can also understand, it simply provisions a task by using `alpine` image to print `Hello World`. Once the task is started, it will produce an event `sh.keptn.event.remote-task.triggered`. This event is the one our job executor service interested in. + +Trigger Keptn Sequence +---------------------- -\## Trigger Keptn Sequence We have all the resources ready and now we can trigger a sequence to deploy remote task to see the response with following command. -‍ -You will see the result of the command, but to see everything in detail, you can navigate to Keptn Gateway and see Sequences as follows. +‍ You will see the result of the command, but to see everything in detail, you can navigate to Keptn Gateway and see Sequences as follows. ![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/646b723533b33f4cb5e03c8a_keptn-sequence.png) Now that we understand how to trigger a sequence in Keptn, let's take a look how to access its API to consume events to integrate with Botkube. -\## Accessing API -You can navigate to http://localhost:8080/api to see Swagger Documentation of Keptn APIs. It contains multiple modules, and to receive events, we can select \`mongodb-datastore\` from the dropdown. +Accessing API +------------- + +You can navigate to http://localhost:8080/api to see Swagger Documentation of Keptn APIs. It contains multiple modules, and to receive events, we can select `mongodb-datastore` from the dropdown. ![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/646b724ccd77eb686625a42e_swagger-docs.png) -Notice we already authorized Keptn CLI in previous sections, and we can reuse the token inside \`keptn auth ...\` command to use in Swagger Authorize to call endpoints in Swagger UI or construct following curl command. +Notice we already authorized Keptn CLI in previous sections, and we can reuse the token inside `keptn auth ...` command to use in Swagger Authorize to call endpoints in Swagger UI or construct following curl command. + +‍ Now we have all of the requirements ready to be used in Botkube plugin development, let's continue with our fresh new plugin, Botkube Keptn Plugin! -‍ -Now we have all of the requirements ready to be used in Botkube plugin development, let's continue with our fresh new plugin, Botkube Keptn Plugin! +Plugin Development +------------------ -\## Plugin Development -Before implementing Keptn plugin business logic, I would like provide 2 source for plugin development: -\- \[Botkube Plugin Development Quick Start\](https://docs.botkube.io/plugin/quick-start) -\- \[Implementing Custom Botkube Source Plugin\](https://docs.botkube.io/plugin/custom-source) +Before implementing Keptn plugin business logic, I would like provide 2 source for plugin development: -‍ -Now we are ready to implement actual business logic of the Keptn plugin to receive events. You will see partial -examples of the codebase in this article, but don't worry, you can see the full codebase here. +* [Botkube Plugin Development Quick Start](https://docs.botkube.io/plugin/quick-start) +* [Implementing Custom Botkube Source Plugin](https://docs.botkube.io/plugin/custom-source) + +‍ Now we are ready to implement actual business logic of the Keptn plugin to receive events. You will see partial examples of the codebase in this article, but don't worry, you can see the full codebase here. + +Plugin Configuration Structure +------------------------------ -\## Plugin Configuration Structure In order to integrate Botkube with Keptn, Botkube should now be the entrypoint of Keptn to consume events. Also, it needs a token for successful authentication with Keptn. Additionally, we can add filtering parameters like project and service to consume events for certain project and service. With those information, following Go struct can be used for plugin configuration.
// config.go
package keptn
...
// Config prometheus configuration
type Config struct {
URL string `yaml:"url,omitempty"`
Token string `yaml:"token,omitempty"`
Project string `yaml:"project,omitempty"`
Service string `yaml:"service,omitempty"`
Log config.Logger `yaml:"log,omitempty"`
}
...
-‍ -To have a smooth plugin integration, we can have configuration defaults, and once end user provides their own configuration, we should merge those configs -as follows. +‍ To have a smooth plugin integration, we can have configuration defaults, and once end user provides their own configuration, we should merge those configs as follows.
// config.go
package keptn
import "github.com/kubeshop/botkube/pkg/pluginx"
...
// MergeConfigs merges all input configuration.
func MergeConfigs(configs []*source.Config) (Config, error) {
defaults := Config{}
var out Config
// You can see useful utility packages like `pluginx` in Botkube core.
if err := pluginx.MergeSourceConfigsWithDefaults(defaults, configs, &out); err != nil {
return Config{}, fmt.Errorf("while merging configuration: %w", err)
}
return out, nil
}
...
-‍ -\## Simple Keptn Client Implementation -We will implement an SDK to connect Keptn API to consume events. This will be a facade to reduce complexity and coupling. -Keptn already has a \[Go SDK\](github.com/keptn/go-utils/pkg/api/utils/v2"), and in our client we will initialize an instance of that client and call events endpoint as shown below. +‍ + +Simple Keptn Client Implementation +---------------------------------- + +We will implement an SDK to connect Keptn API to consume events. This will be a facade to reduce complexity and coupling. Keptn already has a [Go SDK](https://botkube.io/blog/github.com/keptn/go-utils/pkg/api/utils/v2), and in our client we will initialize an instance of that client and call events endpoint as shown below.
// client.go
package keptn
import (
api "github.com/keptn/go-utils/pkg/api/utils/v2"
"time"
)
// Client Keptn client
type Client struct {
// API refers to Keptn client. https://github.com/keptn/go-utils
API *api.APISet
}
type GetEventsRequest struct {
Project string
FromTime time.Time
}
type Event struct {
ID string
Source string
Type string
Data Data
}
type Data struct {
Message string
Project string
Service string
Status string
Stage string
Result string
}
...
// NewClient initializes Keptn client
func NewClient(url, token string) (*Client, error) {
client, err := api.New(url, api.WithAuthToken(token))
if err != nil {
return nil, err
}
return &Client{
API: client,
}, nil
}
// Events returns only new events.
func (c *Client) Events(ctx context.Context, request *GetEventsRequest) ([]Event, error) {
fromTime := request.FromTime.UTC().Format(time.RFC3339)
var events []Event
res, err := c.API.Events().GetEvents(ctx, &api.EventFilter{
Project: request.Project,
FromTime: fromTime,
}, api.EventsGetEventsOptions{})
if err != nil {
return nil, err.ToError()
}
for _, ev := range res {
data := Data{}
err := ev.DataAs(&data)
if err != nil {
return nil, err
}
events = append(events, Event{
ID: ev.ID,
Source: *ev.Source,
Type: *ev.Type,
Data: data,
})
}
return events, nil
}
-‍ -To summaries above example, \`Events\` method accepts context and filter request to get events based on the filtering parameters. -That method can return slice of Events or an error. Now that we have a client, let's implement the core of our plugin to call this -Keptn client implementation. +‍ To summaries above example, `Events` method accepts context and filter request to get events based on the filtering parameters. That method can return slice of Events or an error. Now that we have a client, let's implement the core of our plugin to call this Keptn client implementation. + +Keptn Plugin Core +----------------- -\## Keptn Plugin Core In order to write a source plugin, we need to implement following contracts -‍ -\`Stream\` is a gRPC endpoint that is consumed by a gRPC client in Botkube core. So, Botkube will stream events from this endpoint. -\`Metadata\` is used for providing information about Keptn plugin. This will be also used by CI system to generate plugin metadata. -Metadata can contain plugin configuration details. +‍ `Stream` is a gRPC endpoint that is consumed by a gRPC client in Botkube core. So, Botkube will stream events from this endpoint. `Metadata` is used for providing information about Keptn plugin. This will be also used by CI system to generate plugin metadata. Metadata can contain plugin configuration details. -In \`Stream\` method, we need to consume Keptn events as follows. +In `Stream` method, we need to consume Keptn events as follows.
// source.go
package keptn
const pollPeriodInSeconds = 5
...
func (p *Source) consumeEvents(ctx context.Context, cfg Config, ch chan<- source.Event) {
keptn, err := NewClient(cfg.URL, cfg.Token)
log := loggerx.New(cfg.Log)
exitOnError(err, log)
for {
req := GetEventsRequest{
Project: cfg.Project,
FromTime: time.Now().Add(-time.Second * pollPeriodInSeconds),
}
res, err := keptn.Events(ctx, &req)
if err != nil {
log.Errorf("failed to get events. %v", err)
}
for _, event := range res {
textFields := []api.TextField{
{Key: "Source", Value: PluginName},
{Key: "Type", Value: event.Type},
}
if event.Data.Status != "" {
textFields = append(textFields, api.TextField{Key: "State", Value: event.Data.Status})
}
var bulletLists []api.BulletList
if event.Data.Message != "" {
bulletLists = []api.BulletList{
{
Title: "Description",
Items: []string{
event.Data.Message,
},
},
}
}
msg := api.Message{
Type: api.NonInteractiveSingleSection,
Timestamp: time.Now(),
Sections: []api.Section{
{
TextFields: textFields,
BulletLists: bulletLists,
},
},
}
ch <- source.Event{
Message: msg,
RawObject: event,
}
}
// Fetch events periodically with given frequency
time.Sleep(time.Second * pollPeriodInSeconds)
}
}
...
-‍ -Above implementation will poll Keptn endpoint each for 5 seconds and will return a Message to Botkube so that it will dispatch this message to configured platform. -Notice, we use \`FromTime\` parameter to fetch only last 5 seconds windowed events. As you also noticed, we use a special struct \`api.Message\` for structured message that you can see advanced details about that \[here\](https://docs.botkube.io/plugin/interactive-messages). +‍ Above implementation will poll Keptn endpoint each for 5 seconds and will return a Message to Botkube so that it will dispatch this message to configured platform. Notice, we use `FromTime` parameter to fetch only last 5 seconds windowed events. As you also noticed, we use a special struct `api.Message` for structured message that you can see advanced details about that [here](https://docs.botkube.io/plugin/interactive-messages). + +Building Plugin +--------------- -\## Building Plugin In order to build plugin, you can use following command. -‍ -This will build the plugin, and generate a metadata file for plugin index. \`PLUGIN\_DOWNLOAD\_URL\_BASE\_PATH\` environment variable is used -for defining the base path of plugin download url. Now we have plugin binaries locally, then we can serve them with following command. +‍ This will build the plugin, and generate a metadata file for plugin index. `PLUGIN_DOWNLOAD_URL_BASE_PATH` environment variable is used for defining the base path of plugin download url. Now we have plugin binaries locally, then we can serve them with following command. + +‍ Once you navigate to http://localhost:8080/dist, you can see the keptn plugin binary. This means, Botkube core can consume this endpoint to donwload and register as Botkube plugin. -‍ -Once you navigate to http://localhost:8080/dist, you can see the keptn plugin binary. This means, Botkube core can consume this endpoint to donwload and register as Botkube plugin. +Running Botkube +--------------- -\## Running Botkube In order to use the Keptn plugin, we can use following repository config in Botkube configuration file.
// config.yaml
...
plugins:
repositories:
botkube:
url: http://localhost:8080/plugins-dev-index.yaml
...
-‍ -The above config is just for making Keptn plugin visible to Botkube core, now we can add a Keptn source plugin configuration as follows. +‍ The above config is just for making Keptn plugin visible to Botkube core, now we can add a Keptn source plugin configuration as follows. -
'keptn':
## Keptn source configuration
## Plugin name syntax: <repo>/<plugin>[@<version>]. If version is not provided, the latest version from repository is used.
botkube/keptn:
# -- If true, enables `keptn` source.
enabled: true
config:
project: "botkube"
url: "http://localhost:8080/api"
token: "keptn_token"
log:
level: info
+
'keptn':
## Keptn source configuration
## Plugin name syntax: /[@]. If version is not provided, the latest version from repository is used.
botkube/keptn:
# -- If true, enables `keptn` source.
enabled: true
config:
project: "botkube"
url: "http://localhost:8080/api"
token: "keptn_token"
log:
level: info
-‍ -All the Keptn configurations are defined under \`config\` section. Once Botkube application starts, it would stream Keptn plugin and that plugin -consume the endpoint \`http://localhost:8080/api\` with query parameters \`project=botkube\` and with auth headers \`X-Token=\`. However, we need to add this Keptn source to \`communications\` configuration of Botkube as follows. +‍ All the Keptn configurations are defined under `config` section. Once Botkube application starts, it would stream Keptn plugin and that plugin consume the endpoint `http://localhost:8080/api` with query parameters `project=botkube` and with auth headers `X-Token=`. However, we need to add this Keptn source to `communications` configuration of Botkube as follows.
...
slack:
enabled: true
token: "xoxb-..."
channels:
'default':
name: botkube-demo
bindings:
sources:
- keptn
...
-‍ -Whenever an event is fired in Keptn, this event will be stored in mongodb-datasource and this will be consumed by -Keptn plugin. Finally, with above configuration, it will be sent to platforms which are defined in \`communications\` section. +‍ Whenever an event is fired in Keptn, this event will be stored in mongodb-datasource and this will be consumed by Keptn plugin. Finally, with above configuration, it will be sent to platforms which are defined in `communications` section. ![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/646b726bb3ed5ff180fca044_keptn-slack-message.png) -\## Get Started with Botkube Plugin Development +Get Started with Botkube Plugin Development +------------------------------------------- -We hope that this helps you get started with developing your own Botkube plugin! If you need some help or have any questions, we're always available on the \[Botkube Community Slack\](http://join.botkube.io).  Check out the \[Botkube Plugin Development Quick Start\](https://docs.botkube.io/plugin/quick-start) and \[Implementing Custom Botkube Source Plugin\](https://docs.botkube.io/plugin/custom-source) guides to help you along the way. +We hope that this helps you get started with developing your own Botkube plugin! If you need some help or have any questions, we're always available on the [Botkube Community Slack](https://join.botkube.io/). Check out the [Botkube Plugin Development Quick Start](https://docs.botkube.io/plugin/quick-start) and [Implementing Custom Botkube Source Plugin](https://docs.botkube.io/plugin/custom-source) guides to help you along the way. diff --git a/hack/assistant-setup/content/botkube.io__blog__integrating-microsoft-teams-with-azure-for-kubernetes-deployments.md b/hack/assistant-setup/content/botkube.io__blog__integrating-microsoft-teams-with-azure-for-kubernetes-deployments.md index c1a76ec..70fdb15 100644 --- a/hack/assistant-setup/content/botkube.io__blog__integrating-microsoft-teams-with-azure-for-kubernetes-deployments.md +++ b/hack/assistant-setup/content/botkube.io__blog__integrating-microsoft-teams-with-azure-for-kubernetes-deployments.md @@ -25,7 +25,7 @@ Botkube is entering the MS teams world * [Conclusion](#conclusion) * [Get Started with Botkube](#get-started-with-botkube) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Start Receiving Kubernetes Notifications Now with Botkube Cloud @@ -69,9 +69,9 @@ Dashboard setup 1. Select create a new instance -![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7dd390269cbe2d3ba4_jCUYYPLNDFZDkosCGhXjsC4Cvk9OsKaPJowAXS_Yi3-gdAekdM-YYj_QvgqvMCkAOIDbqXTaJGZuJFAjb5pIwZWo0kFlQwPBcwAzKW6X7ax6gK3rQVjbGKOJg_9Ps9i28sE-f7xg0hdp8hoY5mPwnNI.png) +![Image 2: Web Dashboard to connect Botkube to your Cluster](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7dd390269cbe2d3ba4_jCUYYPLNDFZDkosCGhXjsC4Cvk9OsKaPJowAXS_Yi3-gdAekdM-YYj_QvgqvMCkAOIDbqXTaJGZuJFAjb5pIwZWo0kFlQwPBcwAzKW6X7ax6gK3rQVjbGKOJg_9Ps9i28sE-f7xg0hdp8hoY5mPwnNI.png) -![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e072ab825022ca51e_w3OobTivy6lb1zbPozEcTOySEmAZPSRU0WVO120nal_egmZ-HVayv2FIuTzLsJ6vBJuZBfrFLiMkzjzpOS2kJash0C8_p3scSVIAFUY5Rb_1YqE2xACl2811ugQ1E-VazSxtzki-AirkeARSEZ5sKq0.png) +![Image 3: Commands to run to add Botkube to Kubernetes Cluster for Teams](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e072ab825022ca51e_w3OobTivy6lb1zbPozEcTOySEmAZPSRU0WVO120nal_egmZ-HVayv2FIuTzLsJ6vBJuZBfrFLiMkzjzpOS2kJash0C8_p3scSVIAFUY5Rb_1YqE2xACl2811ugQ1E-VazSxtzki-AirkeARSEZ5sKq0.png) 2. Next, use homebrew or curl to install Botkube CLI on your terminal (Step 1) 3. Copy and paste the `Botkube install`… command (Step 2) @@ -79,82 +79,62 @@ Dashboard setup ‍ -![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e1938916887fbf34f_WVBv6m9k1C5RWt4FI7QuA8VU-lSDXKQZOJWyqvfe7YZVDnNxquO3DBkznU2LP9TulrVxeDPloV4O7w40n6OVt3NjPPkMynGNKA_6wbc1knG-znVU3N5E8J6H1fqmpWafhnh4eOgb37W1Di2MgHUrrtU.png) +![Image 4: Select preferred communication platform connection](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e1938916887fbf34f_WVBv6m9k1C5RWt4FI7QuA8VU-lSDXKQZOJWyqvfe7YZVDnNxquO3DBkznU2LP9TulrVxeDPloV4O7w40n6OVt3NjPPkMynGNKA_6wbc1knG-znVU3N5E8J6H1fqmpWafhnh4eOgb37W1Di2MgHUrrtU.png) 5. Name your instance and select the **Teams** option -![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e6a852b2620a9b5fb_7fpjvjcPJcqBZKRJ2oNOisODdOt9vN9J-sYcsuFLYMzlKF8CzLOXI3vM83HZ0YvdShckXSZcDBTclvCv9IRPGrNqeIIMBA6KdnKhilwSek9nqKBLZOrwUUFMZYe5zIBJmv2nh3jwJuJK2kjgO5Lh1ZM.png) - -6. Select the Download button to download the Botkube App. It will show up as **Botkube.zip** - -‍ - -![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db9251f0d1db86ab7_w9yhNzeHzqqc4JawGTersD2qogEalGSUFs9xlGLhX_8OoCXcxSEEaJNnXaAdB3KyA25t6XnaNAzAM_P1cBjLNN68lZZGZ6GjAwWL8iAlXn4hyrwJ5FM3p8MLBCyUtwoSvw1ZRWBs7ds6jYHeYaJJJAU.png) +![Image 5: Setting up Teams to receive Kubernetes alerts](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e6a852b2620a9b5fb_7fpjvjcPJcqBZKRJ2oNOisODdOt9vN9J-sYcsuFLYMzlKF8CzLOXI3vM83HZ0YvdShckXSZcDBTclvCv9IRPGrNqeIIMBA6KdnKhilwSek9nqKBLZOrwUUFMZYe5zIBJmv2nh3jwJuJK2kjgO5Lh1ZM.png) ### Installing Botkube to Microsoft Teams -‍ +If you set this connection up previously, it should still be connected. However Botkube recently got listed on the [Microsoft Teams App Store](https://botkube.io/blog/botkube-is-now-verified-in-microsoft-appsource), so the connection just got way easier with less steps. So if you want to set the connection up again you may notice it went from 18 steps to now only 11 with Botkube being an approved Teams and Azure application. 1. Navigate to the Microsoft Teams application and select **Manage your Apps** at the button of the screen -![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d14da41d53c779535_oErOXojrwoCSfbs3A0830mnbkI1xb2rOD83YopN5B6k7Ti_O5OZdusUD4VrNjdFs_xHSaTxCjdipKQJuaLhpksHgW3Fwd8xx8MSFSq1HiuWVzsoTG90t1Dy4nlcAAkIuNdAsumH4sjQWXljJJ9y_Lbo.png) - -2. Next select **Upload an app** and select **Upload an app to your org’s app catalog** - -![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656eef4cf0cfa6050f79acc5_Screen%20Shot%202023-12-05%20at%201.36.02%20AM.png) +![Image 6: Adding Teams Apps from Store](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d14da41d53c779535_oErOXojrwoCSfbs3A0830mnbkI1xb2rOD83YopN5B6k7Ti_O5OZdusUD4VrNjdFs_xHSaTxCjdipKQJuaLhpksHgW3Fwd8xx8MSFSq1HiuWVzsoTG90t1Dy4nlcAAkIuNdAsumH4sjQWXljJJ9y_Lbo.png) -3. Select the **Botkube.zip** file from the previous section -4. Navigate to the **Apps** section on the left hand side and select the **Built for your Org section.** The Botkube application will be there. +2. Next select **Search for Botkube** in the search bar at the top of the screen. -‍ - -5. Select the **Add** button - -![Image 9](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d640c39e96661f69e_zpXrkocqwakQB8jrA8pwYH2CSrmRim4pp13-Pt8lZRgdgw33jCDfqnrxpYK3jt2fhSctK5cIyMt9taA-VAAUSD3tiicgAdTafZ7gAqBs08Bkljt7BJlUsxUh3OUdg1fhjCiCO5lTztUHXd8CrccWxXs.png) - -![Image 10](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d053e39713de9aa28_FNgbV-UuRUprEaIcHxqlypAX2PnrAGJjbfHZu8I2uJ4zRqP3ZXt3L4ez8rPqWhZZv_-ruLTTXoWLZFO5Nv4vKTfoJ8hjqFjrHX-M_RwhlaAPrF5IDEcZjDg523tVuwYOMranVLyV3IOVrbDzRI4OY5M.png) +![Image 7: Botkube's listing on Microsoft teams store](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664cdd1749371ee8efa0e9ba_Botkube%20Teams%20APp%20pic.png) -6. And then select the **Add to team** button +3. And then select the **Add to team** button -![Image 11](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e778b3a2f89c145c5_2I5Ickc_OXlcgym-Ju-rDd9gVc0kVk-QW0_js_3gURGp0dgqj5jS0lOzoIox8vr07ky4hiHkn3LHiTIJ0JKU4jK6Q9rIsan8_lavBnIF7WETp-F_LEM0bTZW4keiuLe3cM3VA_9leLry29hAZ1_vXfU.png) +![Image 8: Further info on the Microsoft Teams Kubernetes connection](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664cde0777d69d63cd727d52_Botkube%20Teams%20listing.png) -7. Select your preferred team or channel you would like to add Botkube to +4\. Select your preferred team or channel you would like to add Botkube to -![Image 12](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db157112561870666_ZfA2XrAwSEqm7yLkbUMoOEL_3sIULsNu2rHAaerMIvhOyKO79bjSFvausKcnNF_rxPc8rq0rFAl2VGRNct3Gb0aJimPt3pYbJInhW0-Z6ffQWq3_gPAbiJbHQHMhefcBbAbROu95icJakohqR-patiY.png) +![Image 9: Adding bot to chat channel](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e778b3a2f89c145c5_2I5Ickc_OXlcgym-Ju-rDd9gVc0kVk-QW0_js_3gURGp0dgqj5jS0lOzoIox8vr07ky4hiHkn3LHiTIJ0JKU4jK6Q9rIsan8_lavBnIF7WETp-F_LEM0bTZW4keiuLe3cM3VA_9leLry29hAZ1_vXfU.png) -8. Next, Navigate to the chat window and a welcome message should appear -9. Select the **Grant Access** button +5. Next, Navigate to the chat window and a welcome message should appear -![Image 13](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d3cb1d0c7707a8a18_OHBLhhF5yDy9WTlI0AGKR5CnwnFjre9_Vz2BKdaUsnpAnxwk4hdqExTzBxp3yX0MH9wKGbktN0E6RG9YPeLlMShX0ybFtJ2eNbkt2WmHrLzTkBm7bZPnYcDLmy9YbQEcsbhNh5ZWj1HhibNRxe223IQ.png) - -10. A new window will pop up asking you to grant access. Click **Accept** - -‍ +![Image 10: Welcome message](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db157112561870666_ZfA2XrAwSEqm7yLkbUMoOEL_3sIULsNu2rHAaerMIvhOyKO79bjSFvausKcnNF_rxPc8rq0rFAl2VGRNct3Gb0aJimPt3pYbJInhW0-Z6ffQWq3_gPAbiJbHQHMhefcBbAbROu95icJakohqR-patiY.png) -11. Navigate to the chat window and select **Connect to Botkube Cloud** +6. Select **Connect to Botkube Cloud** -![Image 14](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db157112561870666_ZfA2XrAwSEqm7yLkbUMoOEL_3sIULsNu2rHAaerMIvhOyKO79bjSFvausKcnNF_rxPc8rq0rFAl2VGRNct3Gb0aJimPt3pYbJInhW0-Z6ffQWq3_gPAbiJbHQHMhefcBbAbROu95icJakohqR-patiY.png) +![Image 11: Further adding the bot](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db157112561870666_ZfA2XrAwSEqm7yLkbUMoOEL_3sIULsNu2rHAaerMIvhOyKO79bjSFvausKcnNF_rxPc8rq0rFAl2VGRNct3Gb0aJimPt3pYbJInhW0-Z6ffQWq3_gPAbiJbHQHMhefcBbAbROu95icJakohqR-patiY.png) -12. This will take you to the Botkube Cloud dashboard. Your Teams channel will appear. Select the **Connect** Button. +7. This will take you to the Botkube Cloud dashboard. Your Teams channel will appear. Select the **Connect** Button. -![Image 15](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656eefd26cc09bfeec2845b3_Screen%20Shot%202023-12-05%20at%201.38.28%20AM.png) +![Image 12: Simple connect button](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656eefd26cc09bfeec2845b3_Screen%20Shot%202023-12-05%20at%201.38.28%20AM.png) -![Image 16](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d165a59345b2b698b__rEh9UH04sSf8XxhQi_3JhGSjynIaVLwD--bRFqQa3v2Rqrahxpnna3yryM1a4omthQ-Fize-gyhNgRAXDTl-DYQXkJ1LUhp1OvRWNwn62jwfra7qa806TPcVm13W3pbeA52XN47_MlPkUVEvvyb6KA.png) +![Image 13: Success message for alerts to show up in channel](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d165a59345b2b698b__rEh9UH04sSf8XxhQi_3JhGSjynIaVLwD--bRFqQa3v2Rqrahxpnna3yryM1a4omthQ-Fize-gyhNgRAXDTl-DYQXkJ1LUhp1OvRWNwn62jwfra7qa806TPcVm13W3pbeA52XN47_MlPkUVEvvyb6KA.png) -13. All of your Teams information will appear in the dashboard. Select the channels you want to use with Botkube. +8. All of your Teams information will appear in the dashboard. Select the channels you want to use with Botkube. -![Image 17](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ead44d850b34e7f35_nSgmglbxW-mAFvthFI-1q0c0dcMg2m2wejlA2__CmM-vyDDeyLjUh84vTLufTx77jaJ-ifWWa1bzkFpn7bPK0KbehAARBOg2Zle9HbNUk3SXAP9-jcNbNXFypsfgSPY75R2BLLwmDi9nUFUY88StBNg.png) +![Image 14: Control all channels that the Azure Kubernetes cluster is connected to in a dashboard](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ead44d850b34e7f35_nSgmglbxW-mAFvthFI-1q0c0dcMg2m2wejlA2__CmM-vyDDeyLjUh84vTLufTx77jaJ-ifWWa1bzkFpn7bPK0KbehAARBOg2Zle9HbNUk3SXAP9-jcNbNXFypsfgSPY75R2BLLwmDi9nUFUY88StBNg.png) -14. Connect your preferred plugins +9. Connect your preferred plugins -![Image 18](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ddec01b0e38f3eb6d_pVkuqIiFGr5zQ8lNXQcSMQXQhDbPx5rZ6m0OptpyWKHIfpzzTwn1UbTR44-HU_YM2NOBfoOhvapjYfohK0AUjF5dsvV_8JGnujLfhEzupnaCMLJoD4pzbAE6aHZemjv1Rzzi3rsu8HoFbqrSxbu1TVI.png) +![Image 15: Add extra DevOps related plugins to the cluster](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ddec01b0e38f3eb6d_pVkuqIiFGr5zQ8lNXQcSMQXQhDbPx5rZ6m0OptpyWKHIfpzzTwn1UbTR44-HU_YM2NOBfoOhvapjYfohK0AUjF5dsvV_8JGnujLfhEzupnaCMLJoD4pzbAE6aHZemjv1Rzzi3rsu8HoFbqrSxbu1TVI.png) -15. Review and select your preferred Botkube defaults. +10. Review and select your preferred Botkube defaults. -![Image 19](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d6f8e75cab928022a_PVwnI51Br_JjDcyKQsNjixKmrtTDW10Ug0gHIUJMFxDo51P-_aRrStZiIrK-Pmqxg3DnFwrtTRZqhHUGhZv2d37pHnWMmUvx9p5o4FnQe8M-YkkM8wVZk7_P3-tUs0umUmnfE37H4QbtR8E-yg36w2A.png) +![Image 16: Adding kubectl aliases to Teams](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d6f8e75cab928022a_PVwnI51Br_JjDcyKQsNjixKmrtTDW10Ug0gHIUJMFxDo51P-_aRrStZiIrK-Pmqxg3DnFwrtTRZqhHUGhZv2d37pHnWMmUvx9p5o4FnQe8M-YkkM8wVZk7_P3-tUs0umUmnfE37H4QbtR8E-yg36w2A.png) -16. Select **Apply changes** -17. Congratulations! You have successfully deployed Botkube for Microsoft Teams! +11. Select **Apply changes**‍ + +12. Congratulations! You have successfully deployed Botkube for Microsoft Teams! + Conclusion ---------- diff --git a/hack/assistant-setup/content/botkube.io__blog__introducing-botkube-v1-0-the-future-of-kubernetes-troubleshooting.md b/hack/assistant-setup/content/botkube.io__blog__introducing-botkube-v1-0-the-future-of-kubernetes-troubleshooting.md index 7099c37..56f2dca 100644 --- a/hack/assistant-setup/content/botkube.io__blog__introducing-botkube-v1-0-the-future-of-kubernetes-troubleshooting.md +++ b/hack/assistant-setup/content/botkube.io__blog__introducing-botkube-v1-0-the-future-of-kubernetes-troubleshooting.md @@ -21,10 +21,10 @@ Something new is coming to the Botkube universe... * [RBAC support](#rbac-support-) * [Interactive Control Plane](#interactive-control-plane-) * [Additional Features](#additional-features) -* [Sign up now!](#sign-up-now-) +* [Sign up now](#sign-up-now) * [Feedback](#feedback) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! We are thrilled to announce the launch of [Botkube v1.0](https://app.botkube.io/) This new version of Botkube introduces a hosted control plane for multi-cluster management and monitoring of all of your Botkube instances.Troubleshooting in the K8s world can be like trying to navigate through a mosh pit - chaotic and unpredictable. With alerts flying in from all directions and collaboration being a somewhat ad hoc process, it's easy to feel like you're drowning in a sea of chaos. Even if developers have access to the K8s cluster, it's often not a smooth process - secret keys can be tough to revoke and retrieving logs is done manually. And let's not forget about security - accessing the cluster to perform operations must be limited to approved networks and devices. Sometimes, remote troubleshooting just isn't an option. It's time for a better way to troubleshoot K8s.That’s where Botkube comes in. @@ -45,13 +45,9 @@ Botkube RBAC Architecture Botkube features role-based access control ([RBAC](https://docs.botkube.io/configuration/rbac/)), enabling plugins or communication channels to map to Kubernetes users or groups. This means that when a plugin or channel is mapped, it takes on the permissions of the user or group, thereby limiting the actions that the plugin or channel can perform in the cluster. With this feature, Botkube's security and access controls are flexible and precise, providing enhanced security and control to developers and DevOps engineers alike. -‍ - Interactive Control Plane ------------------------- -‍ - Botkube brings an exciting new feature to the table - a [web-based control plane](https://app.botkube.io/) that works across multiple clusters. With this powerful tool, you can create new Botkube instances in a flash, making installation into a K8s cluster a breeze. The control plane also enables you to modify the configuration of communication platforms and plugins, and even synchronize the configuration to Botkube instances automatically. ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/643728ace69f4305d971ce6f_Screen%20Shot%202023-04-12%20at%202.54.18%20PM.png) @@ -65,28 +61,22 @@ Additional Features Botkube has made some exciting additions to its core features: -‍ - * The Kubernetes source and kubectl executors have been extracted as plugins to take advantage of all the plugin functionalities. * Executors and sources now support more advanced message formatting and interactivity to enhance user experience. * Prometheus messages are now more readable with new message formatting. * Negative regex patterns for event and resource constraints are now supported. * Plugin development guides have been updated to cover the new interactive features. -‍ - These improvements provide greater flexibility and functionality for Botkube users, making it easier to troubleshoot Kubernetes clusters and streamline communication between teams. -Sign up now! ------------- +Sign up now +----------- [Get started with Botkube](https://app.botkube.io/)! Whether you're a seasoned Kubernetes pro or just getting started, Botkube has something to offer. Sign up now for free and join the community of users who are already benefiting from the power of Botkube. Don't miss out on this opportunity to streamline your K8s workflow and take your skills to the next level - try Botkube today! -‍ - Feedback -------- -We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give you some cool Botkube plushies and t-shirts and enter you into a raffle for a chance to win a $50 Amazon gift card! Don't miss this opportunity to have your say - just email [maria@kubeshop.io](mailto:maria@kubeshop.io) or use this [calendly link](https://calendly.com/maria-botkube/15min) to sign up. +We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give you some cool Botkube plushies and t-shirts and enter you into a raffle for a chance to win a $50 Amazon gift card. -You can also talk to us in the Botkube [**GitHub issues**](https://github.com/kubeshop/botkube/issues), Botkube [**Slack community**](http://join.botkube.io/), or email our Product Leader at [**blair@kubeshop.io**](mailto:blair@kubeshop.io). +You can also talk to us in the Botkube [**GitHub issues**](https://github.com/kubeshop/botkube/issues), Botkube [**Slack community**](https://join.botkube.io/), or email our Product Leader at [**blair@kubeshop.io**](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__introducing-botkubes-integration-with-flux.md b/hack/assistant-setup/content/botkube.io__blog__introducing-botkubes-integration-with-flux.md index bb705a8..80bfccb 100644 --- a/hack/assistant-setup/content/botkube.io__blog__introducing-botkubes-integration-with-flux.md +++ b/hack/assistant-setup/content/botkube.io__blog__introducing-botkubes-integration-with-flux.md @@ -24,7 +24,7 @@ As the demand for seamless scalability and efficient teamwork increases, an inno * [Optimized Flux Workflow](#optimized-flux-workflow) * [Get Started with Botkube’s new Flux Plugin](#get-started-with-botkube-s-new-flux-plugin) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud diff --git a/hack/assistant-setup/content/botkube.io__blog__is-chatops-a-kubernetes-dashboard-alternative.md b/hack/assistant-setup/content/botkube.io__blog__is-chatops-a-kubernetes-dashboard-alternative.md index 43d8b9c..7ff9102 100644 --- a/hack/assistant-setup/content/botkube.io__blog__is-chatops-a-kubernetes-dashboard-alternative.md +++ b/hack/assistant-setup/content/botkube.io__blog__is-chatops-a-kubernetes-dashboard-alternative.md @@ -21,7 +21,7 @@ Can ChatOps replace the age old monitoring dashboards that DevOps teams still bu * [Use Cases for Chat Operations in Kubernetes](#use-cases-for-chat-operations-in-kubernetes) * [Conclusions](#conclusions) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! Kubernetes is a powerful container orchestration platform that can be used to deploy, manage, and scale containerized applications. However, Kubernetes can be complex to manage, especially for large deployments. This is where ChatOps can come in. @@ -92,6 +92,4 @@ Ultimately, the best way to monitor Kubernetes depends on your specific needs an In conclusion, ChatOps is a great alternative to Kubernetes Dashboards. It allows you to monitor and troubleshoot your Kubernetes cluster in a collaborative environment, where you can chat with your team members and get help from experts. Botkube is the best solution for ChatOps in Kubernetes. It is easy to set up and use, and it has a wide range of features, including monitoring, troubleshooting, and automation. With Botkube Cloud's new web graphical user interface and live audit log, you can also get a little bit of a dashboard about your cluster, but most of the action is in the Chat Ops functions, which will alert you when something is wrong and suggest the change automatically. -If you are looking for a way to improve your Kubernetes operations, I highly recommend giving [Botkube a try](http://app.botkube.io/). - -‍ +If you are looking for a way to improve your Kubernetes operations, I highly recommend giving [Botkube a try](https://app.botkube.io/). diff --git a/hack/assistant-setup/content/botkube.io__blog__level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant.md b/hack/assistant-setup/content/botkube.io__blog__level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant.md index 5d519b9..f770ac9 100644 --- a/hack/assistant-setup/content/botkube.io__blog__level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant.md +++ b/hack/assistant-setup/content/botkube.io__blog__level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant.md @@ -22,7 +22,7 @@ See how Botkube is optimizing SRE workflows with the new AI assistant * [More Ways Botkube Enhances Your Workflow](#more-ways-botkube-enhances-your-workflow) * [Get Started with Botkube Today](#get-started-with-botkube-today) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Start Using Botkube AI Assistant Today! @@ -102,4 +102,4 @@ Botkube shifts your approach to Kubernetes troubleshooting from reactive to proa Get Started with Botkube Today ------------------------------ -Botkube's AI assistant is pre-installed and ready to go – no extra setup required! [Sign up for Botkube,](http://app.botkube.io/) link your Kubernetes cluster following our [easy instructions](https://botkube.io/blog/get-botkube-running-in-under-3-minutes-the-new-slack-app), and get started with the AI assistant. Use the `@Botkube ai` command for real-time, context-aware advice via your messaging platform, transforming Kubernetes management into an intuitive, efficient process. Join the Botkube community and get additional resources and help with any of your troubleshooting questions. +Botkube's AI assistant is pre-installed and ready to go – no extra setup required! [Sign up for Botkube,](https://app.botkube.io/) link your Kubernetes cluster following our [easy instructions](https://botkube.io/blog/get-botkube-running-in-under-3-minutes-the-new-slack-app), and get started with the AI assistant. Use the `@Botkube ai` command for real-time, context-aware advice via your messaging platform, transforming Kubernetes management into an intuitive, efficient process. Join the Botkube community and get additional resources and help with any of your troubleshooting questions. diff --git a/hack/assistant-setup/content/botkube.io__blog__leveraging-botkube-for-kubernetes-cost-optimization-and-reporting.md b/hack/assistant-setup/content/botkube.io__blog__leveraging-botkube-for-kubernetes-cost-optimization-and-reporting.md index 50721f4..dc44a15 100644 --- a/hack/assistant-setup/content/botkube.io__blog__leveraging-botkube-for-kubernetes-cost-optimization-and-reporting.md +++ b/hack/assistant-setup/content/botkube.io__blog__leveraging-botkube-for-kubernetes-cost-optimization-and-reporting.md @@ -26,7 +26,7 @@ This tutorial will guide you through using Botkube to monitor resource usage and * [Analyzing and Acting on the Data](#analyzing-and-acting-on-the-data) * [Conclusion](#conclusion) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud diff --git a/hack/assistant-setup/content/botkube.io__blog__maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams.md b/hack/assistant-setup/content/botkube.io__blog__maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams.md index 2b0f565..be7a655 100644 --- a/hack/assistant-setup/content/botkube.io__blog__maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams.md +++ b/hack/assistant-setup/content/botkube.io__blog__maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams.md @@ -23,7 +23,7 @@ Get Botkube up and running with Microsoft Teams in less than 5 mins with this wa * [Conclusion](#conclusion-) * [Get Started with Botkube](#get-started-with-botkube) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -54,7 +54,7 @@ In this tutorial, we will guide you through the step-by-step process of configur #### One-Time Setup and Ongoing Flexibility -_\*\* Steps 1-4 and 7-10 are one-time operations requiring administrative privileges. Once set up, Botkube can be configured across various channels and clusters without needing further admin access in Teams. This means after the initial setup, users can easily manage alerts and configurations through the Botkube Web App.\*\*_ +_\*\* A few steps are one-time operations requiring administrative privileges. Once set up, Botkube can be configured across various channels and clusters without needing further admin access in Teams. This means after the initial setup, users can easily manage alerts and configurations through the_ [_Botkube Web App_](https://app.botkube.io/)_.\*\*_ ### Creating Botkube Cloud Account @@ -65,9 +65,9 @@ _\*\* Steps 1-4 and 7-10 are one-time operations requiring administrative privil 1. Select create a new instance -![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7dd390269cbe2d3ba4_jCUYYPLNDFZDkosCGhXjsC4Cvk9OsKaPJowAXS_Yi3-gdAekdM-YYj_QvgqvMCkAOIDbqXTaJGZuJFAjb5pIwZWo0kFlQwPBcwAzKW6X7ax6gK3rQVjbGKOJg_9Ps9i28sE-f7xg0hdp8hoY5mPwnNI.png) +![Image 2: Create a instance for the Bot](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7dd390269cbe2d3ba4_jCUYYPLNDFZDkosCGhXjsC4Cvk9OsKaPJowAXS_Yi3-gdAekdM-YYj_QvgqvMCkAOIDbqXTaJGZuJFAjb5pIwZWo0kFlQwPBcwAzKW6X7ax6gK3rQVjbGKOJg_9Ps9i28sE-f7xg0hdp8hoY5mPwnNI.png) -![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e072ab825022ca51e_w3OobTivy6lb1zbPozEcTOySEmAZPSRU0WVO120nal_egmZ-HVayv2FIuTzLsJ6vBJuZBfrFLiMkzjzpOS2kJash0C8_p3scSVIAFUY5Rb_1YqE2xACl2811ugQ1E-VazSxtzki-AirkeARSEZ5sKq0.png) +![Image 3: Install code for Botkube into a Kubernetes Cluster](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e072ab825022ca51e_w3OobTivy6lb1zbPozEcTOySEmAZPSRU0WVO120nal_egmZ-HVayv2FIuTzLsJ6vBJuZBfrFLiMkzjzpOS2kJash0C8_p3scSVIAFUY5Rb_1YqE2xACl2811ugQ1E-VazSxtzki-AirkeARSEZ5sKq0.png) 2. Next, use homebrew or curl to install Botkube CLI on your terminal (Step 1) 3. Copy and paste the `Botkube install`… command (Step 2) @@ -75,75 +75,65 @@ _\*\* Steps 1-4 and 7-10 are one-time operations requiring administrative privil ‍ -![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e1938916887fbf34f_WVBv6m9k1C5RWt4FI7QuA8VU-lSDXKQZOJWyqvfe7YZVDnNxquO3DBkznU2LP9TulrVxeDPloV4O7w40n6OVt3NjPPkMynGNKA_6wbc1knG-znVU3N5E8J6H1fqmpWafhnh4eOgb37W1Di2MgHUrrtU.png) +![Image 4: Selecting Chat Platform to connect to](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e1938916887fbf34f_WVBv6m9k1C5RWt4FI7QuA8VU-lSDXKQZOJWyqvfe7YZVDnNxquO3DBkznU2LP9TulrVxeDPloV4O7w40n6OVt3NjPPkMynGNKA_6wbc1knG-znVU3N5E8J6H1fqmpWafhnh4eOgb37W1Di2MgHUrrtU.png) 5. Name your instance and select the **Teams** option -![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e6a852b2620a9b5fb_7fpjvjcPJcqBZKRJ2oNOisODdOt9vN9J-sYcsuFLYMzlKF8CzLOXI3vM83HZ0YvdShckXSZcDBTclvCv9IRPGrNqeIIMBA6KdnKhilwSek9nqKBLZOrwUUFMZYe5zIBJmv2nh3jwJuJK2kjgO5Lh1ZM.png) - -6. Select the Download button to download the Botkube App. It will show up as **Botkube.zip** - -‍ - -![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db9251f0d1db86ab7_w9yhNzeHzqqc4JawGTersD2qogEalGSUFs9xlGLhX_8OoCXcxSEEaJNnXaAdB3KyA25t6XnaNAzAM_P1cBjLNN68lZZGZ6GjAwWL8iAlXn4hyrwJ5FM3p8MLBCyUtwoSvw1ZRWBs7ds6jYHeYaJJJAU.png) +![Image 5: Connecting Kubernetes to Microsoft Teams](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664f5adaddbd09c3d1dfc64e_Teams%20download%20for%20Botkube.png) ### Installing Botkube to Microsoft Teams 1. Navigate to the Microsoft Teams application and select **Manage your Apps** at the button of the screen -![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d14da41d53c779535_oErOXojrwoCSfbs3A0830mnbkI1xb2rOD83YopN5B6k7Ti_O5OZdusUD4VrNjdFs_xHSaTxCjdipKQJuaLhpksHgW3Fwd8xx8MSFSq1HiuWVzsoTG90t1Dy4nlcAAkIuNdAsumH4sjQWXljJJ9y_Lbo.png) - -2. Next select **Upload an app** and select **Upload an app to your org’s app catalog** +![Image 6: teams App Store](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d14da41d53c779535_oErOXojrwoCSfbs3A0830mnbkI1xb2rOD83YopN5B6k7Ti_O5OZdusUD4VrNjdFs_xHSaTxCjdipKQJuaLhpksHgW3Fwd8xx8MSFSq1HiuWVzsoTG90t1Dy4nlcAAkIuNdAsumH4sjQWXljJJ9y_Lbo.png) -![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656eef4cf0cfa6050f79acc5_Screen%20Shot%202023-12-05%20at%201.36.02%20AM.png) +2. Next either **Search to find** Botkube in the Teams App store or simply select **Add.** -3. Select the **Botkube.zip** file from the previous section -4. Navigate to the **Apps** section on the left hand side and select the **Built for your Org section.** The Botkube application will be there. -5. Select the **Add** buttton. +![Image 7: Add Botkube App](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664cdd1749371ee8efa0e9ba_Botkube%20Teams%20APp%20pic.png) -![Image 9](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d640c39e96661f69e_zpXrkocqwakQB8jrA8pwYH2CSrmRim4pp13-Pt8lZRgdgw33jCDfqnrxpYK3jt2fhSctK5cIyMt9taA-VAAUSD3tiicgAdTafZ7gAqBs08Bkljt7BJlUsxUh3OUdg1fhjCiCO5lTztUHXd8CrccWxXs.png) +3. Select the **Add to Team** buttton. -![Image 10](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d053e39713de9aa28_FNgbV-UuRUprEaIcHxqlypAX2PnrAGJjbfHZu8I2uJ4zRqP3ZXt3L4ez8rPqWhZZv_-ruLTTXoWLZFO5Nv4vKTfoJ8hjqFjrHX-M_RwhlaAPrF5IDEcZjDg523tVuwYOMranVLyV3IOVrbDzRI4OY5M.png) +![Image 8: Botkube's Microsoft Teams App Store Listing](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664cde0777d69d63cd727d52_Botkube%20Teams%20listing.png) -6. And then select the **Add to team** button +4\. Select your preferred team or channel you would like to add Botkube to -![Image 11](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e778b3a2f89c145c5_2I5Ickc_OXlcgym-Ju-rDd9gVc0kVk-QW0_js_3gURGp0dgqj5jS0lOzoIox8vr07ky4hiHkn3LHiTIJ0JKU4jK6Q9rIsan8_lavBnIF7WETp-F_LEM0bTZW4keiuLe3cM3VA_9leLry29hAZ1_vXfU.png) +![Image 9: Choose chat channels](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7e778b3a2f89c145c5_2I5Ickc_OXlcgym-Ju-rDd9gVc0kVk-QW0_js_3gURGp0dgqj5jS0lOzoIox8vr07ky4hiHkn3LHiTIJ0JKU4jK6Q9rIsan8_lavBnIF7WETp-F_LEM0bTZW4keiuLe3cM3VA_9leLry29hAZ1_vXfU.png) -7. Select your preferred team or channel you would like to add Botkube to - -![Image 12](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db157112561870666_ZfA2XrAwSEqm7yLkbUMoOEL_3sIULsNu2rHAaerMIvhOyKO79bjSFvausKcnNF_rxPc8rq0rFAl2VGRNct3Gb0aJimPt3pYbJInhW0-Z6ffQWq3_gPAbiJbHQHMhefcBbAbROu95icJakohqR-patiY.png) - -8. Next, Navigate to the chat window and a welcome message should appear -9. Select the **Grant Access** button - -![Image 13](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d3cb1d0c7707a8a18_OHBLhhF5yDy9WTlI0AGKR5CnwnFjre9_Vz2BKdaUsnpAnxwk4hdqExTzBxp3yX0MH9wKGbktN0E6RG9YPeLlMShX0ybFtJ2eNbkt2WmHrLzTkBm7bZPnYcDLmy9YbQEcsbhNh5ZWj1HhibNRxe223IQ.png) - -10. A new window will pop up asking you to grant access. Click **Accept** +‍ -11. Navigate to the chat window and select **Connect to Botkube Cloud** + 5. Next, Navigate to the chat window and a welcome message should appear + + 6. Navigate to the chat window and select Connect to Botkube Cloud + -![Image 14](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db157112561870666_ZfA2XrAwSEqm7yLkbUMoOEL_3sIULsNu2rHAaerMIvhOyKO79bjSFvausKcnNF_rxPc8rq0rFAl2VGRNct3Gb0aJimPt3pYbJInhW0-Z6ffQWq3_gPAbiJbHQHMhefcBbAbROu95icJakohqR-patiY.png) +![Image 10: Bot message in Teams](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7db157112561870666_ZfA2XrAwSEqm7yLkbUMoOEL_3sIULsNu2rHAaerMIvhOyKO79bjSFvausKcnNF_rxPc8rq0rFAl2VGRNct3Gb0aJimPt3pYbJInhW0-Z6ffQWq3_gPAbiJbHQHMhefcBbAbROu95icJakohqR-patiY.png) -12. This will take you to the Botkube Cloud dashboard. Your Teams channel will appear. Select the **Connect** Button. + 7. This will take you to the Botkube Cloud dashboard. Your Teams channel will appear. Select the Connect Button. + -![Image 15](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656eefd26cc09bfeec2845b3_Screen%20Shot%202023-12-05%20at%201.38.28%20AM.png) +![Image 11: One last button to click](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656eefd26cc09bfeec2845b3_Screen%20Shot%202023-12-05%20at%201.38.28%20AM.png) -![Image 16](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d165a59345b2b698b__rEh9UH04sSf8XxhQi_3JhGSjynIaVLwD--bRFqQa3v2Rqrahxpnna3yryM1a4omthQ-Fize-gyhNgRAXDTl-DYQXkJ1LUhp1OvRWNwn62jwfra7qa806TPcVm13W3pbeA52XN47_MlPkUVEvvyb6KA.png) +![Image 12: k8s connected to Microsoft Teams](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d165a59345b2b698b__rEh9UH04sSf8XxhQi_3JhGSjynIaVLwD--bRFqQa3v2Rqrahxpnna3yryM1a4omthQ-Fize-gyhNgRAXDTl-DYQXkJ1LUhp1OvRWNwn62jwfra7qa806TPcVm13W3pbeA52XN47_MlPkUVEvvyb6KA.png) -13. All of your Teams information will appear in the dashboard. Select the channels you want to use with Botkube. + 8. All of your Teams information will appear in the dashboard. Select the channels you want to use with Botkube. + -![Image 17](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ead44d850b34e7f35_nSgmglbxW-mAFvthFI-1q0c0dcMg2m2wejlA2__CmM-vyDDeyLjUh84vTLufTx77jaJ-ifWWa1bzkFpn7bPK0KbehAARBOg2Zle9HbNUk3SXAP9-jcNbNXFypsfgSPY75R2BLLwmDi9nUFUY88StBNg.png) +![Image 13: Customize alerts coming into Teams from Kubernetes](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ead44d850b34e7f35_nSgmglbxW-mAFvthFI-1q0c0dcMg2m2wejlA2__CmM-vyDDeyLjUh84vTLufTx77jaJ-ifWWa1bzkFpn7bPK0KbehAARBOg2Zle9HbNUk3SXAP9-jcNbNXFypsfgSPY75R2BLLwmDi9nUFUY88StBNg.png) -14. Connect your preferred plugins + 10. Connect your preferred plugins + -![Image 18](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ddec01b0e38f3eb6d_pVkuqIiFGr5zQ8lNXQcSMQXQhDbPx5rZ6m0OptpyWKHIfpzzTwn1UbTR44-HU_YM2NOBfoOhvapjYfohK0AUjF5dsvV_8JGnujLfhEzupnaCMLJoD4pzbAE6aHZemjv1Rzzi3rsu8HoFbqrSxbu1TVI.png) +![Image 14: Add more cloud native plugins](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7ddec01b0e38f3eb6d_pVkuqIiFGr5zQ8lNXQcSMQXQhDbPx5rZ6m0OptpyWKHIfpzzTwn1UbTR44-HU_YM2NOBfoOhvapjYfohK0AUjF5dsvV_8JGnujLfhEzupnaCMLJoD4pzbAE6aHZemjv1Rzzi3rsu8HoFbqrSxbu1TVI.png) -15. Review and select your preferred Botkube defaults. + 11. Review and select your preferred Botkube defaults. + -![Image 19](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d6f8e75cab928022a_PVwnI51Br_JjDcyKQsNjixKmrtTDW10Ug0gHIUJMFxDo51P-_aRrStZiIrK-Pmqxg3DnFwrtTRZqhHUGhZv2d37pHnWMmUvx9p5o4FnQe8M-YkkM8wVZk7_P3-tUs0umUmnfE37H4QbtR8E-yg36w2A.png) +![Image 15: Save the new instance](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65678f7d6f8e75cab928022a_PVwnI51Br_JjDcyKQsNjixKmrtTDW10Ug0gHIUJMFxDo51P-_aRrStZiIrK-Pmqxg3DnFwrtTRZqhHUGhZv2d37pHnWMmUvx9p5o4FnQe8M-YkkM8wVZk7_P3-tUs0umUmnfE37H4QbtR8E-yg36w2A.png) -16. Select **Apply changes** -17. Congratulations! You have successfully deployed Botkube for Microsoft Teams! + 12. Select Apply changes + + 13. Congratulations! You have successfully deployed Botkube for Microsoft Teams! + Conclusion ---------- diff --git a/hack/assistant-setup/content/botkube.io__blog__microsoft-teams-integration-for-botkube-a-technical-journey.md b/hack/assistant-setup/content/botkube.io__blog__microsoft-teams-integration-for-botkube-a-technical-journey.md index ab1bb8d..99a0967 100644 --- a/hack/assistant-setup/content/botkube.io__blog__microsoft-teams-integration-for-botkube-a-technical-journey.md +++ b/hack/assistant-setup/content/botkube.io__blog__microsoft-teams-integration-for-botkube-a-technical-journey.md @@ -17,40 +17,38 @@ Discover the technical journey behind enhancing Microsoft Teams integration for ### Table of Contents -* [Introduction](#introduction--2) -* [Inspiration from the Field](#inspiration-from-the-field--2) -* [Technical journey](#technical-journey--2) -* [New Microsoft Teams integration: Key Features](#new-microsoft-teams-integration-key-features--2) -* [Setting Up and Configuration](#setting-up-and-configuration--2) -* [What do you think? Let us know!](#what-do-you-think-let-us-know--2) +* [Introduction](#introduction-) +* [Inspiration from the Field](#inspiration-from-the-field-) +* [Technical journey](#technical-journey-) +* [New Microsoft Teams integration: Key Features](#new-microsoft-teams-integration-key-features-) +* [Setting Up and Configuration](#setting-up-and-configuration-) +* [What do you think? Let us know!](#what-do-you-think-let-us-know-) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Start Receiving Kubernetes Notifications Now with Botkube Cloud -Introduction - ---------------- +Introduction +------------ If you are already familiar with Botkube, then you know that it's a collaborative tool to help you monitor and troubleshoot Kubernetes clusters. Botkube integrates the most popular communication platforms, and Microsoft Teams is one of them. -The initial version of our integration debuted in \[February 2020\](https://github.com/kubeshop/botkube/pull/242), marking a significant milestone in our journey. Since then, we've been continuously evolving and improving. In this release cycle, we've identified and acknowledged its limitations in the user-experience and ease of set up. +The initial version of our integration debuted in [February 2020](https://github.com/kubeshop/botkube/pull/242), marking a significant milestone in our journey. Since then, we've been continuously evolving and improving. In this release cycle, we've identified and acknowledged its limitations in the user-experience and ease of set up. -Fortunately, these times are over now! We've been working hard on a brand-new Microsoft Teams integration, which we introduced as a part of \[Botkube 1.6 release\](https://botkube.io/blog/botkube-1-6-release). +Fortunately, these times are over now! We've been working hard on a brand-new Microsoft Teams integration, which we introduced as a part of [Botkube 1.6 release](https://botkube.io/blog/botkube-1-6-release). Now, let's talk about how we got here. -Inspiration from the Field - ------------------------------ +Inspiration from the Field +-------------------------- -During our conversations with users at events like KubeCon and Civo Navigate, we found out that many IT companies rely on Microsoft Teams for their communication. It's not surprising, considering that Microsoft Teams is one of the most popular communication platforms in the world. It is used by over 1 million organizations and 320 million users (\[source\](https://www.demandsage.com/microsoft-teams-statistics/)). +During our conversations with users at events like KubeCon and Civo Navigate, we found out that many IT companies rely on Microsoft Teams for their communication. It's not surprising, considering that Microsoft Teams is one of the most popular communication platforms in the world. It is used by over 1 million organizations and 320 million users ([source](https://www.demandsage.com/microsoft-teams-statistics/)). Through discussions with various users and organizations, a common problem surfaced--many faced challenges due to the requirement for a public endpoint on their Kubernetes clusters and difficult configuration steps. Also, the integration lacked some of the core features that were available in other platforms like Slack. This was usually a blocker for them. Right after the Botkube Cloud launch, we focused on building the seamless multi-cluster Slack integration, as it was without doubt the most popular communication platform among our users. However, we knew that we had to do something about the Microsoft Teams integration as well. Because of the way the Microsoft Teams API works, the only way we could fix this problem properly was a dedicated infrastructure for handling the communication between Botkube and Microsoft Teams. -That was the time we were approached by a large enterprise company that was using Microsoft Teams as their main communication tool. They were interested in a proper multi-cluster solution for their customer's Kubernetes clusters. After a series of interviews and discussions, we  used their feedback to start developing a new Microsoft Teams integration. +That was the time we were approached by a large enterprise company that was using Microsoft Teams as their main communication tool. They were interested in a proper multi-cluster solution for their customer's Kubernetes clusters. After a series of interviews and discussions, we used their feedback to start developing a new Microsoft Teams integration. ‍ @@ -58,27 +56,27 @@ That was the time we were approached by a large enterprise company that was usin Source: [tenor.com](https://tenor.com/) -Technical journey +Technical journey +----------------- --------------------- - -### Investigation and research +### Investigation and research The very first stage was to investigate various aspects of the Microsoft Teams communication platform and its API. We wanted to understand the limitations and challenges we would face during the development process. We also wanted to make sure that we could deliver the features that were missing in the previous version of the integration. This phase consisted of multiple different steps, including: -\- Research around Microsoft Teams Bot Framework and Graph API capabilities. - -\- Multi-tenancy architecture design with a proof of concept application (covering security, multi-cluster support, and scalability). - -\- App distribution, installation and permission granting process. - -\- Interactivity support for the Microsoft Teams messages. +* Research around Microsoft Teams Bot Framework and Graph API capabilities. + +* Multi-tenancy architecture design with a proof of concept application (covering security, multi-cluster support, and scalability). + +* App distribution, installation and permission granting process. + +* Interactivity support for the Microsoft Teams messages. + Every single step was crucial to the success of the feature and had it own challenges. During the investigation stage, we quickly realized that this solution will be slightly different from the multi-cluster Slack integration we've built before. -### Architecture design +### Architecture design After our set of investigations, we had a clear picture what we're going to build. We established the following architecture: @@ -94,7 +92,7 @@ Same as for Slack integration, in Botkube Cloud we use a message broker internal Because of the way the Microsoft Teams API works, and to ensure proper tenant separation, both source notifications and executor commands are routed via Botkube Cloud. This is different from the Slack integration, where we could use the Slack API directly from the Botkube instance for handling incoming notifications. However, Botkube Cloud is used simply as a proxy, without storing any event data. -### Interactivity support +### Interactivity support Interactivity support for the Microsoft Teams messages was one of the challenging parts of the development process. We wanted to make sure that the user experience is as good as possible, and close to the Slack integration. Fortunately, Microsoft Teams uses Microsoft's Adaptive Cards format, which is a flexible way to present interactive content in Microsoft Teams messages. Moreover, in-place message updates are supported, to ensure the content is always up-to-date. But, of course, technical details were different from the Slack integration, so we needed to render the messages differently. @@ -102,45 +100,42 @@ After a while we were able to achieve similar feeling to the users familiar with ![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/657957112416eb71be03a4ac_teams-vs-slack-interactivity.png) -### Development and testing +### Development and testing Thanks to the Microsoft Teams proof of concept application, we were able to quickly start the development process. The fact that we built the multi-cluster Slack integration before also helped tremendously. We were able to reuse some of the concepts like gRPC communication between Botkube Agent and Botkube Cloud, and the message broker infrastructure. After busy weeks full of development and testing, we were able to deliver the first version of the new Microsoft Teams integration. While it's not yet perfect, it's a huge step forward. We are working on adding more features and improving the existing ones, continuously refining the integration based on user feedback, including the one from the company that came to us with the initial request. -New Microsoft Teams integration: Key Features - ------------------------------------------------- +New Microsoft Teams integration: Key Features +--------------------------------------------- So what the first version of the new Microsoft Teams integration brings to the table? Let's take a look at the key features: -\- Multi-cluster support. - -\- Enhanced per-channel plugin configuration including RBAC policy. - -\- Interactive messages. - -\- Actionable notifications. +* Multi-cluster support. + +* Enhanced per-channel plugin configuration including RBAC policy. + +* Interactive messages. + +* Actionable notifications. + While some features known from Slack, such as the Kubectl command builder, are not yet available in the new Microsoft Teams integration, we are working on adding them in the future releases. Still, every single item listed above weren't available in the previous version of the Microsoft Teams integration. And, what's the most important, **we simplified the configuration process**. It still isn't perfect, but we think that it's a huge step forward. -As the previous integration was so painful to set up, we decided to deprecate it. Worry not, though! The new Microsoft Teams integration is now available to all users as a part of the \[Botkube Cloud\](https://app.botkube.io) offering--both Free and Team plans. +As the previous integration was so painful to set up, we decided to deprecate it. Worry not, though! The new Microsoft Teams integration is now available to all users as a part of the [Botkube Cloud](https://app.botkube.io/) offering--both Free and Team plans. ![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65795734bc6d6051bcdd0d01_new-teams-reaction.gif) -Your reaction after trying out the new Microsoft Teams integration (hopefully!) -source: [tenor.com](https://tenor.com/) +Your reaction after trying out the new Microsoft Teams integration (hopefully!) source: [tenor.com](https://tenor.com/) -Setting Up and Configuration +Setting Up and Configuration +---------------------------- -------------------------------- +Interested in trying out the brand-new Microsoft Teams integration in Botkube? To get started, create a free [Botkube Cloud](https://app.botkube.io/) account and follow the [Microsoft Teams](https://docs.botkube.io/installation/teams) instruction. To see the multi-cluster support in action, enable the free Botkube Cloud trial and connect as many Botkube installations as you want! -Interested in trying out the brand-new Microsoft Teams integration in Botkube? To get started, create a free \[Botkube Cloud\](https://app.botkube.io) account and follow the \[Microsoft Teams\](https://docs.botkube.io/installation/teams) instruction. To see the multi-cluster support in action, enable the free Botkube Cloud trial and connect as many Botkube installations as you want! - -What do you think? Let us know! - ----------------------------------- +What do you think? Let us know! +------------------------------- -We are constantly working on improving Botkube and its new Microsoft Teams integration. Our roadmap is driven by user feedback and community contributions. Let us know what you think about the new integration and how we can make it better. You can reach out to us on the \[Botkube Community Slack workspace\](https://join.botkube.io/), or simply \[create an issue\](https://github.com/kubeshop/botkube) on our GitHub repository. +We are constantly working on improving Botkube and its new Microsoft Teams integration. Our roadmap is driven by user feedback and community contributions. Let us know what you think about the new integration and how we can make it better. You can reach out to us on the [Botkube Community Slack workspace](https://join.botkube.io/), or simply [create an issue](https://github.com/kubeshop/botkube) on our GitHub repository. diff --git a/hack/assistant-setup/content/botkube.io__blog__optimizing-collaboration-and-notifications-with-the-botkube-argocd-plugin.md b/hack/assistant-setup/content/botkube.io__blog__optimizing-collaboration-and-notifications-with-the-botkube-argocd-plugin.md index 74b1277..0b97c25 100644 --- a/hack/assistant-setup/content/botkube.io__blog__optimizing-collaboration-and-notifications-with-the-botkube-argocd-plugin.md +++ b/hack/assistant-setup/content/botkube.io__blog__optimizing-collaboration-and-notifications-with-the-botkube-argocd-plugin.md @@ -17,13 +17,13 @@ A closer look into the Botkube team's process for developing the ArgoCD plugin ### Table of Contents -* [ArgoCD Plugin for Kubernetes Deployment Management](#argocd-plugin-for-kubernetes-deployment-management-2) -* [How Botkube Uses ArgoCD for GitOps Management](#how-botkube-uses-argocd-for-gitops-management-2) -* [Conclusion](#conclusion-2) -* [Sign up now!](#sign-up-now--2) -* [Feedback](#feedback-2) +* [ArgoCD Plugin for Kubernetes Deployment Management](#argocd-plugin-for-kubernetes-deployment-management) +* [How Botkube Uses ArgoCD for GitOps Management](#how-botkube-uses-argocd-for-gitops-management) +* [Conclusion](#conclusion) +* [Sign up now!](#sign-up-now-) +* [Feedback](#feedback) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -47,7 +47,7 @@ How Botkube Uses ArgoCD for GitOps Management ![Image 3: Diagram of Developer teams use of Argo CD and Git](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/653a912003e50d0ea9eb0c15_Argo%20Sync%20Image%20(1).png) -Diagram trying to show how Botkube uses ArgoCD and Git to manage K8s Clusters +Diagram trying to show how Botkube uses ArgoCD and Git to manage K8s Clusters At Botkube, we use two long-lived Kubernetes clusters which both run in Google Kubernetes Engine (GKE). One cluster is used for production and the other one is used for staging. Each cluster runs its own Argo instance, which is created during cluster creation. A majority of development and bug fixing is done in local dev environments, such as Kind or k3d clusters and is only merged into the main branch after passing all tests in CI. This means that the main branch is always in a deployable state and ArgoCD in the staging cluster consumes directly from the main branch with the auto-sync feature on. Releases into production need to be triggered manually and can happen less frequently. Although we incorporate time for changes to be tested during the staging process, we have a short feature development cycle and our team is quite comfortable with releasing to prod on Friday evenings. @@ -87,7 +87,7 @@ We have a dedicated channel for Botkube notifications in our Slack workspace and First lesson after enabling the plugin was that setting up ArgoCD notifications, in this case for Slack, was really easy. We just had to point Botkube at which ArgoCD Applications it should watch and the plugin took care of the rest. We didn't have to worry about creating new message templates or event triggers. Botkube took care of all of that for us. After a while of using the plugin, we were happy that the defaults we'd gone with were working well for us. We didn't need to change anything. -### Real Use Case: Horizontal Pod Autoscaler  +### Real Use Case: Horizontal Pod Autoscaler ‍ @@ -106,12 +106,12 @@ As we continue to improve the capabilities of the plugin, we have identified pot Your feedback, whether you've already used the plugin or are just considering trying it out, is valuable to us. We encourage you to share your insights and suggestions.The Botkube team welcomes [contributions](https://github.com/kubeshop/botkube) from all its users. Together, we can improve and expand the functionality of this tool for the benefit of the entire community. -\## Sign up now! +Sign up now! +------------ Get started with Botkube! Whether you’re a seasoned Kubernetes pro or just getting started, Botkube has something to offer. Sign up now for free and join the community of users who are already benefiting from the power of Botkube. -\## Feedback +Feedback +-------- -We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give you some cool Botkube plushies and t-shirts and enter you into a raffle for a chance to win a $50 Amazon gift card! Just email our Developer Advocate, Maria or use this calendly\[ link \](https://calendly.com/maria-botkube)to sign up.You can also talk to us in the Botkube GitHub issues, connect with others and get help in the Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at blair@kubeshop.io. - -‍ +We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give you some cool Botkube plushies and t-shirts and enter you into a raffle for a chance to win a $50 Amazon gift card! Just email our Developer Advocate, Maria or use this calendly [link](https://calendly.com/maria-botkube) to sign up.You can also talk to us in the Botkube GitHub issues, connect with others and get help in the Botkube [Slack community](http://join.botkube.io/), or email our Product Leader at blair@kubeshop.io. diff --git a/hack/assistant-setup/content/botkube.io__blog__real-time-platform-engineer-advice-ai-assistant.md b/hack/assistant-setup/content/botkube.io__blog__real-time-platform-engineer-advice-ai-assistant.md index 0f552cd..fc4bd75 100644 --- a/hack/assistant-setup/content/botkube.io__blog__real-time-platform-engineer-advice-ai-assistant.md +++ b/hack/assistant-setup/content/botkube.io__blog__real-time-platform-engineer-advice-ai-assistant.md @@ -17,72 +17,74 @@ Imagine having K8s experts available, providing help to your team 24/7. Get real ### Table of Contents -* [Designed for DevOps Teams with All Experience Levels](#designed-for-devops-teams-with-all-experience-levels-2) -* [Troubleshoot Kubernetes Errors in Seconds](#troubleshoot-kubernetes-errors-in-seconds-2) -* [Kubernetes Expertise Directly in Your Chat Platform](#kubernetes-expertise-directly-in-your-chat-platform-2) -* [Get Started with AIOps for Kubernetes](#get-started-with-aiops-for-kubernetes-2) +* [Designed for DevOps Teams with All Experience Levels](#designed-for-devops-teams-with-all-experience-levels) +* [Troubleshoot Kubernetes Errors in Seconds](#troubleshoot-kubernetes-errors-in-seconds) +* [Kubernetes Expertise Directly in Your Chat Platform](#kubernetes-expertise-directly-in-your-chat-platform) +* [Get Started with AIOps for Kubernetes](#get-started-with-aiops-for-kubernetes) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud -‍ - We’re thrilled to announce our newest Botkube feature, AI Assistant! This game-changing capability makes it easier than ever for teams to identify, diagnose, and troubleshoot issues in any Kubernetes cluster. Powered by a Kubernetes-focused LLM, Botkube provides crucial visibility into Kubernetes events while empowering teams to manage these events through direct communication platforms like Slack or Microsoft Teams. -This integration goes beyond simplifying your \[Kubernetes Observability\](https://botkube.io/learn/kubernetes-observability-best-practices) workflow by making troubleshooting more efficient for both experienced and beginner users. +This integration goes beyond simplifying your [Kubernetes Observability](https://botkube.io/learn/kubernetes-observability-best-practices) workflow by making troubleshooting more efficient for both experienced and beginner users. ‍ -\## Designed for DevOps Teams with All Experience Levels +Designed for DevOps Teams with All Experience Levels +---------------------------------------------------- Whether your DevOps team is filled with seasoned K8s professionals or those that are getting started on their cloud journey, Botkube’s AI capabilities are designed to cater to the needs and skill level of every user, helping to make Kubernetes management easier for all. -For experienced teams, the AI Assistant helps simplify and centralize cluster performance optimizations. For users still getting the hang of K8s deployments, our easy-to-understand Kubernetes advice provides useful context and explanations to guide you through the otherwise complex world of Kubernetes. \*\*\_It's like having a Kubernetes expert by your side, ready to guide you through every step of troubleshooting and resolution.\_\*\* +For experienced teams, the AI Assistant helps simplify and centralize cluster performance optimizations. For users still getting the hang of K8s deployments, our easy-to-understand Kubernetes advice provides useful context and explanations to guide you through the otherwise complex world of Kubernetes. **_It's like having a Kubernetes expert by your side, ready to guide you through every step of troubleshooting and resolution._** By bridging the gap between novice and experienced users, Botkube ensures that teams, regardless of their size or individual members' experience levels, can effectively manage their Kubernetes environments. -\### K8s Troubleshooting for Experienced Users +### K8s Troubleshooting for Experienced Users **‍**Experienced K8s users benefit from having a unified interface that consolidates operational tasks. Execute advanced diagnostic commands, manage resources across multiple clusters, or set up custom alerts for specific events without leaving your chat interface. By leveraging Botkube to streamline workflows, focus is placed on optimization and scalability instead of repetitive checks and needless troubleshooting. With Botkube, seasoned DevOps professionals can: -\- Quickly compare the resource utilization of pods across different namespaces’ - -\- Set up intelligent alerts to predict and notify potential issues based on trends in logs and metrics with ease - -\- Manage other cluster needs all within their common chat system - -\- and a whole lot more +* Quickly compare the resource utilization of pods across different namespaces’ + +* Set up intelligent alerts to predict and notify potential issues based on trends in logs and metrics with ease + +* Manage other cluster needs all within their common chat system + +* and a whole lot more + Imagine having Kubernetes experts available to you, providing help within your team’s chat platform 24/7. Get real-time, data-driven insights about your Kubernetes clusters without ever leaving your chat window. -\### K8s Troubleshooting for Beginners +### K8s Troubleshooting for Beginners -For novices, navigating through Kubernetes' complexity is simplified through intuitive AI-driven suggestions and commands. New users can easily understand the state of their deployments, pods, and services by using plain language queries in the chat interface — bypassing the steep learning curve associated with Kubernetes' command-line tools. For instance, instead of memorizing and typing out complex \*\*\`kubectl\`\*\* commands, a new user can simply ask  "_\*what is\*_ _\*the status of my Kubernetes clusters in the default namespace?\*_" and Botkube will provide the needed information in seconds without having to switch interfaces. +For novices, navigating through Kubernetes' complexity is simplified through intuitive AI-driven suggestions and commands. New users can easily understand the state of their deployments, pods, and services by using plain language queries in the chat interface — bypassing the steep learning curve associated with Kubernetes' command-line tools. For instance, instead of memorizing and typing out complex **`kubectl`** commands, a new user can simply ask "__what is__ __the status of my Kubernetes clusters in the default namespace?__" and Botkube will provide the needed information in seconds without having to switch interfaces. -\## Troubleshoot Kubernetes Errors in Seconds +Troubleshoot Kubernetes Errors in Seconds +----------------------------------------- ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65ea186bc6cc4a02d07a8679_screens1hot.png) -‍ -Integrating AI into Botkube revolutionizes the way users interact with Kubernetes environments, making the debugging and management of Kubernetes clusters more intuitive and efficient. +‍ Integrating AI into Botkube revolutionizes the way users interact with Kubernetes environments, making the debugging and management of Kubernetes clusters more intuitive and efficient. -Through the 'AI Help' button, users can now execute commands like \*\*\`kubectl get pods\`\*\* to fetch logs or \*\*\`kubectl describe deployment\`\*\* for detailed insights into specific resources from Slack or Microsoft Teams. For example, suppose you encounter an error with a deployment. In this case, you can quickly gather logs for a pod in a failing state or retrieve configurations that might be causing issues, such as resource limits or image pull errors. +Through the 'AI Help' button, users can now execute commands like **`kubectl get pods`** to fetch logs or **`kubectl describe deployment`** for detailed insights into specific resources from Slack or Microsoft Teams. For example, suppose you encounter an error with a deployment. In this case, you can quickly gather logs for a pod in a failing state or retrieve configurations that might be causing issues, such as resource limits or image pull errors. In addition, Botkube's AI Assistant can intelligently suggest actions based on the context of the issue. For instance, if there's a Persistent Volume Claim (PVC) issue, you can fetch the status of the PVC and other related events, providing a holistic view helping to diagnose binding problems or storage class misconfigurations. Botkube also gathers information on network policies and ingress rules that might be affecting service connectivity, streamlining what traditionally would have involved multiple steps and commands into a seamless, single-click operation. Plain and simple: Botkube makes complex tasks more manageable by streamlining k8s troubleshooting tasks and providing valuable help and context to DevOps professionals of all knowledge levels. Botkube offers a centralized, easy-to-use interface for troubleshooting, that saves time and empowers users to manage Kubernetes environments more efficiently. -\## Kubernetes Expertise Directly in Your Chat Platform +Kubernetes Expertise Directly in Your Chat Platform +--------------------------------------------------- -Navigating the vast world of K8s error messages is, at times, daunting. We’ve all wondered “what does \`PodCrashExitCode\` _\*actually\*_ mean?” Now, you can leverage the power of Botkube to resolve issues. From general questions about Kubernetes to environment-specific questions like asking for help to identify pods in a default namespace, Botkube makes centralized troubleshooting a reality. +Navigating the vast world of K8s error messages is, at times, daunting. We’ve all wondered “what does `PodCrashExitCode` __actually__ mean?” Now, you can leverage the power of Botkube to resolve issues. From general questions about Kubernetes to environment-specific questions like asking for help to identify pods in a default namespace, Botkube makes centralized troubleshooting a reality. -Once Botkube is connected to your K8s environment, you can prompt questions or commands such as “_\*What apps are deployed in my cluster?\*_” or “_\*Show me the logs for all of my failing pods across all namespaces\*_” using the \`@botkube ai\` command. You can also utilize the\`Ask AI\` button attached to error notifications that are displayed by Botkube. +Once Botkube is connected to your K8s environment, you can prompt questions or commands such as “__What apps are deployed in my cluster?__” or “__Show me the logs for all of my failing pods across all namespaces__” using the `@botkube ai` command. You can also utilize the`Ask AI` button attached to error notifications that are displayed by Botkube. -\## Get Started with AIOps for Kubernetes +Get Started with AIOps for Kubernetes +------------------------------------- -Getting started with our AI Assistant is straightforward and easy. Available out-of-the-box with every Botkube Cloud instance, existing users who upgrade to the latest version will find integrating the AI Assistant into their workflow intuitive. \*\*New users can \[quickly set up Botkube\](http://app.botkube.io) and start benefiting from AI-driven Kubernetes management in minutes.\*\* +Getting started with our AI Assistant is straightforward and easy. Available out-of-the-box with every Botkube Cloud instance, existing users who upgrade to the latest version will find integrating the AI Assistant into their workflow intuitive. **New users can [quickly set up Botkube](http://app.botkube.io/) and start benefiting from AI-driven Kubernetes management in minutes.** -If you are using the OSS version of Botkube, check out \[our migration tutorial\](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to move your set up to Botkube Cloud in minutes and start taking advantage of all the latest features. +If you are using the OSS version of Botkube, check out [our migration tutorial](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) to move your set up to Botkube Cloud in minutes and start taking advantage of all the latest features. Botkube’s AI Assistant is more than a feature — it’s the Platform Engineer you wish you had by your side 24/7. diff --git a/hack/assistant-setup/content/botkube.io__blog__revolutionize-your-kubernetes-troubleshooting-workflow-with-microsoft-teams-and-botkube.md b/hack/assistant-setup/content/botkube.io__blog__revolutionize-your-kubernetes-troubleshooting-workflow-with-microsoft-teams-and-botkube.md index b1f66d8..1ef256c 100644 --- a/hack/assistant-setup/content/botkube.io__blog__revolutionize-your-kubernetes-troubleshooting-workflow-with-microsoft-teams-and-botkube.md +++ b/hack/assistant-setup/content/botkube.io__blog__revolutionize-your-kubernetes-troubleshooting-workflow-with-microsoft-teams-and-botkube.md @@ -20,7 +20,7 @@ Learn more about Botkube's new and improved Microsoft Teams support! * [Benefits of the new Microsoft Teams App](#benefits-of-the-new-microsoft-teams-app-) * [Getting Started with Botkube’s Microsoft Teams](#getting-started-with-botkube-s-microsoft-teams) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -68,4 +68,6 @@ Botkube's integration with Microsoft Teams streamlines the collaborative process Getting Started with Botkube’s Microsoft Teams ---------------------------------------------- -Try it for yourself! Follow our [step-by-step tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams) to set up Botkube using our web app or check out our [engineering blog](http://botkube.io/blog/microsoft-teams-integration-for-botkube-a-technical-journey) for a deep dive about how we made the new teams app. We're excited to hear how you use Botkube. Create a support ticket directly in the dashboard, share your stories with us in the [Botkube Slack community](https://join.botkube.io/) or [email our Developer Advocate, Maria](http://maria@kubeshop.io/). We’ll even send you some cool swag as a thank you. +Try it for yourself. Follow our [step-by-step tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams) to set up Botkube using our web app or check out our [engineering blog](https://botkube.io/blog/microsoft-teams-integration-for-botkube-a-technical-journey) for a deep dive about how we made the new teams app. We're excited to hear how you use Botkube. Create a support ticket directly in the dashboard, share your stories with us in the [Botkube Slack community.](https://join.botkube.io/) We’ll even send you some cool swag as a thank you for your feedback! + +Botkube is now a listed member of [Microsoft Teams' App Store](https://appsource.microsoft.com/en-us/product/office/WA200006966?exp=ubp8&tab=Overview)! This allows Microsoft Teams users to download Botkube's [Kubernetes Copilot](https://botkube.io/learn/kubernetes-copilot) directly from Microsoft. Users use to have to download our application and add it as a custom app into your Teams platform. Botkube users can now just simply select add to Teams! diff --git a/hack/assistant-setup/content/botkube.io__blog__scaling-new-heights-taking-botkube-to-scale-20x.md b/hack/assistant-setup/content/botkube.io__blog__scaling-new-heights-taking-botkube-to-scale-20x.md index 46774d3..2b52c02 100644 --- a/hack/assistant-setup/content/botkube.io__blog__scaling-new-heights-taking-botkube-to-scale-20x.md +++ b/hack/assistant-setup/content/botkube.io__blog__scaling-new-heights-taking-botkube-to-scale-20x.md @@ -13,7 +13,7 @@ Developer Advocate Botkube -Botkube had their first devrel appearance of 2023 at the Southern California Linux Expo. In this blog, we'll explore the experience and insights from the event, including trends in the community and exciting encounters with other members of the tech community. +Botkube had its first DevRel appearance of 2023 at the SoCal Linux Expo. Here's a report on insights from the event, including trends in the community and exciting tech community encounters. ### Table of Contents @@ -21,7 +21,7 @@ Botkube had their first devrel appearance of 2023 at the Southern California Lin * [Second Day - Helping the Cloud Native Computing Foundation (CNCF) Booth](#second-day-helping-the-cloud-native-computing-foundation-cncf-booth-) * [Conclusion](#conclusion) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! As I entered the Pasadena Convention Center for the Southern California Linux Expo, I felt a buzz in the air that set this event apart from others I'd attended before. This time, I was there to represent Botkube solo, which brought an added level of excitement. @@ -46,4 +46,4 @@ Conclusion Beyond my community research, I had a blast connecting with other members of the tech community at SCaLE 20x. One standout encounter was with a high school robotics team that had developed an open-source streaming server. I was truly impressed by their ingenuity and dedication to the craft, and it was a great reminder that the future of open source is in good hands. -Overall, despite the rainy weather, I thoroughly enjoyed my time at SCaLE 20x and am eagerly looking forward to what Kubecon EU has in store! +Overall, despite the rainy weather, I thoroughly enjoyed my time at SCaLE 20x and am eagerly looking forward to what Kubecon EU has in store… diff --git a/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-security-troubleshooting-with-ai.md b/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-security-troubleshooting-with-ai.md index a31fe4e..eb3fa64 100644 --- a/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-security-troubleshooting-with-ai.md +++ b/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-security-troubleshooting-with-ai.md @@ -17,82 +17,90 @@ Learn how Botkube can streamline troubleshooting and help overcome common Kubern ### Table of Contents -* [What is Kubernetes Pod Security Admission (PSA)?](#what-is-kubernetes-pod-security-admission-psa--2) -* [Common Challenges with Pod Security Policies](#common-challenges-with-pod-security-policies-2) -* [Getting Started with Kubernetes PSA Troubleshooting Example](#getting-started-with-kubernetes-psa-troubleshooting-example-2) -* [Enforce Pod Security Standards with Namespace Labels](#enforce-pod-security-standards-with-namespace-labels-2) -* [Summary](#summary-2) -* [Try Out Botkube for Kubernetes Security Best Practices Today](#try-out-botkube-for-kubernetes-security-best-practices-today-2) +* [What is Kubernetes Pod Security Admission (PSA)?](#what-is-kubernetes-pod-security-admission-psa-) +* [Common Challenges with Pod Security Policies](#common-challenges-with-pod-security-policies) +* [Getting Started with Kubernetes PSA Troubleshooting Example](#getting-started-with-kubernetes-psa-troubleshooting-example) +* [Enforce Pod Security Standards with Namespace Labels](#enforce-pod-security-standards-with-namespace-labels) +* [Summary](#summary) +* [Try Out Botkube for Kubernetes Security Best Practices Today](#try-out-botkube-for-kubernetes-security-best-practices-today) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Start Using Botkube AI Assistant Today! -Kubernetes is a powerful container orchestration platform, but its complexity can leave even seasoned developers scratching their heads. One particularly tricky area is \[Pod Security Admission (PSA)\](https://kubernetes.io/docs/concepts/security/pod-security-admission/). While PSA plays a crucial role in cluster security, it can also be the source of unexpected deployment failures. That's where the AI-powered Botkube Assistant, specifically designed for Kubernetes, comes to the rescue. Botkube understands the complexities of your cluster and guides you towards solutions in clear, simple language. +Kubernetes is a powerful container orchestration platform, but its complexity can leave even seasoned developers scratching their heads. One particularly tricky area is [Pod Security Admission (PSA)](https://kubernetes.io/docs/concepts/security/pod-security-admission/). While PSA plays a crucial role in cluster security, it can also be the source of unexpected deployment failures. That's where the AI-powered Botkube Assistant, specifically designed for Kubernetes, comes to the rescue. Botkube understands the complexities of your cluster and guides you towards solutions in clear, simple language. In this blog post, we'll demonstrate how Botkube can streamline troubleshooting and help you overcome common PSA-related issues. -\## What is Kubernetes Pod Security Admission (PSA)? - -\- The Pod Security Admission Controller (PSA) acts as a gatekeeper within your Kubernetes cluster. It evaluates Pod specifications against predefined security policies to ensure your applications adhere to security best practices. Think of PSA as your cluster's security guard, making sure that potentially risky deployments are blocked before they can cause problems. - -\## Common Challenges with Pod Security Policies - -\- **\*\*Privileged Containers\*\***: Some applications may demand privileged access, but this can expose your cluster to vulnerabilities. Pod Security Admission Controller can enforce strict policies to prevent privileged containers unless absolutely necessary. +What is Kubernetes Pod Security Admission (PSA)? +------------------------------------------------ -\- \*\*Host Network/Ports\*\*: Allowing pods direct access to your host network or specific privileged ports increases attack vectors. PSA can restrict this access. +* The Pod Security Admission Controller (PSA) acts as a gatekeeper within your Kubernetes cluster. It evaluates Pod specifications against predefined security policies to ensure your applications adhere to security best practices. Think of PSA as your cluster's security guard, making sure that potentially risky deployments are blocked before they can cause problems. -\- \*\*Root User:\*\* Running containers as the root user is a major security risk. PSA can block or warn about pods attempting to run as root. +Common Challenges with Pod Security Policies +-------------------------------------------- -\- \*\*Volume Mounts\*\*: PSA can be used to prevent your containers from accessing sensitive directories on your host system for enhanced protection. +\- ****Privileged Containers****: Some applications may demand privileged access, but this can expose your cluster to vulnerabilities. Pod Security Admission Controller can enforce strict policies to prevent privileged containers unless absolutely necessary. -\- \*\*Capabilities\*\*: Linux capabilities give containers a wide range of permissions. PSA can help you enforce a 'least privilege' model by dropping unnecessary capabilities and minimizing risks. +* **Host Network/Ports**: Allowing pods direct access to your host network or specific privileged ports increases attack vectors. PSA can restrict this access. + +* **Root User:** Running containers as the root user is a major security risk. PSA can block or warn about pods attempting to run as root. + +* **Volume Mounts**: PSA can be used to prevent your containers from accessing sensitive directories on your host system for enhanced protection. + +* **Capabilities**: Linux capabilities give containers a wide range of permissions. PSA can help you enforce a 'least privilege' model by dropping unnecessary capabilities and minimizing risks. + -\## Getting Started with Kubernetes PSA Troubleshooting Example +Getting Started with Kubernetes PSA Troubleshooting Example +----------------------------------------------------------- -Deploying applications in Kubernetes can sometimes lead to unexpected hiccups when the Pod Security Admission (PSA) controller steps in. Understanding why your Pod fails to launch and how to quickly resolve these security-related errors is crucial for smooth operations. In this tutorial, we'll walk you through a real-world scenario of a deployment blocked by PSA.  We'll demonstrate how Botkube’s AI assistant can help you: +Deploying applications in Kubernetes can sometimes lead to unexpected hiccups when the Pod Security Admission (PSA) controller steps in. Understanding why your Pod fails to launch and how to quickly resolve these security-related errors is crucial for smooth operations. In this tutorial, we'll walk you through a real-world scenario of a deployment blocked by PSA. We'll demonstrate how Botkube’s AI assistant can help you: -\- Pinpoint the exact reasons behind the deployment failure. - -\- Understand the relevant k8s security concepts. - -\- Guide you through fixing the issues step-by-step. +* Pinpoint the exact reasons behind the deployment failure. + +* Understand the relevant k8s security concepts. + +* Guide you through fixing the issues step-by-step. + Let's get started! -\### Prerequisites - -\- Kubernetes Cluster with PSA: Consult your provider's documentation on enabling the Pod Security Admission Controller. +### Prerequisites -\- \[Botkube Instance\](http://app.botkube.io/): Follow the installation guide in the \[Botkube documentation\](https://docs.botkube.io/examples-and-tutorials/getstarted). +* Kubernetes Cluster with PSA: Consult your provider's documentation on enabling the Pod Security Admission Controller. + +* [Botkube Instance](http://app.botkube.io/): Follow the installation guide in the [Botkube documentation](https://docs.botkube.io/examples-and-tutorials/getstarted). + -\### A Note on Environments +### A Note on Environments To fully explore the examples in this tutorial, you'll need a few things in place: -\- \*\*Kubernetes Cluster with PSA:\*\* You'll need a Kubernetes cluster where the Pod Security Admission (PSA) controller is active. If you're using a managed Kubernetes service (like GKE, EKS, or AKS), PSA is likely enabled by default. For self-managed clusters, consult your setup documentation for instructions on enabling PSA. +* **Kubernetes Cluster with PSA:** You'll need a Kubernetes cluster where the Pod Security Admission (PSA) controller is active. If you're using a managed Kubernetes service (like GKE, EKS, or AKS), PSA is likely enabled by default. For self-managed clusters, consult your setup documentation for instructions on enabling PSA. -If you're new to Kubernetes or want to experiment without setting up a full production cluster, you can leverage a local Kubernetes environment. The official Kubernetes documentation provides a great tutorial specifically focused on deploying a local cluster with Pod Security Standards enabled: \[https://kubernetes.io/docs/concepts/security/pod-security-standards/\](https://kubernetes.io/docs/concepts/security/pod-security-standards/). This guide walks you through setting up Kind, a popular local Kubernetes tool. +If you're new to Kubernetes or want to experiment without setting up a full production cluster, you can leverage a local Kubernetes environment. The official Kubernetes documentation provides a great tutorial specifically focused on deploying a local cluster with Pod Security Standards enabled: [https://kubernetes.io/docs/concepts/security/pod-security-standards/](https://kubernetes.io/docs/concepts/security/pod-security-standards/). This guide walks you through setting up Kind, a popular local Kubernetes tool. -\- \*\*Botkube Installation\*\*: You'll want to have \[Botkube installed and connected to your Kubernetes cluster\](https://docs.botkube.io/examples-and-tutorials/getstarted). Botkube provides clear installation guides for different environments. Refer to the installation documentation for the process that best suits your setup. +* **Botkube Installation**: You'll want to have [Botkube installed and connected to your Kubernetes cluster](https://docs.botkube.io/examples-and-tutorials/getstarted). Botkube provides clear installation guides for different environments. Refer to the installation documentation for the process that best suits your setup. -_\*Note: While exploring Botkube with a local cluster is a great way to learn, keep in mind that real-world production deployments might require additional considerations.\*_ +__Note: While exploring Botkube with a local cluster is a great way to learn, keep in mind that real-world production deployments might require additional considerations.__ -\## Enforce Pod Security Standards with Namespace Labels +Enforce Pod Security Standards with Namespace Labels +---------------------------------------------------- -\- Create a Namespace Manifest: Define your namespace and include the desired Pod Security Admission (PSA) labels. Here's the annotated version: +* Create a Namespace Manifest: Define your namespace and include the desired Pod Security Admission (PSA) labels. Here's the annotated version:
---
apiVersion: v1
kind: Namespace
metadata:
labels:
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/warn: restricted
name: psa
-\- Apply the Manifest: Use kubectl to create the namespace: +* Apply the Manifest: Use kubectl to create the namespace: `kubectl apply -f namespace.yaml` Key points: -\- Enforcement: Pods deployed in this namespace must meet the 'restricted' requirements. Violations will block pod creation. - -\- Audit and Warning: The 'restricted' profile is used for logging purposes, giving you insights into potential issues. +* Enforcement: Pods deployed in this namespace must meet the 'restricted' requirements. Violations will block pod creation. + +* Audit and Warning: The 'restricted' profile is used for logging purposes, giving you insights into potential issues. + Now, you’ll see that we have a very simple deployment below. It’s a shell one-liner which runs in a loop and prints data every 10 seconds. We'll deploy our simple 'sleeper' service, which is intentionally designed with potential security flaws. This will allow us to see how the Pod Security Admission controller reacts and how Botkube helps us fix it. @@ -102,28 +110,30 @@ Now, you’ll see that we have a very simple deployment below. It’s a shell on ‍ -1\. Our deployment failed! The error messages may not be immediately clear, especially if we're not very familiar with Pod Security Admission policies. +1. Our deployment failed! The error messages may not be immediately clear, especially if we're not very familiar with Pod Security Admission policies. Let's call in our expert assistant, Botkube. We'll ask Botkube to analyze the error output and provide guidance on resolving the issues. -2\. Now that the assistant suggested how we could fix the issue, let’s apply the changes. - -3\. Argh, we've fixed one thing, but another issue has cropped up! This is common in troubleshooting scenarios, especially with complex systems like Kubernetes. +2. Now that the assistant suggested how we could fix the issue, let’s apply the changes. + +3. Argh, we've fixed one thing, but another issue has cropped up! This is common in troubleshooting scenarios, especially with complex systems like Kubernetes. + Not to worry, Botkube is still here to help! We'll provide the new error messages to Botkube and get further recommendations. -4\. We'll carefully follow Botkube's instructions to modify the sleeper deployment configuration. This will include adding the missing runAsUser property. - -5\. We've made the necessary changes, and our deployment succeeds! Our 'sleeper' service is now running in compliance with our cluster's security policies. +4. We'll carefully follow Botkube's instructions to modify the sleeper deployment configuration. This will include adding the missing runAsUser property. + +5. We've made the necessary changes, and our deployment succeeds! Our 'sleeper' service is now running in compliance with our cluster's security policies. + +6. Troubleshooting can be tedious, but Botkube made the process much smoother. Its ability to explain the underlying problems and guide us towards solutions saved us valuable time. + -6\. Troubleshooting can be tedious, but Botkube made the process much smoother. Its ability to explain the underlying problems and guide us towards solutions saved us valuable time. - -\## Summary +Summary +------- The beauty of using an AI assistant like Botkube lies in its ability to streamline troubleshooting through an iterative, conversational process. Instead of poring over complex error messages or Kubernetes documentation, you can engage with Botkube as if you were explaining the problem to a knowledgeable colleague. With each interaction, it pinpoints potential issues, suggests solutions, and helps you verify those fixes. This not only saves you valuable time but also presents a fantastic opportunity to learn about Kubernetes security principles along the way. By seeing how each change addresses specific Pod Security Admission violations, you gain a deeper understanding of how to build secure and compliant deployments from the ground up. -\## Try Out Botkube for Kubernetes Security Best Practices Today - -Ready to streamline your Kubernetes security practices? \[Sign up for Botkube today\](http://app.botkube.io/)—it's free to get started and can quickly empower your team to proactively monitor, manage, and secure your cluster all within your chat platform like Slack or Microsoft Teams. Join the growing community of users who simplify Kubernetes management easily with just a few clicks. +Try Out Botkube for Kubernetes Security Best Practices Today +------------------------------------------------------------ -‍ +Ready to streamline your Kubernetes security practices? [Sign up for Botkube today](https://app.botkube.io/)—it's free to get started and can quickly empower your team to proactively monitor, manage, and secure your cluster all within your chat platform like Slack or Microsoft Teams. Join the growing community of users who simplify Kubernetes management easily with just a few clicks. diff --git a/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy.md b/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy.md index 14763bd..90598d4 100644 --- a/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy.md +++ b/hack/assistant-setup/content/botkube.io__blog__simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy.md @@ -23,7 +23,7 @@ Discover how Botkube AI's simplifies Kubernetes troubleshooting for devs with na * [Empowering Developers with Automation](#empowering-developers-with-automation) * [Conclusion: Transform Your Kubernetes Workflow with Botkube](#conclusion-transform-your-kubernetes-workflow-with-botkube) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Start Using Botkube AI Assistant Today! @@ -88,8 +88,8 @@ Botkube's AI assistant integrates within team communication platforms, deliverin ### **Getting Started with Botkube’s AI Assistant** -Activating Botkube’s AI assistant is straightforward, with no extra setup required. [Sign up for Botkube,](http://app.botkube.io/) link your Kubernetes cluster following our [easy instructions](https://botkube.io/blog/get-botkube-running-in-under-3-minutes-the-new-slack-app), and get started with the AI assistant. +Activating Botkube’s AI assistant is straightforward, with no extra setup required. [Sign up for Botkube,](https://app.botkube.io/) link your Kubernetes cluster following our [easy instructions](https://botkube.io/blog/get-botkube-running-in-under-3-minutes-the-new-slack-app), and get started with the AI assistant. Use the `@Botkube ai` command for real-time, context-aware advice via your messaging platform, transforming Kubernetes management into an intuitive, efficient process. -Happy Troubleshooting! +Happy Troubleshooting… diff --git a/hack/assistant-setup/content/botkube.io__blog__start-troubleshooting-k8s-faster-with-botkubes-latest-improvements.md b/hack/assistant-setup/content/botkube.io__blog__start-troubleshooting-k8s-faster-with-botkubes-latest-improvements.md new file mode 100644 index 0000000..178708e --- /dev/null +++ b/hack/assistant-setup/content/botkube.io__blog__start-troubleshooting-k8s-faster-with-botkubes-latest-improvements.md @@ -0,0 +1,76 @@ +Title: Start Troubleshooting K8s Faster with Botkube’s Latest Improvements + +URL Source: https://botkube.io/blog/start-troubleshooting-k8s-faster-with-botkubes-latest-improvements + +Published Time: May 15, 2024 + +Markdown Content: +![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/636df3edbf5389368f6bef9c_cYbM1beBC5tQnSPVfaXCg_W9tkHugByZV2TOleN6pTw.jpeg) + +Blair Rampling + +Product Leader + +Botkube + +Learn about the latest v1.11 release, including an update to the AI-powered Botkube Assistant to view current environment configurations, set-up tasks, and more. + +### Table of Contents + +* [What is Botkube?](#what-is-botkube-) +* [View Your Configuration Details in Seconds](#view-your-configuration-details-in-seconds) +* [Botkube Assistant: Empowering Users From the Start](#botkube-assistant-empowering-users-from-the-start) +* [What’s next for Botkube?](#what-s-next-for-botkube-) +* [Try the Latest Version of Botkube Today](#try-the-latest-version-of-botkube-today) + +#### Start Using Botkube AI Assistant Today! + +#### Start Using Botkube AI Assistant Today! + +Botkube just became smarter! With our latest v1.11 release, Botkube becomes self-aware, requiring less upfront knowledge of specific Botkube commands or your configuration settings. With help from the Botkube Assistant, new and existing users can get up to speed quickly, minimizing time scrolling through help commands or Botkube documentation. + +What is Botkube? +---------------- + +If you’re new here, Botkube, the AI-powered Kubernetes assistant, helps DevOps and SRE teams manage and interact with Kubernetes, relieving them from the menial everyday troubleshooting and maintenance tasks. Through an intelligent, interactive interface within chat platforms like [Slack or Microsoft Teams](http://botkube.io/integrations), Botkube simplifies troubleshooting and managing Kubernetes clusters, making it easier than ever to diagnose and resolve issues. + +View Your Configuration Details in Seconds +------------------------------------------ + +‍ + +In addition to monitoring alerts and troubleshooting guidance, the latest version of Botkube now includes the ability to retrieve your instance’s configuration details within your chat platform. Installation only takes minutes to set up (check out our [getting started guide](https://docs.botkube.io/examples-and-tutorials/getstarted)!), and authorized team members can now view configuration settings outside of the [Botkube Dashboard](http://app.botkube.io/). To get started, here are some questions you can ask about your environment: + +* _@botkube ai what sources are configured for the #sre channel?_ + +* _@botkube ai what k8s alerts are currently configured on my cluster?_ + +* _@botkube ai which Slack channels are used by Botkube?_`‍`‍ + + +Botkube Assistant: Empowering Users From the Start +-------------------------------------------------- + +Botkube is a powerful troubleshooting workhorse, yet fully taking advantage of all of its features takes experience. Another addition in v1.11 is the ability to reference Botkube documentation directly within the chat interface. Instead of toggling between multiple windows or interrupting your workflow to search through documentation, ask Botkube directly about how to set up certain tasks. You’ll be able to ask Botkube specific questions around set-up configurations to get started quicker and easier than ever before. Some examples: + +* _@botkube how to I enable the Prometheus integration on my cluster?_ + +* _@botkube how do I configure watching scaling events?_ + +* _@botkube how do I restrict Botkube to only one namespace?_ + + +What’s next for Botkube? +------------------------ + +* **PagerDuty Integration**: We’ll be launching integration to escalate tickets into existing incident management tools like PagerDuty directly from Botkube. Teams will be able to set up automations based on [event notifications](https://docs.botkube.io/usage/automated-actions) to streamline incident management based on severity and defined playbooks. + +* **Easier Microsoft Teams & Slack installations**: Get set up with Botkube for Microsoft Teams and Slack with just a few clicks! Although the current installation process is straight-forward, users will be able to install Botkube directly from the verified app marketplace. + +* **Advanced Fault Finding**: Botkube becomes more intelligent with every release. Users will be able to check liveliness probes of pods, receive alerts about nearing resource limits, and more — preventing incidents and errors __before__ they happen. + + +Try the Latest Version of Botkube Today +--------------------------------------- + +To give the latest features a try, upgrade your Botkube instance to v1.11 or [sign up for a free account today](https://app.botkube.io/). Use the `botkube ai` command for real-time, context-aware troubleshooting help—transforming Kubernetes management into an intuitive, efficient process. Once you get Botkube up and running, sign-up 30-Day Free Trial for the [Team tier](https://botkube.io/pricing) to access 10,000 AI tokens, multi-cluster support, and much more. diff --git a/hack/assistant-setup/content/botkube.io__blog__step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting.md b/hack/assistant-setup/content/botkube.io__blog__step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting.md index ce91176..78ef41e 100644 --- a/hack/assistant-setup/content/botkube.io__blog__step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting.md +++ b/hack/assistant-setup/content/botkube.io__blog__step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting.md @@ -17,96 +17,91 @@ This step-by-step tutorial gets you started with Botkube Cloud Slack App, which ### Table of Contents -* [Creating Botkube Cloud Account](#creating-botkube-cloud-account-2) -* [Connecting Kubernetes Cluster to Slack](#connecting-kubernetes-cluster-to-slack-2) -* [Conclusion](#conclusion-2) -* [Sign up now](#sign-up-now-2) +* [Creating Botkube Cloud Account](#creating-botkube-cloud-account) +* [Connecting Kubernetes Cluster to Slack](#connecting-kubernetes-cluster-to-slack) +* [Conclusion](#conclusion) +* [Sign up now](#sign-up-now) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! ![Image 2: Diagram of how Botkube connects K8s Clusters to Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709cc5761791c793a83cb_FXqJSS9KtaIOKugq8s7dLxGlnmtLjrwb6L7gurT9lYJdDRz12RFZoLngWUxSDtvrMKpEnhFCEKOroy2rvA9MJiSEZV4DUJwBa58Vl2JiUXfXJ6b3RrHK-sXsLbaqGbijRlnbXXLmuqKB6ckrNR36yFE.png) -‍ -Botkube is a powerful tool designed to streamline incident and event response in Kubernetes environments. With its \[Cloud\](https://app.botkube.io/) \[Slack integration\](https://botkube.io/integration/slack), Botkube enables collaborative troubleshooting by seamlessly integrating with your organization's Slack workspace. In this tutorial, we will walk you through the step-by-step process of setting up and utilizing Botkube's new Cloud Slack feature, empowering your team to effectively create a kubernetes connection to slack and manage multiple Kubernetes clusters to improve incident resolution time +‍ Botkube is a powerful tool designed to streamline incident and event response in Kubernetes environments. With its [Cloud](https://app.botkube.io/) [Slack integration](https://botkube.io/integration/slack), Botkube enables collaborative troubleshooting by seamlessly integrating with your organization's Slack workspace. In this tutorial, we will walk you through the step-by-step process of setting up and utilizing Botkube's new Cloud Slack feature, empowering your team to effectively create a kubernetes connection to slack and manage multiple Kubernetes clusters to improve incident resolution time This blog post assumes that we're starting a completely new Botkube installation, but will show the quickest way to get Kubernetes alerts into Slack. Requirements: -\* A Slack workspace where you have permission to install apps and create channels -\* A Kubernetes cluster where you have access to install Botkube -\* Working kubectl and helm installation -\* A \[Botkube Cloud\](https://app.botkube.io/) account +* A Slack workspace where you have permission to install apps and create channels +* A Kubernetes cluster where you have access to install Botkube +* Working kubectl and helm installation +* A \[Botkube Cloud\](https://app.botkube.io/) account -Here's a video walkthrough of the installation: -‍ - +Here's a video walkthrough of the installation: ‍ -\## Creating Botkube Cloud Account +Creating Botkube Cloud Account +------------------------------ -1\. On the Botkube \[homepage\](https://botkube.io/), locate the “Get Started” button and click on it. This will take you to the account registration page. -2\. Fill in the required information in the registration form. You can sign up with your email address or Github account. -\## Connecting Kubernetes Cluster to Slack -3\. Select either the Wizard or the Block builder method to initiate the setup process for Botkube's Cloud Slack integration. +1. On the Botkube \[homepage\](https://botkube.io/), locate the “Get Started” button and click on it. This will take you to the account registration page. +2. Fill in the required information in the registration form. You can sign up with your email address or Github account. + +Connecting Kubernetes Cluster to Slack +-------------------------------------- + +3. Select either the Wizard or the Block builder method to initiate the setup process for Botkube's Cloud Slack integration. ![Image 3: Easy one click Kubernetes deployment for cloud](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709dfd8e90bc79339fcd0_cQKP0DfzGkbQO4R8kCAnqr54pgSa_IKaPa756N-FFua5n9N1omSH9fg9nGI1JYNjRS6ZmkbNUYrZLK1Z2BmTjPVHBDP0U9jNpidqq7RIqKWJScUJ32pOPryOAp49HR6OoerKN7yJSu6yHr2DU1GDaoo.png) -‍ -4\. Next, enter your instance display name. +4. Next, enter your instance display name. ![Image 4: K8s cluster building GUI](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709efd8e90bc7933a1393_nAeC7-04jk70WellyEP2GM4m75jP4jrLhnmbjAkZr3rLlNi7zaD2bMLx8rvebpfqFIrvB8OSIxIqKezCZngk7ooCH6WAOT_1PBSQKz-sAAl9WRSq-GqtR1gmHmwC87Oq443Bzdu_sMKsHw-_g8Jwrfo.png) -5\. Select the Official Botkube Slack option. (Note this option requires you to sign up for a 30 day free trial) +5. Select the Official Botkube Slack option. (Note this option requires you to sign up for a 30 day free trial) ![Image 5: Official Slack Kubernetes bot](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709ffd8e90bc7933a2249_3GYyjQn-Uklnp1Bn8T7YmSOdKEaFnl3idDQcYJiD1mx7xeBbr6yvoRgbLI3Fir7TaW4a1N8l4tgB_Zbt6b3XryqzyYff4z1I_nffpWkoS6Hx7yPmmTrk2Z9tnAlXWUoM_VrAm0iBje2a8oaIiaGxRx0.png) -‍ -6\. Access the app settings within Slack to configure the integration with Botkube. Click the "Add Slack" button to initiate the process. -7\. Select the workspace within Slack where you want to utilize Botkube. You will now have access to public and private channels, enabling seamless communication and collaboration for Kubernetes troubleshooting tasks. +6. Access the app settings within Slack to configure the integration with Botkube. Click the "Add Slack" button to initiate the process. +7. Select the workspace within Slack where you want to utilize Botkube. You will now have access to public and private channels, enabling seamless communication and collaboration for Kubernetes troubleshooting tasks. ![Image 6: Multicluster setup screen for Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a0bae43806c67551203_v-0W_ZDNIBT2Z7lbvKemYUyidm6L4ftXfEXxY9t0i5d6NB3_A_wrkVIluEVKfh8ZCCSYan2mS8PfS0YXm8DmViUyII5FXmmaLUPy6deAhqmYypJr0mZCg8aOo1FckVZaX3LOlTK6Epso_FqKUAde3Qw.png) -‍ -8\. To include Botkube in private channels, utilize the "Add to Channel" feature. This ensures that Botkube is present in relevant channels where Kubernetes-related discussions and incident responses take place. +8. To include Botkube in private channels, utilize the "Add to Channel" feature. This ensures that Botkube is present in relevant channels where Kubernetes-related discussions and incident responses take place. ![Image 7: One click slack sign in](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a1d00209556840fc2aa_qCmpnXKLE-S-5GKx1PijNsYeJOqKsWffvD0NIp708myAL6SynM44bx0khhpKpQCX-LnUoIQ2t5JAbqjdOfxrQSxIJPZWLRKYrX0O1lKJJQQj0hmkIM_5ADswoPXLaRPrMmLwAtVCSAsGEbySEsGW0WY.png) -‍ - -9\. Select the Plugins you would like to use. Helm, kubectl, and kubernetes source are the botkube default plug-ins. +9. Select the Plugins you would like to use. Helm, kubectl, and kubernetes source are the botkube default plug-ins. ![Image 8: Add plugins to your Kubernetes Cluster quickly with Botkube](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a29a107604e69f10a44_EqV_jhVu5WsrFY2awVlpBZ5UGrulD-EtQrKoYnYoyZP-7TuapKozeQFXiLnQB3g0sUT8YdFZX_yYBgeaJUHhuXpYq3fUuaV9SyJgI0MAwYeJM3to-VfmwRuNyLOkBupW9r32e61df73T4HIa50KMVlc.png) -‍ - -10\. Click the create button -11\. Copy and paste the helm commands into your terminal and then click next +10. Click the create button +11. Copy and paste the helm commands into your terminal and then click next ![Image 9: Helm command to copy into command prompt ](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a33b3210007e280a92a_kqmlF1iCEr1KDQYsMNCGC83a_ZPx0agVAUb6crdZHQOONeg4BlQbwXSWferYj26OZkxyG2cRZ7jtLoDQtbUdEQ9eriQ-KmQmeBcLGxc7QQTtraL3VOAUQW0rNCWGNjJj5HBdzIv8lbk6HgjLwIJwTNM.png) -‍ -12\. You should see your Botkube instance being created. +12. You should see your Botkube instance being created. ![Image 10: Slack Kubernetes integration setup complete](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a3e978de29171f3a547_pjoT_YHQoMpAqVlVcPpsEl0oupPk1cJLMMLXHbehvipxrb0tni3hVtXkLE52YZMypptKk1Uozszf0pPUCN_SpzzP4W49mZy7NwJfLYWEGMBpwjHwIvIvD--mO22yCj9kV3wE4T8jIA532dDf2oUzVY0.png) -‍ - -\### Let’s see it in action +### Let’s see it in action ![Image 11: ChatOps for Kubernetes in Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a5bb3210007e280d3f8_Untitled%20design.gif) -The new Botkube Cloud Slack app adds some great features that weren't previously available, particularly around multi-cluster management. With new \*\*@botkube cloud\*\* commands you can easily navigate between instances.  By using \*\*"@botkube cloud list instances\*\*," you can conveniently view your connected deployments. You can also establish a default instance for a specific workspace and easily switch between them using our slack interactivity feature. Increase your team’s efficiency with the ability to run commands across all your connected clusters by simply adding " \*\*--all-clusters.\*\*" This feature saves you valuable time and lets you manage all your resources with a single command. -\## Conclusion +The new Botkube Cloud Slack app adds some great features that weren't previously available, particularly around multi-cluster management. With new **@botkube cloud** commands you can easily navigate between instances. By using **"@botkube cloud list instances**," you can conveniently view your connected deployments. You can also establish a default instance for a specific workspace and easily switch between them using our slack interactivity feature. Increase your team’s efficiency with the ability to run commands across all your connected clusters by simply adding " **\--all-clusters.**" This feature saves you valuable time and lets you manage all your resources with a single command. + +Conclusion +---------- + +Botkube's [Cloud Slack integration](https://botkube.io/integration/slack) offers a range of key features and functionalities. From seamless [incident response](https://docs.botkube.io/usage/automated-actions) to enhanced [resource monitoring](https://docs.botkube.io/usage/source/prometheus/), Botkube empowers teams to troubleshoot and manage Kubernetes clusters effectively. Utilizing Botkube's Cloud Slack feature is crucial for teams seeking to optimize Kubernetes workflows and streamline troubleshooting processes. By leveraging Botkube, teams can improve incident resolution time, collaborate efficiently, and enhance overall operational efficiency in Kubernetes environments. + +Integrate Botkube's Cloud with Slack to enhance your Kubernetes operations and improve incident response and collaboration. By utilizing Botkube's powerful features, you can streamline troubleshooting processes and achieve quicker resolutions for any Kubernetes-related issues. -Botkube's \[Cloud Slack integration\](https://botkube.io/integration/slack) offers a range of key features and functionalities. From seamless\[ incident response\](https://docs.botkube.io/usage/automated-actions) to enhanced \[resource monitoring\](https://docs.botkube.io/usage/source/prometheus/), Botkube empowers teams to troubleshoot and manage Kubernetes clusters effectively. Utilizing Botkube's Cloud Slack feature is crucial for teams seeking to optimize Kubernetes workflows and streamline troubleshooting processes. By leveraging Botkube, teams can improve incident resolution time, collaborate efficiently, and enhance overall operational efficiency in Kubernetes environments. +Sign up now +----------- -‍ -Integrate Botkube's Cloud with Slack to enhance your Kubernetes operations and improve incident response and collaboration. By utilizing Botkube's powerful features, you can streamline troubleshooting processes and achieve quicker resolutions for any Kubernetes-related issues. -\## Sign up now +Get started with [Botkube](https://app.botkube.io/). Whether you're a seasoned Kubernetes pro or just getting started, Botkube has something to offer. Sign up now for free and join the community of users who are already benefiting from the power of Botkube. -Get started with \[Botkube\](https://app.botkube.io/)! Whether you're a seasoned Kubernetes pro or just getting started, Botkube has something to offer. Sign up now for free and join the community of users who are already benefiting from the power of Botkube. -\### Feedback +### Feedback We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give you some cool Botkube plushies and t-shirts and enter you into a raffle for a chance to win a $50 Amazon gift card! Just email maria@kubeshop.io or use this calendly link to sign up. -You can also talk to us in the Botkube GitHub \[issues\](https://github.com/kubeshop/botkube/issues), connect with others and get help in the Botkube Slack community, or email our Product Leader at \[blair@kubeshop.io\](mailto:blair@kubeshop.io). +You can also talk to us in the Botkube GitHub [issues](https://github.com/kubeshop/botkube/issues), connect with others and get help in the Botkube Slack community, or email our Product Leader at [blair@kubeshop.io](mailto:blair@kubeshop.io). diff --git a/hack/assistant-setup/content/botkube.io__blog__streamlining-gitops-with-the-botkube-flux-plugin.md b/hack/assistant-setup/content/botkube.io__blog__streamlining-gitops-with-the-botkube-flux-plugin.md index 9596a10..20776eb 100644 --- a/hack/assistant-setup/content/botkube.io__blog__streamlining-gitops-with-the-botkube-flux-plugin.md +++ b/hack/assistant-setup/content/botkube.io__blog__streamlining-gitops-with-the-botkube-flux-plugin.md @@ -17,187 +17,159 @@ Learn how to set up Botkube with Flux and GitHub-events plugins in this step-by- ### Table of Contents -* [Prerequisites](#prerequisites-2) -* [Using the Flux Plugin in Action](#using-the-flux-plugin-in-action-2) -* [Conclusion](#conclusion-2) -* [Sign up now!](#sign-up-now--2) -* [Feedback](#feedback-2) +* [Prerequisites](#prerequisites) +* [Using the Flux Plugin in Action](#using-the-flux-plugin-in-action) +* [Conclusion](#conclusion) +* [Sign up now](#sign-up-now) +* [Feedback](#feedback) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud -In today's fast-paced world of Kubernetes management, embracing GitOps is a crucial step towards efficient collaboration and automation. However, it comes with its own set of challenges. Enter \[Botkube\](https://botkube.io/), a Kubernetes collaborative troubleshooting tool for Kubernetes that seamlessly integrates with popular collaboration platforms like \[Slack, Microsoft Teams, Discord, and Mattermost\](https://botkube.io/integrations). Botkube not only simplifies alert management but also optimizes GitOps workflows by enhancing automation, real-time collaboration and centralizing knowledge.  Learn more about Botkube’s move towards \[GitOps\](https://botkube.io/blog/enhancing-gitops-workflows-with-botkube) and the new Flux Plugin in our \[release announcemen\](https://botkube.io/blog/introducing-botkubes-integration-with-flux)t. In this tutorial, we will explore the Botkube Flux plugin, a powerful tool that automates notifications, enhances GitOps practices, and simplifies the interaction between Kubernetes clusters and GitHub repositories. By the end of this tutorial, you'll have a solid understanding of how to create, configure, and leverage the Botkube Flux plugin to streamline your GitOps workflow. +In today's fast-paced world of Kubernetes management, embracing GitOps is a crucial step towards efficient collaboration and automation. However, it comes with its own set of challenges. Enter [Botkube](https://botkube.io/), a Kubernetes collaborative troubleshooting tool for Kubernetes that seamlessly integrates with popular collaboration platforms like [Slack, Microsoft Teams, Discord, and Mattermost](https://botkube.io/integrations). Botkube not only simplifies alert management but also optimizes GitOps workflows by enhancing automation, real-time collaboration and centralizing knowledge. Learn more about Botkube’s move towards [GitOps](https://botkube.io/blog/enhancing-gitops-workflows-with-botkube) and the new Flux Plugin in our [release announcemen](https://botkube.io/blog/introducing-botkubes-integration-with-flux)t. In this tutorial, we will explore the Botkube Flux plugin, a powerful tool that automates notifications, enhances GitOps practices, and simplifies the interaction between Kubernetes clusters and GitHub repositories. By the end of this tutorial, you'll have a solid understanding of how to create, configure, and leverage the Botkube Flux plugin to streamline your GitOps workflow. -\## Prerequisites +Prerequisites +------------- Before we dive into the tutorial, make sure you have the following prerequisites ready: -\* A GitHub account with access to tokens -\* Basic familiarity with Kubernetes and its components. -\* Access to a Kubernetes cluster with helm installed -\* Access to Slack workspace -\* A Botkube Cloud Account +* A GitHub account with access to tokens +* Basic familiarity with Kubernetes and its components. +* Access to a Kubernetes cluster with helm installed +* Access to Slack workspace +* A Botkube Cloud Account -‍ -\### Creating Botkube Cloud Account +### Creating Botkube Cloud Account -1\. On the Botkube \[homepage\](https://botkube.io/), locate the “Get Started” button and click on it. This will take you to the account registration page. -2\. Fill in the required information in the registration form. You can sign up with your email address or Github account. +1. On the Botkube [homepage](https://botkube.io/), locate the “Get Started” button and click on it. This will take you to the account registration page. +2. Fill in the required information in the registration form. You can sign up with your email address or Github account. -\* Click \[here\](https://botkube.io/blog/step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting) for a more indepth Botkube installation tutorial +* Click [here](https://botkube.io/blog/step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting) for a more indepth Botkube installation tutorial ![Image 2: Easy one click Kubernetes deployment for cloud](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709dfd8e90bc79339fcd0_cQKP0DfzGkbQO4R8kCAnqr54pgSa_IKaPa756N-FFua5n9N1omSH9fg9nGI1JYNjRS6ZmkbNUYrZLK1Z2BmTjPVHBDP0U9jNpidqq7RIqKWJScUJ32pOPryOAp49HR6OoerKN7yJSu6yHr2DU1GDaoo.png) -\### Connecting Kubernetes Cluster to Slack +### Connecting Kubernetes Cluster to Slack Select either the Wizard or the Block builder method to initiate the setup process for Botkube's Cloud Slack integration. -1\. Next, enter your instance display name. +1. Next, enter your instance display name. ![Image 3: K8s cluster building GUI](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709efd8e90bc7933a1393_nAeC7-04jk70WellyEP2GM4m75jP4jrLhnmbjAkZr3rLlNi7zaD2bMLx8rvebpfqFIrvB8OSIxIqKezCZngk7ooCH6WAOT_1PBSQKz-sAAl9WRSq-GqtR1gmHmwC87Oq443Bzdu_sMKsHw-_g8Jwrfo.png) -2\. Select the Official Botkube Slack option. (Note this option requires you to sign up for a 30 day free trial) +2. Select the Official Botkube Slack option. (Note this option requires you to sign up for a 30 day free trial) ![Image 4: Official Slack Kubernetes bot](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a709ffd8e90bc7933a2249_3GYyjQn-Uklnp1Bn8T7YmSOdKEaFnl3idDQcYJiD1mx7xeBbr6yvoRgbLI3Fir7TaW4a1N8l4tgB_Zbt6b3XryqzyYff4z1I_nffpWkoS6Hx7yPmmTrk2Z9tnAlXWUoM_VrAm0iBje2a8oaIiaGxRx0.png) -3\. Access the app settings within Slack to configure the integration with Botkube. Click the "Add Slack" button to initiate the process. -4\. Select the workspace within Slack where you want to utilize Botkube. You will now have access to public and private channels, enabling seamless communication and collaboration for Kubernetes troubleshooting tasks. +3. Access the app settings within Slack to configure the integration with Botkube. Click the "Add Slack" button to initiate the process. +4. Select the workspace within Slack where you want to utilize Botkube. You will now have access to public and private channels, enabling seamless communication and collaboration for Kubernetes troubleshooting tasks. ![Image 5: Multicluster setup screen for Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a0bae43806c67551203_v-0W_ZDNIBT2Z7lbvKemYUyidm6L4ftXfEXxY9t0i5d6NB3_A_wrkVIluEVKfh8ZCCSYan2mS8PfS0YXm8DmViUyII5FXmmaLUPy6deAhqmYypJr0mZCg8aOo1FckVZaX3LOlTK6Epso_FqKUAde3Qw.png) -‍ - -5\. To include Botkube in private channels, utilize the "Add to Channel" feature. This ensures that Botkube is present in relevant channels where Kubernetes-related discussions and incident responses take place. +5. To include Botkube in private channels, utilize the "Add to Channel" feature. This ensures that Botkube is present in relevant channels where Kubernetes-related discussions and incident responses take place. ![Image 6: One click slack sign in](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70a1d00209556840fc2aa_qCmpnXKLE-S-5GKx1PijNsYeJOqKsWffvD0NIp708myAL6SynM44bx0khhpKpQCX-LnUoIQ2t5JAbqjdOfxrQSxIJPZWLRKYrX0O1lKJJQQj0hmkIM_5ADswoPXLaRPrMmLwAtVCSAsGEbySEsGW0WY.png) -‍ +6. Select the Plugins you would like to use. -6\. Select the Plugins you would like to use. - -\### Enabling the Plugin +### Enabling the Plugin ![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f219c6901138bd3fb3ecbb__JgXw9_EzpdpHItfymUJr5owqit0mMnoORy7I1PApaua66YV3GKd00wMc4TYYSpNpW-uhYDgGc0FHywymRF2Zf4tGny-TIORkO8LdDfmwTFyuOX5gDR4-najpP4gOHJs7XZ0TgmsOm_kCGFu08ZuRWw.png) -‍ - -1\. Select the Flux and GitHub-events Plugin - -\* Begin by selecting the Flux and GitHub-events plugins within your Botkube setup. - -2\. Insert Your GitHub Access Token - -\* To do this, navigate to your GitHub developer settings. - -\* Locate your GitHub access token and copy it. +1. Select the Flux and GitHub-events Plugin + + * Begin by selecting the Flux and GitHub-events plugins within your Botkube setup. +2. Insert Your GitHub Access Token + + * To do this, navigate to your GitHub developer settings. + + * Locate your GitHub access token and copy it. + -\* Insert the copied access token into the appropriate field within the Flux plugin settings. +* Insert the copied access token into the appropriate field within the Flux plugin settings. ![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f218c651c3be1367d23eb4_RxmxZInIIFLvZUTkgh63JlGBKnJlN1oGd5RW1NGQ6dM0ZPgnXaTXJ48wRFBDJWzUvNlIo5H9PuOEBMbB_rCh15bW_VK2f3uXPwOl_y2P7QLtzLNs2aIZBukjuu2WQGfkJD3LznRWAQy-CropKTSXxbc.png) -‍ - -‍ - -3\. Configure Permissions - -\* In the Flux plugin settings, select the "Permissions" tab. +3. Configure Permissions -\* Choose the "Custom" option. - -\* Under the custom permissions, select the "Group" option - -\* Next, update the permissions for RBAC (Role-Based Access Control). - -\* Add "flux-write" and "flux-read-patch" permissions since they are required for using the "flux install" command. +* In the Flux plugin settings, select the "Permissions" tab. +* Choose the "Custom" option. +* Under the custom permissions, select the "Group" option +* Next, update the permissions for RBAC (Role-Based Access Control). +* Add "flux-write" and "flux-read-patch" permissions since they are required for using the "flux install" command. ![Image 9](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f218e2755212a14074243d_bvJGmOwBNt4TLjh_yde1mlTZ_X-b0Mk-pXbKoJP3iLSNfw3ilvM_21hkaj0M5qAP8W04glEk1aWetaklzfuvZGGNBmmQefuFjt-4LWGz-WF2XTIsFnIcNliGTAL_izF_RQfj-6OjcUihJYdk66t2jkM.png) -‍ - -4\. Configure GitHub-events Plugin - -\* Now, select the GitHub-events plugin - -5\. Insert GitHub Access Token - -\* Insert the same GitHub access token that you used for the Flux plugin into the GitHub-events plugin settings. +4. Configure GitHub-events Plugin + + * Now, select the GitHub-events plugin +5. Insert GitHub Access Token + + * Insert the same GitHub access token that you used for the Flux plugin into the GitHub-events plugin settings. ![Image 10](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f21921f9104d28d7620904_a-5ZlAVnumBSl5orUqAAU2Ma0aWx3xrJ7QjVRWZU-IKvraswRku8RkYh4Ax6QRo_W0lvDHnhGTCRKQm0dF3U-kyVq_1c6THoimLnlRy0uw8oZ0mahQbCxZKINNbdCKTVbNfoSr0KgqF-w9A8YG5fGe0.png) ‍ -6\. Repository Configuration - -\* Scroll down to the "Repository Configuration" section. - -\* Insert the name of your repository into the appropriate field. +6. Repository Configuration -\* Scroll further down to the "Pull Request Matcher" section. - -\* Select the types of pull requests you want Botkube to check for. - -\* For this demo, choose the "open" option. +* Scroll down to the "Repository Configuration" section. +* Insert the name of your repository into the appropriate field. +* Scroll further down to the "Pull Request Matcher" section. +* Select the types of pull requests you want Botkube to check for. +* For this demo, choose the "open" option. ![Image 11](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f2193d26a35a2059f5a9c2_zV2W8j7eAJbfFdR_eFsbWZQdpJmZY0uXib1XCLCk9HR3n8XuQuCnnmy8T0Lk_eSWv6ZVPy2iTd_KHrhLUvGlSI0kN6OVtwI4K9dLHYxUW_wR3piuJYV0KDB4Hsh9hFOBW-SrYC0bRe2GPg_0bxGLekU.png) -‍ - -\* In the same section, locate the "File Pattern" field. - -\* Type in the file path that you want pull requests to match. - -\* For this demo, use your "kustomize" folder. +* In the same section, locate the "File Pattern" field. +* Type in the file path that you want pull requests to match. +* For this demo, use your "kustomize" folder. ![Image 12](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f2194b9e5c70cd869dbfb4_X_x4cE-nGwjogL8wBWDcCQOeuxeHW-JzGMp6YmgOJEU1rK9z-79prBw2HNnmkXnmJCBkraY_qsRPwBGuxXfzWFqY1PtocW51l3qfly2Gsu0ToaPZb62pcIR_O-hlNBKu5T_tN7cwrgixqPNxAkDObQc.png) -‍ - 7\. Click the "Submit" button to save your configurations. -\* If desired, configure any additional plugins you want to use at this stage. + * If desired, configure any additional plugins you want to use at this stage. + ![Image 13](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f2195fe9284fa6e17e51d1_9T2t8y3gIhVQPV4qHiXUcKwdYB_vYQ2wV06O1P7wM1zxib3rJlv8h2oTNW25bNehjGHDtQ2qYWwRy_96GYdI-bvl-0yEIKUjmfTqrARjZU4GcgVySZCldUnKHrlA5JjVwEXkxAFnyHu3SFQP4NMbok8.png) -‍ - -8\. Click "Next" to proceed to the installation step. - -9\. On the next page, you will have the option to also enable \[Command Alias\](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) and \[Botkube Actions\](https://docs.botkube.io/usage/automated-actions/). - -\* Make your selection and click the create button. - -10\. You are now ready to start playing with your Botkube plugin. - -‍ +8. Click "Next" to proceed to the installation step. + +9. On the next page, you will have the option to also enable [Command Alias](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) and [Botkube Actions](https://docs.botkube.io/usage/automated-actions/). + + * Make your selection and click the create button. +10. You are now ready to start playing with your Botkube plugin. + -\## Using the Flux Plugin in Action +Using the Flux Plugin in Action +------------------------------- -\### Running a Flux install +### Running a Flux install ![Image 14](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64ecb79001bc7e01e2c88804_flux-interactivity.gif) With the Botkube Flux plugin, you have the power to streamline your Kubernetes deployment workflow even further. Beyond the ability to effortlessly manage GitHub pull requests, this plugin offers you the convenience of checking prerequisites on your cluster and performing a complete Flux installation – all from your preferred communication platform. This means that not only can you seamlessly collaborate with your team members by sharing and discussing pull request changes within your Slack channel, but you can also ensure that your cluster is properly configured before initiating the installation of Flux. This capability to validate prerequisites directly from your communication platform adds a layer of control and convenience to your Kubernetes operations. -‍ -\### Automating a Flux Diff Workflow +### Automating a Flux Diff Workflow ![Image 15](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64e694bca6bd600e8a7e88dd_flux-diff-1.gif) This command streamlines several essential tasks in your workflow. It starts by automatically identifying the relevant GitHub repository linked to the provided kustomization. After that, it proceeds to clone this repository and check out a specified pull request. The command then performs a thorough comparison between the changes in the pull request and the current state of your cluster. What sets it apart is its ability to conveniently share the resulting diff report on your Slack channel, facilitating seamless collaboration among team members for reviewing and discussing the alterations. Moreover, the command enhances efficiency by offering additional contextual actions, including posting the diff report as a GitHub comment on the corresponding pull request, approving the pull request, and providing quick access to view the pull request itself. Combining Botkube's GitHub Slack integration for repo control and Flux CD integration for more tools allows for better GitOps workflow management. -\## Conclusion +Conclusion +---------- In conclusion, the Botkube Flux plugin presents an invaluable asset for simplifying GitOps workflows. From automating notifications to enhancing collaboration, this tool streamlines the process of managing Kubernetes clusters and GitHub repositories. We encourage you to implement the plugin in your workflow and explore further automation possibilities.With seamless integration into major communication channels, Botkube empowers you to take swift action on identified errors, ensuring your Kubernetes environment runs smoothly wherever you are. -\## Sign up now! +Sign up now +----------- Get started with [Botkube](https://app.botkube.io/). Whether you’re a seasoned Kubernetes pro or just getting started, Botkube has something to offer. Sign up now for free and join the [community of users](https://join.botkube.io/) who are already benefiting from the power of Botkube. -‍ -\## Feedback +Feedback +-------- -We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give you some cool Botkube plushies and t-shirts and enter you into a raffle for a chance to win a $50 Amazon gift card! Just email our Developer Advocate, Maria or use this calendly\[ link \](https://calendly.com/maria-botkube)to sign up. +We welcome developers and Kubernetes enthusiasts to explore the platform and share their valuable feedback. We want to know what you think of Botkube and how we can make it even better. We're doing quick 15-minute interviews to get your feedback, and as a thank you, we'll give you some cool Botkube plushies and t-shirts and enter you into a raffle for a chance to win a $50 Amazon gift card! Just email our Developer Advocate, Maria or use this calendly [link](https://calendly.com/maria-botkube) to sign up. -You can also talk to us in the Botkube GitHub issues, connect with others and get help in the Botkube \[Slack community\](http://join.botkube.io/), or email our Product Leader at blair@kubeshop.io. +You can also talk to us in the Botkube GitHub issues, connect with others and get help in the Botkube [Slack community](https://join.botkube.io/), or email our Product Leader at blair@kubeshop.io. diff --git a/hack/assistant-setup/content/botkube.io__blog__streamlining-kubernetes-management-a-closer-look-at-botkube-chatops.md b/hack/assistant-setup/content/botkube.io__blog__streamlining-kubernetes-management-a-closer-look-at-botkube-chatops.md index c148b2f..b21718f 100644 --- a/hack/assistant-setup/content/botkube.io__blog__streamlining-kubernetes-management-a-closer-look-at-botkube-chatops.md +++ b/hack/assistant-setup/content/botkube.io__blog__streamlining-kubernetes-management-a-closer-look-at-botkube-chatops.md @@ -17,13 +17,13 @@ Learn about Botkube from Rohit Ghumare, Google Developer Expert – Google Cloud ### Table of Contents -* [Step 1: Signing Up for Botkube](#step-1-signing-up-for-botkube-2) -* [Step 2: Setting Your Instance](#step-2-setting-your-instance--2) -* [Debugging Botkube](#debugging-botkube--2) -* [Botkube Meets Helm](#botkube-meets-helm-2) -* [Conclusion](#conclusion-2) +* [Step 1: Signing Up for Botkube](#step-1-signing-up-for-botkube) +* [Step 2: Setting Your Instance](#step-2-setting-your-instance-) +* [Debugging Botkube](#debugging-botkube-) +* [Botkube Meets Helm](#botkube-meets-helm) +* [Conclusion](#conclusion) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -58,24 +58,23 @@ Ready to dive into the hands-on demo where we use Botkube for Kubernetes trouble Use [Homebrew](https://brew.sh/) to install the latest Botkube CLI: -\`\`\`brew install kubeshop/botkube/botkube\`\`\` +`brew install kubeshop/botkube/botkube` -Alternatively, download the Botkube CLI binary and move it to a directory under your \`$PATH:\` +Alternatively, download the Botkube CLI binary and move it to a directory under your `$PATH:` -\`\`\` -curl -Lo botkube https://github.com/kubeshop/botkube/releases/download/v1.7.0/botkube-darwin-arm64chmod +x botkube && mv botkube /usr/local/bin/botkube -\`\`\` + curl -Lo botkube https://github.com/kubeshop/botkube/releases/download/v1.7.0/botkube-darwin-arm64chmod +x botkube && mv botkube /usr/local/bin/botkube + ### **2\. Install Botkube on your cluster** Install or upgrade Botkube and connect it to Botkube Cloud: -\`\`\` -botkube install --version=v1.7.0 \\ -\--set config.provider.endpoint=https://api.botkube.io/graphql \\   -\--set config.provider.identifier=b2b56b7d-392a-4614-b1ba-93eb0e92f424 \\   -\--set config.provider.apiKey=key:1d4ffcee-9df8-489c-bcd2-f288eb781dde -\`\`\` + botkube install --version=v1.7.0 \ + --set config.provider.endpoint=https://api.botkube.io/graphql \ + --set config.provider.identifier=b2b56b7d-392a-4614-b1ba-93eb0e92f424 \ + --set config.provider.apiKey=key:1d4ffcee-9df8-489c-bcd2-f288eb781dde + + Now, Choose a display name for your Botkube instance. This is like giving a cool nickname to your new digital helper. ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65a9d575d9deb7aaf9866988_Screenshot%202024-01-13%20at%2020.15.55.png) @@ -132,16 +131,15 @@ You need to invite Botkube to your Slack workspace first, so click on “invite ![Image 11](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65a9d6c60f818c7e0fa3d23d_Screenshot%202024-01-13%20at%2021.36.17.png) -2. Enter a **Name**, select \`connections:write\` scope, and click **Generate**. +2. Enter a **Name**, select `connections:write` scope, and click **Generate**. ![Image 12](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65a9d7029fa7ebdd68ebe769_Screenshot%202024-01-13%20at%2021.38.49.png) Export slack tokens from your terminal as follows: -\`\`\` -export SLACK\_API\_BOT\_TOKEN="botToken" -export SLACK\_API\_APP\_TOKEN="appToken" -\`\`\` + export SLACK_API_BOT_TOKEN="botToken" + export SLACK_API_APP_TOKEN="appToken" + * You need to make sure you’re adding Botkube to your channel where you’ll be using Botkube, as shown below. * After installing the Botkube app to your Slack workspace, you could see a new bot user with the name "Botkube" added to your workspace. Add that bot to a Slack channel you want to receive notifications in. You can add it by inviting @Botkube to a channel. @@ -186,7 +184,7 @@ Go to your Slack workspace, you can expect below updates automatically! ### Verify Botkube Installation -In Slack, try running kubectl commands under the _kubernetes_ channel like this \`@SLACK\_APP\_NAME kubectl get nodes\` +In Slack, try running kubectl commands under the _kubernetes_ channel like this `@SLACK_APP_NAME kubectl get nodes` ![Image 21](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65a9d8fcb5f4e48c29b03978_Screenshot%202024-01-14%20at%2000.28.44.png) @@ -197,42 +195,39 @@ Debugging Botkube > Most likely, you’ll come across some common errors around slack channel name or botkube not recognizing your slack workspace channels. To resolve this, you can manually edit the botkube YAML configuration file. -\- Configure Botkube by editing the values.yaml file. +* Configure Botkube by editing the values.yaml file. -\`\`\` -vi botkube/values.yaml -\`\`\` + vi botkube/values.yaml + Enable **_socketSlack_**_:_ under ”_communications:”_ and set the name of the default channel to match the name of your actual Slack channel. Set the **botToken** and **appToken** values to the tokens you retrieved from above. -\`\`\` -communications: - 'default-group': -   socketSlack: -     enabled: true -     channels: -       'default': -         name: 'kubernetes'  ... -                                                          ... -     botToken: 'BOT\_TOKEN' -     appToken: 'APP\_TOKEN' -\`\`\` + communications: + 'default-group': + socketSlack: + enabled: true + channels: + 'default': + name: 'kubernetes' ... + ... + botToken: 'BOT_TOKEN' + appToken: 'APP_TOKEN' + Enable the Helm and Kubectl executors -\`\`\` -executors: - k8s-default-tools: -   botkube/helm: -     enabled: true -       ... -... -       ... -   botkube/kubectl: -     enabled: true -       ... -... -\`\`\` + executors: + k8s-default-tools: + botkube/helm: + enabled: true + ... + ... + ... + botkube/kubectl: + enabled: true + ... + ... + Alternatively, You can also use **helm** for the Installation process for efficient Kubernetes application management. @@ -241,8 +236,7 @@ Alternatively, You can also use **helm** for the Installation process for effici A standout feature of Botkube? It's a [Helm executor plugin](https://botkube.io/integration/helm). This nifty integration lets you wield Helm commands right from your chat platform. Need to roll back a release or check an app’s status? Botkube’s got your back. -**Botkube’s Toolkit -‍**Botkube isn’t just about deploying and monitoring. It’s a powerhouse for executing a range of Helm commands like install, upgrade, and rollback. Just remember to tweak those RBAC settings for read-write commands. +**Botkube’s Toolkit ‍**Botkube isn’t just about deploying and monitoring. It’s a powerhouse for executing a range of Helm commands like install, upgrade, and rollback. Just remember to tweak those RBAC settings for read-write commands. **Why Botkube and Helm Are a Dream Team** @@ -256,27 +250,26 @@ A standout feature of Botkube? It's a [Helm executor plugin](https://botkube.io/ **Setting Up Botkube with Helm: A Step-by-Step Guide** -\`\`\` -\# Adding Botkube to helm -helm repo add botkube [https://charts.botkube.io](https://charts.botkube.io/). -helm search repo botkube - -\# Reveals all available charts -helm search repo botkube - -\# Botkube Installation -helm install botkube --namespace botkube --create-namespace botkube/botkube - -\# Verifying Installation -kubectl get pods -n botkube - -\# If you're using Slack, try this -@Botkube helm list -\`\`\` + # Adding Botkube to helm + helm repo add botkube https://charts.botkube.io. + helm search repo botkube + + # Reveals all available charts + helm search repo botkube + + # Botkube Installation + helm install botkube --namespace botkube --create-namespace botkube/botkube + + # Verifying Installation + kubectl get pods -n botkube + + # If you're using Slack, try this + @Botkube helm list + Conclusion ---------- ‍**‍**Botkube emphasizes the challenges DevOps faces with Kubernetes, such as debugging in complex environments and coordinating across teams.This ingenious tool is all about making life easier. It offers streamlined monitoring, efficient debugging, and simplified management of Kubernetes clusters. Think of it as your go-to for instant alerts and the ability to fire off Kubernetes commands right from your chat window. From signing up to integrating your Kubernetes clusters with your favorite chat tools, it’s all about boosting your operational game. -For more details, join the [Botkube community on Slack](https://join.botkube.io/) or reach out to the Botkube team via the [Botkube Dashboard](http://app.botkube.io/). +For more details, join the [Botkube community on Slack](https://join.botkube.io/) or reach out to the Botkube team via the [Botkube Dashboard](https://app.botkube.io/). diff --git a/hack/assistant-setup/content/botkube.io__blog__supercharging-developer-collaboration-how-chatops-lives-on-with-botkube.md b/hack/assistant-setup/content/botkube.io__blog__supercharging-developer-collaboration-how-chatops-lives-on-with-botkube.md index 33062ba..befcf13 100644 --- a/hack/assistant-setup/content/botkube.io__blog__supercharging-developer-collaboration-how-chatops-lives-on-with-botkube.md +++ b/hack/assistant-setup/content/botkube.io__blog__supercharging-developer-collaboration-how-chatops-lives-on-with-botkube.md @@ -17,54 +17,61 @@ Chatops is not dead...it's making a comeback. In the fast-paced world of softwar ### Table of Contents -* [Unleashing the Power of ChatOps:](#unleashing-the-power-of-chatops--2) -* [Evolving with the Developer Community:](#evolving-with-the-developer-community--2) -* [What is Botkube? Is it ChatOps for Kubernetes?](#what-is-botkube-is-it-chatops-for-kubernetes--2) -* [How Botkube Innovates the Chatops Space](#how-botkube-innovates-the-chatops-space-2) -* [Embrace the Future of Collaborative Troubleshooting:](#embrace-the-future-of-collaborative-troubleshooting--2) -* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you--2) +* [Unleashing the Power of ChatOps:](#unleashing-the-power-of-chatops-) +* [Evolving with the Developer Community:](#evolving-with-the-developer-community-) +* [What is Botkube? Is it ChatOps for Kubernetes?](#what-is-botkube-is-it-chatops-for-kubernetes-) +* [How Botkube Innovates the Chatops Space](#how-botkube-innovates-the-chatops-space) +* [Embrace the Future of Collaborative Troubleshooting:](#embrace-the-future-of-collaborative-troubleshooting-) +* [Feedback - We’d Love to Hear From You!](#feedback-we-d-love-to-hear-from-you-) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! In the fast-paced world of software development, collaboration and effective communication are extremely important. That's where ChatOps comes in—a game-changing method that has transformed the way development and operations teams collaborate. Despite rumors of its demise, ChatOps is alive and well, and all thanks to an incredible tool called Botkube. In this blog post, we'll show the ways ChatOps has evolved and why every developer should be excited about Botkube's impact on their troubleshooting workflow. -\## Unleashing the Power of ChatOps: +Unleashing the Power of ChatOps: +-------------------------------- -As developers, we know that seamless collaboration and streamlined processes are the keys to success. \[ChatOps\](https://botkube.io/learn/chatops) harnesses the power of chat platforms to centralize discussions, actions, and alerts, providing a single hub for team collaboration. It's a practice that encourages transparency, knowledge sharing, and continuous improvement within development and operations workflows. ChatOps enables us to automate tasks, gather information, and trigger actions, all through the convenience of chat conversations. +As developers, we know that seamless collaboration and streamlined processes are the keys to success. [ChatOps](https://botkube.io/learn/chatops) harnesses the power of chat platforms to centralize discussions, actions, and alerts, providing a single hub for team collaboration. It's a practice that encourages transparency, knowledge sharing, and continuous improvement within development and operations workflows. ChatOps enables us to automate tasks, gather information, and trigger actions, all through the convenience of chat conversations. -\## Evolving with the Developer Community: +Evolving with the Developer Community: +-------------------------------------- While ChatOps initially gained traction with tools like Hubot and Lita, it has never stopped evolving to meet the dynamic needs of modern development teams. With the advent of Kubernetes and containerization, the demand for ChatOps tools tailored to these environments became apparent. This is where Botkube, a powerful open-source tool, steps in to revolutionize how we monitor and manage our Kubernetes infrastructure. -\## What is Botkube? Is it ChatOps for Kubernetes? +What is Botkube? Is it ChatOps for Kubernetes? +---------------------------------------------- Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more.. In this blog post, we'll give you an introduction to Botkube and highlight some of its key features and benefits. -\## How Botkube Innovates the Chatops Space +How Botkube Innovates the Chatops Space +--------------------------------------- -\### Real-time Collaboration: +### Real-time Collaboration: Imagine receiving instant alerts about pod crashes, resource constraints, or failed deployments, directly in your chat platform. Botkube ensures that the right team members are informed promptly, enabling quick decision-making and efficient troubleshooting. No more delays or miscommunications – just instant collaboration at its finest. -\### Centralized Knowledge: +### Centralized Knowledge: With Botkube, all our Kubernetes-related discussions, diagnoses, and actions take place within the chat platform. This not only encourages knowledge sharing but also creates a centralized repository of information and actions taken. No more scattered conversations or lost context. It's all neatly preserved for easy access and accelerated onboarding of new team members. -\### Turbocharged Efficiency: +### Turbocharged Efficiency: Botkube's automation capabilities eliminate repetitive tasks and enable lightning-fast actions through chat commands. We can scale deployments, inspect logs, or roll back changes with a few keystrokes, all while staying in the flow of our chat conversations. This seamless workflow minimizes context switching, boosts productivity, and expedites application deployment and management. -\### Flexibility and Scalability: +### Flexibility and Scalability: Whether we're working with a single Kubernetes cluster or managing multiple ones, Botkube has us covered. It scales effortlessly, ensuring we can monitor and manage our infrastructure effectively. Moreover, Botkube's extensible architecture lets us integrate custom alerting mechanisms or notifications, tailoring it to our specific needs. -\## Embrace the Future of Collaborative Troubleshooting: +Embrace the Future of Collaborative Troubleshooting: +---------------------------------------------------- ChatOps isn't going anywhere in fact, it's thriving, and with tools like Botkube, it's reaching new heights. This powerful combination empowers us to collaborate seamlessly, automate tasks effortlessly, and gain real-time insights into our Kubernetes infrastructure. As the Kubernetes community continues to push boundaries, ChatOps fueled by Botkube will remain an indispensable practice. Embrace the power of ChatOps and join the exciting journey of transforming how we collaborate, communicate, and code. -\## Feedback - We’d Love to Hear From You! +Feedback - We’d Love to Hear From You! +-------------------------------------- + As always, we want to hear your feedback and ideas about Botkube. Help us plan the Botkube roadmap, get the features you’d like implemented, and get bugs fixed quickly. You can talk to us in the Botkube GitHub issues, Botkube Slack community, or email our Product Leader at blair@kubeshop.io. diff --git a/hack/assistant-setup/content/botkube.io__blog__the-state-of-kubernetes-errors-in-2023.md b/hack/assistant-setup/content/botkube.io__blog__the-state-of-kubernetes-errors-in-2023.md index e68f2d4..a8942ba 100644 --- a/hack/assistant-setup/content/botkube.io__blog__the-state-of-kubernetes-errors-in-2023.md +++ b/hack/assistant-setup/content/botkube.io__blog__the-state-of-kubernetes-errors-in-2023.md @@ -22,7 +22,7 @@ What is the state of Kubernetes errors in 2023? What are the most popular errors * [Effective K8s Troubleshooting Chart](#effective-k8s-troubleshooting-chart) * [Concluding Kubernetes Errors](#concluding-kubernetes-errors) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud @@ -96,6 +96,4 @@ If a company runs its applications in Kubernetes, they need to consider adding B * Reduce the time it takes to resolve errors. * Prevent future errors from occurring. -If you are looking for a way to improve your Kubernetes error management, then Botkube is a great option. Botkube is easy to use and can help you to save time and money. Thanks for taking the time to read about the state of K8s errors! - -‍ +If you are looking for a way to improve your Kubernetes error management, then Botkube is a great option. Botkube is easy to use and can help you to save time and money. Thanks for taking the time to read about the state of K8s errors. diff --git a/hack/assistant-setup/content/botkube.io__blog__use-chatgpt-to-troubleshoot-kubernetes-errors-with-botkubes-doctor.md b/hack/assistant-setup/content/botkube.io__blog__use-chatgpt-to-troubleshoot-kubernetes-errors-with-botkubes-doctor.md index 612b91c..e08c915 100644 --- a/hack/assistant-setup/content/botkube.io__blog__use-chatgpt-to-troubleshoot-kubernetes-errors-with-botkubes-doctor.md +++ b/hack/assistant-setup/content/botkube.io__blog__use-chatgpt-to-troubleshoot-kubernetes-errors-with-botkubes-doctor.md @@ -17,70 +17,75 @@ People have been using ChatGPT and AI for many uses over the past year. But have ### Table of Contents -* [Using ChatGPT with Kubernetes](#using-chatgpt-with-kubernetes-2) -* [How Botkube Makes ChatGPT for Kubernetes Even Better](#how-botkube-makes-chatgpt-for-kubernetes-even-better-2) -* [Common Use Cases with ChatGPT and Botkube](#common-use-cases-with-chatgpt-and-botkube-2) -* [Is ChatGPT Safe to Use in Kubernetes?](#is-chatgpt-safe-to-use-in-kubernetes--2) -* [Get Started with Botkube’s Doctor Plugin](#get-started-with-botkube-s-doctor-plugin-2) +* [Using ChatGPT with Kubernetes](#using-chatgpt-with-kubernetes) +* [How Botkube Makes ChatGPT for Kubernetes Even Better](#how-botkube-makes-chatgpt-for-kubernetes-even-better) +* [Common Use Cases with ChatGPT and Botkube](#common-use-cases-with-chatgpt-and-botkube) +* [Is ChatGPT Safe to Use in Kubernetes?](#is-chatgpt-safe-to-use-in-kubernetes-) +* [Get Started with Botkube’s Doctor Plugin](#get-started-with-botkube-s-doctor-plugin) -#### Manage your Kubernetes Clusters Directly in Slack and Microsoft Teams! +#### Start Using Botkube AI Assistant Today! #### Get started with Botkube Cloud Artificial Intelligence (AI) and its counterpart, GPT (generative pre-trained transformer), have been making incredible progress over the past year. Large Language Models power tools like ChatGPT to answer almost any question using the collective knowledge stored over years on the Internet. -And more recently, AI has entered the Kubernetes ecosystem. Throughout the past year, the industry has seen AI help with Kubernetes cost optimization, security management, troubleshooting, and more. So, the Botkube team harnessed the power of ChatGPT to answer questions and give recommendations on troubleshooting Kubernetes clusters with our new \[AI Troubleshooting feature called Doctor\](https://docs.botkube.io/usage/executor/doctor). -‍ +And more recently, AI has entered the Kubernetes ecosystem. Throughout the past year, the industry has seen AI help with Kubernetes cost optimization, security management, troubleshooting, and more. So, the Botkube team harnessed the power of ChatGPT to answer questions and give recommendations on troubleshooting Kubernetes clusters with our new [AI Troubleshooting feature called Doctor](https://docs.botkube.io/usage/executor/doctor). ‍ ‍ -Learn more about how we developed Botkube’s Doctor (ChatGPT) plugin during an internal Hackathon in Pawel’s \[blog post\](https://botkube.io/blog/building-a-chatgpt-plugin-from-ideation-to-implementation). +Learn more about how we developed Botkube’s Doctor (ChatGPT) plugin during an internal Hackathon in Pawel’s [blog post](https://botkube.io/blog/building-a-chatgpt-plugin-from-ideation-to-implementation). -\## Using ChatGPT with Kubernetes +Using ChatGPT with Kubernetes +----------------------------- Using ChatGPT to troubleshoot issues in your Kubernetes cluster can save time and streamline your workflow. GPT (generative pre-trained transformer) automates many of the tedious and time-consuming tasks involved in troubleshooting, allowing you to focus on more important tasks. Additionally, ChatGPT's ability to analyze your cluster configuration and resource usage can help you optimize your cluster for better performance and cost savings. -\## How Botkube Makes ChatGPT for Kubernetes Even Better +How Botkube Makes ChatGPT for Kubernetes Even Better +---------------------------------------------------- -Now, through the ChatOps-based interface in communication platforms like \[Slack, MS Teams, Discord\](http://botkube.io/integrations), Botkube users can now interact with ChatGPT and get recommendations while troubleshooting Kubernetes. Even though Kubernetes has been widely adopted over the past few years, there are still many developers and Ops teams who struggle with the complexity of Kubernetes. The ChatGPT plugin will help beginner and intermediate K8s users who are faced with troubleshooting issues or questions without the need for a Google search on Kubernetes documentation. every error they encounter. +Now, through the ChatOps-based interface in communication platforms like [Slack, MS Teams, Discord](http://botkube.io/integrations), Botkube users can now interact with ChatGPT and get recommendations while troubleshooting Kubernetes. Even though Kubernetes has been widely adopted over the past few years, there are still many developers and Ops teams who struggle with the complexity of Kubernetes. The ChatGPT plugin will help beginner and intermediate K8s users who are faced with troubleshooting issues or questions without the need for a Google search on Kubernetes documentation. every error they encounter. -\## Common Use Cases with ChatGPT and Botkube +Common Use Cases with ChatGPT and Botkube +----------------------------------------- There are many ways to use ChatGPT when troubleshooting Kubernetes clusters. AI can help analyze logs, metrics, and other data from your Kubernetes cluster to identify issues – then returns recommendations on how to fix and improve errors and issues. -Here's a few use cases as examples: -\### Assistance for Beginner Kubernetes Users +Here's a few use cases as examples: + +### Assistance for Beginner Kubernetes Users ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c7f3a7c42051dab4872cab_8hyWVq9NOkFLCQpe-EqzxKczhU5VIqqG_bm2kP876TdzysK0Z3PGJOXCBF3aPo8wIV9w8bC5n77ksg5I62jg7KlzmZpnmxNRmP2yvLTrxWZaHYv2tZFxGfQAo21ky2infXvJraVs4RbpiM4Jiyl1ulA.png) -After the Doctor plugin is installed, users are able to use the \`Get Help\` button located under incoming error events, like the one shown above. This helps lower the barrier of entry for new Kubernetes and/or Botkube users. +After the Doctor plugin is installed, users are able to use the `Get Help` button located under incoming error events, like the one shown above. This helps lower the barrier of entry for new Kubernetes and/or Botkube users. -The Get Help action passes the error data to ChatGPT, which returns a response with actionable buttons to execute commands, like \`kubectl describe pod\` or \`kubectl logs pod\`, instead of scouring the Internet for the correct answer. +The Get Help action passes the error data to ChatGPT, which returns a response with actionable buttons to execute commands, like `kubectl describe pod` or `kubectl logs pod`, instead of scouring the Internet for the correct answer. Users can also ask ChatGPT specific questions directly from the interface. Users can ask questions about Kubernetes, like “Where does Kubernetes store its state?” to tutorial-like questions like “How do I create a Pod?” -_\*Keep in mind that the ChatGPT plugin will only give recommendations and expects the Botkube user to execute commands.\*_ +__Keep in mind that the ChatGPT plugin will only give recommendations and expects the Botkube user to execute commands.__ -\### ChatGPT Recommendations +### ChatGPT Recommendations ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64c7f3b7be2361ae1bb5afd0_LEr5f9Rr-O1pgKD_dYqFRG8GcwopzDWXYkDiVyEL3as3vJF3r1DQhDHa4SZs0sQD2NmW8sHJ3XUVMxUAp5z8WJx-mIuyXanea4788oniZnR0o4m2UrCZXKe-Uj8RZufiLihfB__BQYzgNo3uG2IrIwY.png) -The new Doctor plugin allows you to integrate \[Botkube's existing Kubernetes recommendations\](https://www.youtube.com/watch?v=9D2tASyx7eA) derived from cluster logs to receive personalized suggestions based on the specific information extracted from your Kubernetes cluster. +The new Doctor plugin allows you to integrate [Botkube's existing Kubernetes recommendations](https://www.youtube.com/watch?v=9D2tASyx7eA) derived from cluster logs to receive personalized suggestions based on the specific information extracted from your Kubernetes cluster. Whether it's optimizing resource allocation, enhancing security measures, or improving overall performance, the Doctor plug-in empowers users with valuable insights to make informed decisions for their Kubernetes environments. -\### Troubleshooting Automations +### Troubleshooting Automations -Users can harness ChatGPT capabilities to craft custom Botkube configurations and \[automated actions\](https://docs.botkube.io/usage/automated-actions) effortlessly, working seamlessly with other plugins. By leveraging Slack interactivity as a command builder, users can efficiently interact with the system, receiving tailored suggestions for automations that directly address the specific challenges encountered within their Kubernetes cluster. The Doctor plug-in empowers users to find precise solutions and execute commands with ease, streamlining the troubleshooting process and enhancing overall cluster management. +Users can harness ChatGPT capabilities to craft custom Botkube configurations and [automated actions](https://docs.botkube.io/usage/automated-actions) effortlessly, working seamlessly with other plugins. By leveraging Slack interactivity as a command builder, users can efficiently interact with the system, receiving tailored suggestions for automations that directly address the specific challenges encountered within their Kubernetes cluster. The Doctor plug-in empowers users to find precise solutions and execute commands with ease, streamlining the troubleshooting process and enhancing overall cluster management. -\## Is ChatGPT Safe to Use in Kubernetes? +Is ChatGPT Safe to Use in Kubernetes? +------------------------------------- -Giving access to your Kubernetes clusters in production to _\*any\*_ tool can be nerve-wracking. We take our users’ data and security seriously. Luckily, ChatGPT in Botkube only generates information and recommendations based on what you ask it and will not execute any commands. Take a look at our \[Terms of Service\](https://app.botkube.io/terms-of-service), \[End User License Agreement\](https://app.botkube.io/eula) and \[Privacy Policy\](https://app.botkube.io/privacy-policy). +Giving access to your Kubernetes clusters in production to __any__ tool can be nerve-wracking. We take our users’ data and security seriously. Luckily, ChatGPT in Botkube only generates information and recommendations based on what you ask it and will not execute any commands. Take a look at our [Terms of Service](https://app.botkube.io/terms-of-service), [End User License Agreement](https://app.botkube.io/eula) and [Privacy Policy](https://app.botkube.io/privacy-policy). -\## Get Started with Botkube’s Doctor Plugin +Get Started with Botkube’s Doctor Plugin +---------------------------------------- -Ready to try it out on your own? The easiest way to configure it is through the \[Botkube web app\](https://app.botkube.io/) if your cluster is connected. Otherwise you can enable it in your \[Botkube YAML configuration\](https://docs.botkube.io/configuration/executor/doctor). +Ready to try it out on your own? The easiest way to configure it is through the [Botkube web app](https://app.botkube.io/) if your cluster is connected. Otherwise you can enable it in your [Botkube YAML configuration](https://docs.botkube.io/configuration/executor/doctor). -Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. Find out how to use the Doctor plugin in the \[documentation\](https://docs.botkube.io/usage/executor/doctor). +Once enabled, you can ask questions about specific resources or ask free-form questions, directly from any enabled channel. Find out how to use the Doctor plugin in the [documentation](https://docs.botkube.io/usage/executor/doctor). -We’d love to hear how you are using ChatGPT to troubleshoot your Kubernetes clusters! Share your experiences with us in the Botkube \[Slack community\](http://join.botkube.io/) or \[email our Developer Advocate, Maria\](mailto:maria@kubeshop.io) and we’ll send you some fun swag. +We’d love to hear how you are using ChatGPT to troubleshoot your Kubernetes clusters! Share your experiences with us in the Botkube [Slack community](http://join.botkube.io/) or [email our Developer Advocate, Maria](mailto:maria@kubeshop.io) and we’ll send you some fun swag. diff --git a/hack/assistant-setup/content/botkube.io__case-studies__civo.md b/hack/assistant-setup/content/botkube.io__case-studies__civo.md index 5133a60..21e856c 100644 --- a/hack/assistant-setup/content/botkube.io__case-studies__civo.md +++ b/hack/assistant-setup/content/botkube.io__case-studies__civo.md @@ -3,36 +3,39 @@ Title: Case Study | Streamlining Helm Deployments with Botkube - The Shawn Editi URL Source: https://botkube.io/case-studies/civo Markdown Content: -Introduction ------------- +### Introduction In this case study, we explore how Shawn, a seasoned DevOps engineer, utilizes Botkube to address challenges in a critical aspect of his Kubernetes workflows: Helm deployments. -### The Problem +The Problem +----------- -#### Mastering Helm Deployments +**Mastering Helm Deployments** Shawn faces challenges when dealing with multiple Helm charts, striving to combine them into a unified deployment while ensuring accuracy. This complexity requires a solution that streamlines the process and maintains the correctness of the combined charts. -### The Challenge +The Challenge +------------- -#### Combining Helm Chart Deployments +**Combining Helm Chart Deployments** The challenge lies in the intricate process of combining multiple Helm charts. Currently, this is often a guessing game, requiring expertise to merge two similar charts effectively. Additionally, much of the work is done in the CLI terminal, hindering the deployment process. -### Requirements for Use Case +**Requirements for Use Case** To address these challenges, a working solution should enable Shawn to combine Helm charts seamlessly, incorporating guardrails and checks to ensure correctness. -### The Solution +The Solution +------------ -#### Mastering Helm Deployments +**Mastering Helm Deployments** Shawn leverages Botkube to efficiently combine multiple Helm charts. Shawn combines charts and validates their correctness using Botkube. The new Botkube Cloud interface further enhances this process, allowing users to select applications through checkboxes, automating the combination and deployment seamlessly. -### Results and Benefits +Results and Benefits +-------------------- -#### Mastering Helm Deployments Benefits +**Mastering Helm Deployments Benefits** * Efficient combination of multiple Helm charts. * Validation of combined charts for correctness. @@ -45,7 +48,6 @@ Looking ahead, Botkube envisions further integrations to enhance the Kubernetes In conclusion, Shawn's journey with Botkube highlights the tool's adaptability in addressing intricate deployment challenges. As Shawn continues to evolve in his role, Botkube remains an indispensable ally in his Kubernetes endeavors. -Watch Shawn Explain this on Our Office Hours Live Webinar ---------------------------------------------------------- +#### Watch the Webinar -Watch Botkube's Office Hours with Shawn, a seasoned Civo Cloud Ambassador, and Maria Ashby, Botkube's developer relations expert, as they delve into combining Helm Charts. In this engaging discussion, discover Shawn's firsthand experiences leveraging Botkube's integration with Slack to foster seamless communication within Kubernetes clusters, making it an insightful watch for both seasoned professionals and those new to the Kubernetes landscape. +Watch Shawn explain this in Botkube's Office Hours Webinar with Shawn, a seasoned Civo Cloud Ambassador, and Maria Ashby, Botkube's developer relations expert, as they delve into combining Helm Charts. In this engaging discussion, discover Shawn's firsthand experiences leveraging Botkube's integration with Slack to foster seamless communication within Kubernetes clusters, making it an insightful watch for both seasoned professionals and those new to the Kubernetes landscape. diff --git a/hack/assistant-setup/content/botkube.io__contact.md b/hack/assistant-setup/content/botkube.io__contact.md index 43ce93b..20fb487 100644 --- a/hack/assistant-setup/content/botkube.io__contact.md +++ b/hack/assistant-setup/content/botkube.io__contact.md @@ -9,7 +9,7 @@ Responsive Product -[Features](https://botkube.io/features)[Integrations](https://botkube.io/integrations)[Case studies](https://botkube.io/case-studies) +[Integrations](https://botkube.io/integrations)[Case studies](https://botkube.io/case-studies)[Features](https://botkube.io/features) [Pricing](https://botkube.io/pricing) @@ -19,19 +19,19 @@ Support Company -[About Us](https://botkube.io/about)[Blog](https://botkube.io/blog)[News](https://botkube.io/news)[Events](https://botkube.io/events)[Contact Us](https://botkube.io/contact) +[About Us](https://botkube.io/about)[Events](https://botkube.io/events)[Blog](https://botkube.io/blog)[News](https://botkube.io/news)[Contact Us](https://botkube.io/contact) -[Sign in](https://app.testkube.io/) +[Sign in](https://app.botkube.io/) [Get started](#)[Get started](https://app.botkube.io/) [Sign in](https://app.botkube.io/) -[Get Started](https://app.botkube.io/) +[Get Demo](https://botkube.io/demo)[Get Started](https://app.botkube.io/) Use the form to leave us a message or connect with us on social: -[](https://github.com/kubeshop/botkube)[](https://join.botkube.io/)[](https://twitter.com/botkube_io)[](https://www.linkedin.com/showcase/botkube/)[](https://www.youtube.com/playlist?list=PL2Vye-us8_x_5eqYQTBq7ZywupscaW5yA) +[](https://www.youtube.com/playlist?list=PL2Vye-us8_x_5eqYQTBq7ZywupscaW5yA)[](https://github.com/kubeshop/botkube)[](https://twitter.com/botkube_io)[](https://join.botkube.io/)[](https://www.linkedin.com/showcase/botkube/) ![Image 2](https://assets-global.website-files.com/633705de6adaa38599d8e258/64de5389c7d816d1f6530501_botkube-status-icon.svg) diff --git a/hack/assistant-setup/content/botkube.io__demo.md b/hack/assistant-setup/content/botkube.io__demo.md index 336b1af..a9494cb 100644 --- a/hack/assistant-setup/content/botkube.io__demo.md +++ b/hack/assistant-setup/content/botkube.io__demo.md @@ -6,7 +6,7 @@ Markdown Content: See Botkube in Action --------------------- -#### The easiest way to see the best of Botkube is to try it yourself. The DIY installation\* only takes a few minutes to get a fully functional Botkube environment. +The easiest way to see the best of Botkube is to [try it yourself](https://app.botkube.io/). The DIY installation\* only takes a few minutes to get a fully functional Botkube environment. \*This requires: diff --git a/hack/assistant-setup/content/botkube.io__features.md b/hack/assistant-setup/content/botkube.io__features.md index 4465c94..2979ec8 100644 --- a/hack/assistant-setup/content/botkube.io__features.md +++ b/hack/assistant-setup/content/botkube.io__features.md @@ -3,21 +3,18 @@ Title: Features URL Source: https://botkube.io/features Markdown Content: -[![Image 1: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) - Empowering DevOps with AI-Powered Kubernetes Troubleshooting ------------------------------------------------------------ Troubleshoot K8s Like a Pro, No Expert Knowledge Required ---------------------------------------------------------- -### **Real-Time Visibility** +### Real-Time Visibility Receive instant notifications and context-rich alerts for all your Kubernetes events. -![Image 2: Monitoring Kubernetes notifications in chat platforms](https://assets-global.website-files.com/633705de6adaa38599d8e258/635bdb36e4f4074412c48a50_act-on-events.gif) +[![Image 1: Monitoring Kubernetes notifications in chat platforms](https://assets-global.website-files.com/633705de6adaa38599d8e258/635bdb36e4f4074412c48a50_act-on-events.gif)](#) -![Image 3: ChatOps for Kubernetes](https://assets-global.website-files.com/633705de6adaa38599d8e258/635bdb5fc5a7514b6f2b08a7_kc-builder-min.gif) +[![Image 2: ChatOps for Kubernetes](https://assets-global.website-files.com/633705de6adaa38599d8e258/635bdb5fc5a7514b6f2b08a7_kc-builder-min.gif)](#) ### ChatOps Management @@ -27,9 +24,9 @@ Act on events directly in the collaboration platform (including mobile apps) by Actions allow you to automatically run commands based on specific events and see the results in the event message. Gather logs and other details on errors, get descriptions of newly created resources, and even auto-rollback failed deployments and upgrades with simple configuration steps. -[Take a closer look ![Image 4](https://assets-global.website-files.com/633705de6adaa38599d8e258/64025d7fab04582144112fc7_Screenshot%202023-02-27%20at%2017.42%201.png)](#)![Image 5: Automate K8s maintenance tasks](https://assets-global.website-files.com/633705de6adaa38599d8e258/642da9080827c967a39b0043_automation_new.gif) +[![Image 3: Automate K8s maintenance tasks](https://assets-global.website-files.com/633705de6adaa38599d8e258/642da9080827c967a39b0043_automation_new.gif)](#) -![Image 6: Collaboration with developer teams managing K8s](https://assets-global.website-files.com/633705de6adaa38599d8e258/6348669b8c031b85668d3a2b_KVP1-Monitoring.gif) +[![Image 4: Collaboration with developer teams managing K8s](https://assets-global.website-files.com/633705de6adaa38599d8e258/6348669b8c031b85668d3a2b_KVP1-Monitoring.gif)](#) ### Collaboration @@ -39,9 +36,9 @@ Monitoring and troubleshooting is done in an environment where you chat and coll Extend Botkube with plugins to add new sources and executors for any tools. Enable any tool for ChatOps and automation with easy-to-use APIs and Botkube as the engine. -![Image 7: Quickly connect multiple cloud native tools](https://assets-global.website-files.com/633705de6adaa38599d8e258/6408f8feef5f2a301037ac23_botkube-diagr-01.svg) +[![Image 5: Quickly connect multiple cloud native tools](https://assets-global.website-files.com/633705de6adaa38599d8e258/6408f8feef5f2a301037ac23_botkube-diagr-01.svg)](#) -[![Image 8: Manage multiple Kubernetes Clusters from one channel](https://assets-global.website-files.com/633705de6adaa38599d8e258/64385d9ea0e4ca059b5a7a1d_Botkube.png)](#) +[![Image 6: Collaboration with developer teams managing K8s](https://assets-global.website-files.com/633705de6adaa38599d8e258/6348669b8c031b85668d3a2b_KVP1-Monitoring.gif)](#) ### Multi-cluster Management @@ -51,4 +48,4 @@ Create and manage Botkube configurations for all of your Kubernetes clusters in See a consolidated view of events and notifications received via Botkube for all of your clusters. You can also see an audit of all commands run via Botkube in the same filterable log. The log allows you to correlate actions and events to easily trace and troubleshoot issues. -[![Image 9: Full traceable audit log of DevOps activity](https://assets-global.website-files.com/633705de6adaa38599d8e258/64385e6998cfac2dfc8d887f_Event%20and%20Audit%20Logs.png)](#) +[![Image 7: Full traceable audit log of DevOps activity](https://assets-global.website-files.com/633705de6adaa38599d8e258/64385e6998cfac2dfc8d887f_Event%20and%20Audit%20Logs.png)](#) diff --git a/hack/assistant-setup/content/botkube.io__integration__chatgpt-botkube-kubernetes-integration.md b/hack/assistant-setup/content/botkube.io__integration__chatgpt-botkube-kubernetes-integration.md index 8d6595b..25e3082 100644 --- a/hack/assistant-setup/content/botkube.io__integration__chatgpt-botkube-kubernetes-integration.md +++ b/hack/assistant-setup/content/botkube.io__integration__chatgpt-botkube-kubernetes-integration.md @@ -11,22 +11,41 @@ ChatGPT is a large language model (LLM) from OpenAI that can be used to help Dev * Troubleshooting a Kubernetes deployment that is not working properly. * Documenting a Kubernetes deployment for future reference. -ChatGPT is still under development, but it has the potential to be a valuable tool for DevOps engineers and platform engineers who deploy applications to Kubernetes. After seeing the benefits that Chat GPT can bring deploying applications into Kubernetes, a common question is how can we get that help faster? This is where the Botkube Kubernetes Doctor AI assistant comes into help! +ChatGPT is still under development, but it has the potential to be a valuable tool for DevOps engineers and platform engineers who deploy applications to Kubernetes. After seeing the benefits that Chat GPT can bring deploying applications into Kubernetes, a common question is how can we get that help faster? This is where the Botkube [Kubernetes AI assistant](https://botkube.io/blog/real-time-platform-engineer-advice-ai-assistant) comes into help! -**ChatGPT + Botkube K8s Integration (The K8s Doc)** ---------------------------------------------------- +**ChatGPT + Botkube K8s Integration (No Installation Needed!)** +--------------------------------------------------------------- -Botkube Doctor is a new integration that allows ChatGPT to be used to troubleshoot Kubernetes problems. Botkube Doctor connects to your Kubernetes clusters and sends notifications to Slack or Teams when there are errors. ChatGPT can then be used to read the error message and suggest a solution. If the solution is a command, ChatGPT can also run the command directly from Slack or Teams. +### Botkube's Kubernetes AI Assistant: Now Even Smarter with Version 1.11 -This integration makes ChatGPT better and quicker at troubleshooting Kubernetes in a few ways. First, it allows ChatGPT to see the error message in context. This means that ChatGPT can understand the cause of the error and suggest a more accurate solution. Second, it allows ChatGPT to run commands directly from Slack or Teams. This means that the platform engineer can quickly and easily fix the problem without having to leave their chat application. +Botkube's Kubernetes AI Assistant is a powerful integration that leverages the capabilities of a large language model to troubleshoot Kubernetes issues directly within your preferred chat platform. With version 1.11, the AI Assistant has been significantly enhanced to provide deeper insights and greater automation for an even more seamless experience. It also uses the latest version of GPT 4-0 LLM along with the other known cluster information to pull answers from a custom data set for your cluster! -Overall, the Botkube Doctor Kubernetes Integration makes ChatGPT a more powerful and versatile tool for troubleshooting Kubernetes problems. This integration is the ultimate Chat Operation plugin for Kubernetes, as it allows platform engineers to quickly and easily diagnose and fix Kubernetes problems from within their chat application. +### New in Version 1.11: -Here are some additional benefits of the Botkube Doctor Kubernetes ai Integration: +The AI Assistant now directly integrates with your Kubernetes cluster, actively monitoring and analyzing pods, namespaces, services, and other resources. This allows it to: -* It can help to reduce the time it takes to troubleshoot Kubernetes problems. -* It can help to improve the accuracy of troubleshooting solutions. -* It can help to reduce the number of errors in Kubernetes deployments. -* It can help to improve the security and compliance of Kubernetes deployments. +* **Proactively identify issues:** The AI Assistant detects potential problems in real-time, such as pod failures, resource constraints, or configuration errors, even before they escalate. +* **Validate service health:** It confirms if services are running and accessible, ensuring your applications are available and performing as expected. +* **Provide context-aware recommendations:** By understanding the current state of your cluster, the AI Assistant offers tailored suggestions and solutions specific to your environmen. -Overall, the Botkube Doctor Kubernetes Integration is a valuable tool for DevOps engineers and platform engineers who deploy applications to Kubernetes. It can be used to create a Kubernetes Chatgpt bot for troubleshooting deployment or running errors. +### How it Works: + +1. **Seamless Integration:** Connect Botkube to your Kubernetes cluster and your preferred chat platform (e.g., Slack, Teams). +2. **Real-time Monitoring:** The AI Assistant continuously observes your cluster, analyzing events and logs for potential issues. +3. **Intelligent Troubleshooting:** When a problem is detected, the AI Assistant sends notifications to your chat platform, along with relevant context and actionable recommendations. +4. **Interactive Collaboration:** Team members can discuss and resolve issues within the chat platform, leveraging the AI Assistant's expertise and insights. + +![Image 1: Controlling Kubernetes Namespaces with AI Assistant](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664608ed182626a2ce3dba8d_Botkube%20AI%20Assistant%20GIF.gif) + +Using the Kubernetes AI Assistant to control Namespaces + +### Benefits: + +* **Accelerated Troubleshooting:** Quickly identify and resolve Kubernetes problems, reducing downtime and improving system reliability. +* **Enhanced Observability:** Gain deeper insights into your cluster's health and performance, empowering you to take proactive measures. +* **Improved Collaboration:** Streamline communication and troubleshooting workflows within your team's familiar chat environment. +* **Increased Productivity:** Automate routine tasks and empower team members to self-service, freeing up valuable time for other priorities. + +**Unlock the full potential of Kubernetes with Botkube's Kubernetes AI Assistant!** + +‍ diff --git a/hack/assistant-setup/content/botkube.io__integration__teams.md b/hack/assistant-setup/content/botkube.io__integration__teams.md index 0f2671a..f0df193 100644 --- a/hack/assistant-setup/content/botkube.io__integration__teams.md +++ b/hack/assistant-setup/content/botkube.io__integration__teams.md @@ -10,6 +10,10 @@ When developers seek timely notifications regarding their cluster's status, they Addressing concerns from developer teams using Microsoft, we've diligently optimized Botkube to seamlessly function within Azure's Kubernetes environment. Our dedicated efforts ensure a smooth experience for teams compelled to operate in Azure, Microsoft Teams, and other Microsoft products, guaranteeing a hassle-free setup for Kubernetes ChatOps in the Microsoft ecosystem. +![Image 1: Pulling Kubernetes Logs from Teams](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664ca624ed57bd2274c840a6_Teams%20AI%20helper.jpg) + +Running a Kubectl command in Microsoft Teams with Botkube + ### **Now with a Kubernetes AI Assistant Built In!** Turn Microsoft Teams into your Kubernetes control room with Botkube's Teams plugin. This intelligent Kubernetes copilot delivers timely alerts and empowers you to troubleshoot complex Kubernetes errors collaboratively within Teams. Botkube simplifies Kubernetes management, ensuring your team can quickly address and resolve issues. diff --git a/hack/assistant-setup/content/botkube.io__integrations.md b/hack/assistant-setup/content/botkube.io__integrations.md index cb09288..06cefd3 100644 --- a/hack/assistant-setup/content/botkube.io__integrations.md +++ b/hack/assistant-setup/content/botkube.io__integrations.md @@ -3,9 +3,89 @@ Title: Integrations URL Source: https://botkube.io/integrations Markdown Content: -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +Product -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +[Integrations](https://botkube.io/integrations)[Case studies](https://botkube.io/case-studies)[Features](https://botkube.io/features) + +[Pricing](https://botkube.io/pricing) + +Support + +[Overview](https://botkube.io/support)[Docs](https://docs.botkube.io/)[Learn](https://botkube.io/learn) + +Company + +[About Us](https://botkube.io/about)[Events](https://botkube.io/events)[Blog](https://botkube.io/blog)[News](https://botkube.io/news)[Contact Us](https://botkube.io/contact) + +[Sign in](https://app.botkube.io/) + +[Get started](#)[Get started](https://app.botkube.io/) + +[Sign in](https://app.botkube.io/) + +[Get Demo](https://botkube.io/demo)[Get Started](https://app.botkube.io/) + +![Image 2](https://assets-global.website-files.com/633705de6adaa38599d8e258/63d3f1f94ceb7a745da5f865_bk-star_01.svg)![Image 3](https://assets-global.website-files.com/633705de6adaa38599d8e258/63d3f1f94ceb7a745da5f865_bk-star_01.svg)![Image 4](https://assets-global.website-files.com/633705de6adaa38599d8e258/63d3f1f94ceb7a745da5f865_bk-star_01.svg)![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/63d3f1f94ceb7a745da5f865_bk-star_01.svg)![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/63d3f1f94ceb7a745da5f865_bk-star_01.svg)![Image 7](https://assets-global.website-files.com/633705de6adaa38599d8e258/63d3f1f94ceb7a745da5f865_bk-star_01.svg)![Image 8](https://assets-global.website-files.com/633705de6adaa38599d8e258/63d3efd5bb94697bcc007ed7_botkube-integrations-hero.webp) + +Botkube Integrations +-------------------- + +An app that helps you monitor your Kubernetes cluster, debug critical deployments & gives recommendations for standard practices + +[All integrations](#) + +[Executors](#) + +[Communication Platforms](#) + +[CI/CD](#) + +[### Microsoft Teams](https://botkube.io/integration/teams)[![Image 9: Microsoft Teams & Botkube K8s Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6566556e0b8319198abb4cb1_ms-teams_logo_white.svg)](https://botkube.io/integration/teams) + +[![Image 10](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Get Started with Teams](https://docs.botkube.io/installation/teams/)[Learn more](https://botkube.io/integration/teams) + +[### Slack](https://botkube.io/integration/slack)[![Image 11: Slack & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6414788a6932f578c90e2e5c_Slack%20Logo%20White.svg)](https://botkube.io/integration/slack) + +[![Image 12](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Cloud App for Slack](https://docs.botkube.io/installation/slack/cloud-slack)[Learn more](https://botkube.io/integration/slack) + +[### Helm](https://botkube.io/integration/helm)[![Image 13: Helm & Botkube Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63ee296a7fd3a57324eb919c_helm-horizontal-white.png)](https://botkube.io/integration/helm) + +[![Image 14](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Botkube's Helm Chart](https://docs.botkube.io/configuration/executor/helm)[Learn more](https://botkube.io/integration/helm) + +[### Custom Kubernetes Executor](https://botkube.io/integration/custom-executor-plugin)[![Image 15: Botkube's Custom Executor Plugin](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65807deb6619cea70447048d_Custom%20Icon.png)](https://botkube.io/integration/custom-executor-plugin) + +[![Image 16](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Suggest to the Community](https://docs.botkube.io/plugin/custom-executor)[Learn more](https://botkube.io/integration/custom-executor-plugin) + +[### Argo CD](https://botkube.io/integration/argo-cd-botkube-kubernetes-integration)[![Image 17: Argo CD & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6566534aebaedc232b690ec0_argocd-large_wh.svg)](https://botkube.io/integration/argo-cd-botkube-kubernetes-integration) + +[![Image 18](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Argo Workflow Tutorial](https://docs.botkube.io/configuration/source/argocd/)[Learn more](https://botkube.io/integration/argo-cd-botkube-kubernetes-integration) + +[### Flux CD](https://botkube.io/integration/botkube-flux-kubernetes-integration)[![Image 19: Flux & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656653d66242a01c07278b5e_fluxcdio-icon_wh.svg)](https://botkube.io/integration/botkube-flux-kubernetes-integration) + +[![Image 20](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Flux for Day 2 Ops](https://docs.botkube.io/configuration/executor/flux)[Learn more](https://botkube.io/integration/botkube-flux-kubernetes-integration) + +[### ChatGPT](https://botkube.io/integration/chatgpt-botkube-kubernetes-integration)[![Image 21: ChatGPT & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664fa21e4c4da047c68845cc_openai-white-logomark.png)](https://botkube.io/integration/chatgpt-botkube-kubernetes-integration) + +[![Image 22](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)How it was Built](https://botkube.io/blog/explore-the-new-era-of-aiops-with-botkubes-ai-assistant)[Learn more](https://botkube.io/integration/chatgpt-botkube-kubernetes-integration) + +[### Keptn](https://botkube.io/integration/keptn)[![Image 23: Keptn & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/647e5490bed6105f3c8f780e_keptn-icon-white.png)](https://botkube.io/integration/keptn) + +[![Image 24](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Implementing Keptn](https://docs.botkube.io/usage/source/keptn/)[Learn more](https://botkube.io/integration/keptn) + +[### Kasten](https://botkube.io/integration/kasten)[![Image 25: Kasten & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656654a0b32f1c8761e69099_kasten_logo_white.svg)](https://botkube.io/integration/kasten) + +[![Image 26](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Kasten Infracloud blog](https://docs.kasten.io/latest/index.html)[Learn more](https://botkube.io/integration/kasten) + +[### Discord](https://botkube.io/integration/discord)[![Image 27: Discord & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664fa4fc27ae15fcef1ea9e2_discord-mark-white%201.svg)](https://botkube.io/integration/discord) + +[![Image 28](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Discord Cloud SetUp](https://docs.botkube.io/installation/discord/self-hosted)[Learn more](https://botkube.io/integration/discord) + +[### Mattermost](https://botkube.io/integration/mattermost)[![Image 29: Mattermost & Botkube Kubernetes Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/641474df0af3b5543da3d670_Mattermost%20Logo%20White.svg)](https://botkube.io/integration/mattermost) + +[![Image 30](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Mattermost Listing](https://docs.botkube.io/installation/mattermost/cloud)[Learn more](https://botkube.io/integration/mattermost) + +[### Prometheus](https://botkube.io/integration/prometheus)[![Image 31: Botkube & Prometheus Integration](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63d2e3a1d0cacad985f81353_prometheus-icon-white.svg)](https://botkube.io/integration/prometheus) + +[![Image 32](https://assets-global.website-files.com/633705de6adaa38599d8e258/6419c398f664abccda1d675c_botkube-integration-arrow.svg)Setting up k8s Alerts](https://docs.botkube.io/configuration/source/prometheus)[Learn more](https://botkube.io/integration/prometheus) diff --git a/hack/assistant-setup/content/botkube.io__learn-main-topic__ai.md b/hack/assistant-setup/content/botkube.io__learn-main-topic__ai.md index e096aba..96e2924 100644 --- a/hack/assistant-setup/content/botkube.io__learn-main-topic__ai.md +++ b/hack/assistant-setup/content/botkube.io__learn-main-topic__ai.md @@ -1,11 +1,8 @@ -Title: Botkube.io +Title: Learn about AI | Botkube URL Source: https://botkube.io/learn-main-topic/ai Markdown Content: -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](#) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem diff --git a/hack/assistant-setup/content/botkube.io__learn-main-topic__definitions.md b/hack/assistant-setup/content/botkube.io__learn-main-topic__definitions.md index 2c9fed2..9d11af7 100644 --- a/hack/assistant-setup/content/botkube.io__learn-main-topic__definitions.md +++ b/hack/assistant-setup/content/botkube.io__learn-main-topic__definitions.md @@ -1,11 +1,8 @@ -Title: Botkube.io +Title: Learn about Definitions | Botkube URL Source: https://botkube.io/learn-main-topic/definitions Markdown Content: -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](#) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem diff --git a/hack/assistant-setup/content/botkube.io__learn-main-topic__errors.md b/hack/assistant-setup/content/botkube.io__learn-main-topic__errors.md index 220f293..9fd7715 100644 --- a/hack/assistant-setup/content/botkube.io__learn-main-topic__errors.md +++ b/hack/assistant-setup/content/botkube.io__learn-main-topic__errors.md @@ -1,11 +1,8 @@ -Title: Botkube.io +Title: Learn about Errors | Botkube URL Source: https://botkube.io/learn-main-topic/errors Markdown Content: -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](#) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem diff --git a/hack/assistant-setup/content/botkube.io__learn-main-topic__monitoring-kubernetes.md b/hack/assistant-setup/content/botkube.io__learn-main-topic__monitoring-kubernetes.md index 8f3ff31..85be39a 100644 --- a/hack/assistant-setup/content/botkube.io__learn-main-topic__monitoring-kubernetes.md +++ b/hack/assistant-setup/content/botkube.io__learn-main-topic__monitoring-kubernetes.md @@ -1,11 +1,8 @@ -Title: Botkube.io +Title: Learn about Monitoring Kubernetes | Botkube URL Source: https://botkube.io/learn-main-topic/monitoring-kubernetes Markdown Content: -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](#) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem diff --git a/hack/assistant-setup/content/botkube.io__learn-main-topic__use-cases.md b/hack/assistant-setup/content/botkube.io__learn-main-topic__use-cases.md index a206332..c6fd737 100644 --- a/hack/assistant-setup/content/botkube.io__learn-main-topic__use-cases.md +++ b/hack/assistant-setup/content/botkube.io__learn-main-topic__use-cases.md @@ -1,11 +1,8 @@ -Title: Botkube.io +Title: Learn about Use Cases | Botkube URL Source: https://botkube.io/learn-main-topic/use-cases Markdown Content: -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](#) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem diff --git a/hack/assistant-setup/content/botkube.io__learn.md b/hack/assistant-setup/content/botkube.io__learn.md index b7f9e3b..19d39cf 100644 --- a/hack/assistant-setup/content/botkube.io__learn.md +++ b/hack/assistant-setup/content/botkube.io__learn.md @@ -3,9 +3,6 @@ Title: Learn URL Source: https://botkube.io/learn Markdown Content: -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](#) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 5](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem diff --git a/hack/assistant-setup/content/botkube.io__learn__ai-for-devops.md b/hack/assistant-setup/content/botkube.io__learn__ai-for-devops.md index 16ec42b..c32c451 100644 --- a/hack/assistant-setup/content/botkube.io__learn__ai-for-devops.md +++ b/hack/assistant-setup/content/botkube.io__learn__ai-for-devops.md @@ -3,17 +3,13 @@ Title: Botkube: Revolutionizing Kubernetes Troubleshooting with AI-Power URL Source: https://botkube.io/learn/ai-for-devops Markdown Content: -[![Image 1: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) AI for DevOps: How Botkube's Kubernetes AI Assistant Revolutionizes Troubleshooting ----------------------------------------------------------------------------------- ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65fdbe5e2b0c291bb5ec0536_Botkube%20BLOG%20Thumbnail%20(6).png) -Last updated - -April 18, 2024 - ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a86fdda4d8d06ce598598e_evan%20image.jpg) Evan Witmer @@ -78,10 +74,6 @@ AI for DevOps: How Botkube's Kubernetes AI Assistant Revolutionizes Troubleshoot ![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65fdbe5e2b0c291bb5ec0536_Botkube%20BLOG%20Thumbnail%20(6).png) -Last updated - -April 18, 2024 - ![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a86fdda4d8d06ce598598e_evan%20image.jpg) Evan Witmer diff --git a/hack/assistant-setup/content/botkube.io__learn__ai-tools-for-kubernetes.md b/hack/assistant-setup/content/botkube.io__learn__ai-tools-for-kubernetes.md index 1af2cba..b12f74f 100644 --- a/hack/assistant-setup/content/botkube.io__learn__ai-tools-for-kubernetes.md +++ b/hack/assistant-setup/content/botkube.io__learn__ai-tools-for-kubernetes.md @@ -46,8 +46,6 @@ While tools like K8sGPT provide additional AI capabilities for Kubernetes, it's AI is rapidly transforming Kubernetes management. By streamlining tasks and proactively identifying issues, AI-driven tools pave the way for greater efficiency and reliability within your clusters. Botkube shines brightly in this field, delivering a user-friendly AI assistant that puts the power of Kubernetes expertise at your fingertips, making it an essential tool for any organization using Kubernetes. -‍ - ### About Botkube Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) diff --git a/hack/assistant-setup/content/botkube.io__learn__aiops-tools.md b/hack/assistant-setup/content/botkube.io__learn__aiops-tools.md index 8ffa609..fd2254d 100644 --- a/hack/assistant-setup/content/botkube.io__learn__aiops-tools.md +++ b/hack/assistant-setup/content/botkube.io__learn__aiops-tools.md @@ -35,7 +35,7 @@ In the financial sector, AIOps is employed for fraud detection and prevention. A Botkube has been making waves in the Kubernetes community as the go-to ChatOps tool. It's designed to simplify Kubernetes cluster management by centralizing operations and communications within the team's preferred chat platform, such as Slack. While Botkube's core functionality is already a valuable asset for Kubernetes administrators, its recent integration with [OpenAI's ChatGPT](https://botkube.io/blog/doctor-plug-in-tutorial) takes it to the next level. -[**Botkube**](http://app.botkube.io/) is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. In this blog post, we'll give you an overview of all of Botkube’s newest features from the v1.2.0 release. +[**Botkube**](https://app.botkube.io/) is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. This means you'll gain instant visibility and control over your cluster resources, all without ever having to leave your messaging platform. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. In this blog post, we'll give you an overview of all of Botkube’s newest features from the v1.2.0 release. [Botkube’s Doctor plugin](https://botkube.io/blog/use-chatgpt-to-troubleshoot-kubernetes-errors-with-botkubes-doctor), powered by ChatGPT, provides Kubernetes administrators and DevOps teams with an innovative way to troubleshoot issues within their clusters. No more sifting through logs or running complex commands in the terminal—Botkube's Doctor plugin allows users to harness the power of ChatGPT's natural language understanding to quickly diagnose and resolve problems directly from their Slack channels. @@ -49,5 +49,3 @@ As we peer into the future of IT operations, it's clear that AIOps and ChatOps a Moreover, ChatOps will continue to evolve as a hub for collaboration and automation. With the integration of AI models like ChatGPT becoming more seamless, teams will leverage natural language interfaces for not just troubleshooting but also for complex tasks like infrastructure provisioning, code deployment, and even strategic decision-making. The synergy between ChatOps and AI will blur the lines between human and machine interaction, making IT operations more intuitive and accessible to a wider audience within organizations. In this future landscape, IT professionals will find themselves working alongside AI-powered colleagues, streamlining processes, and focusing on strategic initiatives. The result? Enhanced efficiency, reduced downtime, and a more agile response to the ever-changing technology landscape. The future of AIOps and ChatOps promises not only smoother IT operations but also a more empowered and informed workforce. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__automate-kubernetes-compliance-with-botkube.md b/hack/assistant-setup/content/botkube.io__learn__automate-kubernetes-compliance-with-botkube.md index 4513c2f..5b0cf26 100644 --- a/hack/assistant-setup/content/botkube.io__learn__automate-kubernetes-compliance-with-botkube.md +++ b/hack/assistant-setup/content/botkube.io__learn__automate-kubernetes-compliance-with-botkube.md @@ -53,5 +53,3 @@ Refer to our [Kubectl Cheatsheet](https://botkube.io/learn/kubectl-cheat-sheet) ### **Helm Charts -** Botkube can be deployed with a [Helm Chart](https://botkube.io/learn/helm-charts), making it a great option for developers who are already using Helm. It is also a great way for DevOps engineers to get started with Helm, as Botkube can help them easily deploy Helm Charts and offer suggestions on correcting incorrect Helm Chart deployments. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__best-gitops-tools-for-kubernetes.md b/hack/assistant-setup/content/botkube.io__learn__best-gitops-tools-for-kubernetes.md index 3a69465..e5e6f57 100644 --- a/hack/assistant-setup/content/botkube.io__learn__best-gitops-tools-for-kubernetes.md +++ b/hack/assistant-setup/content/botkube.io__learn__best-gitops-tools-for-kubernetes.md @@ -30,6 +30,4 @@ Now, it's no surprise that Botkube finds its way onto our list (a little bias fr **Conclusion** -------------- -As we conclude our whirlwind tour of the best GitOps tools for Kubernetes, we encourage you to dive deeper into these tools to see which ones align with your Kubernetes management dreams. GitOps isn't just a buzzword; it's a revolution that can streamline your operations and make managing Kubernetes clusters a joyous adventure. So, what are you waiting for? Explore these tools and embark on your own Kubernetes journey today! - -‍ +As we conclude our whirlwind tour of the best GitOps tools for Kubernetes, we encourage you to dive deeper into these tools to see which ones align with your Kubernetes management dreams. GitOps isn't just a buzzword; it's a revolution that can streamline your operations and make managing Kubernetes clusters a joyous adventure. So, what are you waiting for? Explore these tools and embark on your own Kubernetes journey today. diff --git a/hack/assistant-setup/content/botkube.io__learn__chatops.md b/hack/assistant-setup/content/botkube.io__learn__chatops.md index d6c009f..dcc78e0 100644 --- a/hack/assistant-setup/content/botkube.io__learn__chatops.md +++ b/hack/assistant-setup/content/botkube.io__learn__chatops.md @@ -30,4 +30,16 @@ Instead of manually scaling applications up or down based on demand or performan Instead of manually monitoring applications for health status, performance metrics, logs, events, etc., using CLI commands or configuration files (YAML), automation tools can monitor applications automatically using dashboard tools or alerting systems. This can improve the visibility and troubleshooting of the applications. -One way to make Kubernetes activities easier to automate is to use tools that allow users to create aliases or short phrases to reference long CLI commands. Maria put together a [tutorial](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) covering how set up aliases using a ChatOps automation tool like [Botkube](https://botkube.io/?utm_source=learn). +One way to make Kubernetes activities easier to automate is to use tools that allow users to create aliases or short phrases to reference long CLI commands. Maria put together a [tutorial](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) covering how set up aliases using a ChatOps automation tool like Botkube. + +Rising Trend in combining ChatOps with AIOps +-------------------------------------------- + +After moving Kubernetes operation alerts into a chat channel, it is natural for the team to want to be able to take action on these said events. We talked earlier about automating k8s related tasks, but being able to preform true operations for Kubernetes requires the use of [kubectl commands](https://botkube.io/learn/kubectl-cheat-sheet). Botkube has always had a Kubectl plugin to allow ChatOps users to preform, but what if you a developer alone in the chat channel when the DevOps team is OOO? This developer does not know much about operating the Kubernetes cluster. This is where [AIOps](https://botkube.io/learn/use-cases-for-aiops-platform) comes into help with operations and almost become the next iteration of ChatOps. + +In the mentioned example above, a developer with little know how of Kubernetes, because the monitoring was set up to alert the channel in Slack so the developer knows he needs to do something. Now he could go back and look at the chat history if the cluster management channel to see how previous SREs or DevOps engineers solved the issue, but now with AIOps, he can simply ask for a solution to the error. Botkube's AI assistant acts as a perfect example of this with allowing a one button click on the k8s error notification that came in to ask AI what the cause was. If it is something Botkube's kubectl permissions are able to solve, such as changing namespaces, then the assistant will offer to run the appropriate command to solve the issue. + +Bonus Video of Our Team Explaining what ChatOps for Kubernetes Looks Like[‍](https://www.youtube.com/@KunalKushwaha) +-------------------------------------------------------------------------------------------------------------------- + +Kunal Kushwaha hosted us on his show for aspiring software & DevOps engineers. Maria, Botkube's Developer Advocate, speaks with him about how to set up ChatOps for monitoring your Kuberentes Cluster. She also mentions how many users have already set this up and using Botkube for team collaboration around operations management. diff --git a/hack/assistant-setup/content/botkube.io__learn__copying-files-with-kubectl-cp.md b/hack/assistant-setup/content/botkube.io__learn__copying-files-with-kubectl-cp.md index f0eb661..02f832d 100644 --- a/hack/assistant-setup/content/botkube.io__learn__copying-files-with-kubectl-cp.md +++ b/hack/assistant-setup/content/botkube.io__learn__copying-files-with-kubectl-cp.md @@ -57,5 +57,3 @@ The `kubectl cp` command is a valuable asset in your Kubernetes toolkit. It stre To further enhance your Kubernetes experience, consider integrating a tool like Botkube. Not only does Botkube provide other valuable features, but it also allows you to execute `kubectl` commands (including `kubectl cp`) directly from your Slack or Microsoft Teams workspace. Learn more about setting up the `kubectl` executor in Botkube's documentation: [https://docs.botkube.io/configuration/executor/kubectl](https://docs.botkube.io/configuration/executor/kubectl) Additionally, don't forget to take advantage of Botkube's other helpful resources, such as the [kubectl cheat sheet](https://botkube.io/learn/kubectl-cheat-sheet), to optimize your Kubernetes workflow. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__devops-use-cases-for-ai-assisted-kubernetes.md b/hack/assistant-setup/content/botkube.io__learn__devops-use-cases-for-ai-assisted-kubernetes.md new file mode 100644 index 0000000..1dd1785 --- /dev/null +++ b/hack/assistant-setup/content/botkube.io__learn__devops-use-cases-for-ai-assisted-kubernetes.md @@ -0,0 +1,162 @@ +Title: Get to know AI Tools coming to the DevOps space + +URL Source: https://botkube.io/learn/devops-use-cases-for-ai-assisted-kubernetes + +Markdown Content: +In the realm of DevOps, Kubernetes has emerged as a leading platform. It's known for managing containerized applications at scale. + +Yet, managing Kubernetes can be complex. It often involves repetitive tasks and requires keen oversight. + +Enter AI-Assisted Kubernetes. This technology integrates artificial intelligence with Kubernetes. It aims to streamline management and enhance operations. + +In this article, we delve into the various DevOps use cases for AI-Assisted Kubernetes. We'll explore how AI automation and AI for DevOps can revolutionize Kubernetes operations. + +Whether you're a DevOps engineer, an IT professional, or simply interested in AI and Kubernetes, this article is for you. + +Join us as we uncover the benefits and applications of AI in Kubernetes. Let's see how this technology can help you make informed decisions about your Kubernetes strategies. + +Understanding AI-Assisted Kubernetes +------------------------------------ + +AI-Assisted Kubernetes is a blend of artificial intelligence and Kubernetes. It's a technology that brings the power of AI to Kubernetes management and operations. + +AI in this context is used to automate repetitive tasks. It also provides predictive analytics to enhance Kubernetes operations. + +The integration of AI with Kubernetes is not just about automation. It's about making Kubernetes smarter, more efficient, and easier to manage. + +AI-Assisted Kubernetes can transform the way organizations manage their containerized applications. It can lead to significant cost savings and performance enhancements. + +In the following sections, we'll delve deeper into what AI-Assisted Kubernetes is and why it's important. + +### What is AI-Assisted Kubernetes? + +AI-Assisted Kubernetes is a technology that integrates AI with Kubernetes. It uses machine learning and predictive analytics to enhance Kubernetes management and operations. + +This technology can automate repetitive tasks, detect anomalies, and provide real-time insights. It can also help in resource optimization and proactive maintenance. + +In essence, AI-Assisted Kubernetes is about leveraging AI to make Kubernetes smarter and more efficient. + +### The Importance of AI in Kubernetes + +AI plays a crucial role in Kubernetes. It can automate and streamline many aspects of Kubernetes management. + +AI can also enhance the performance and reliability of Kubernetes clusters. It can help in real-time monitoring, anomaly detection, and system troubleshooting. + +Moreover, AI can provide real-time insights for better decision-making. It can lead to significant cost savings and performance enhancements in Kubernetes operations. + +AI Automation in Kubernetes Management +-------------------------------------- + +AI can automate many tasks in Kubernetes management. This automation can save time and reduce the risk of human error. + +AI can automate the deployment of applications, the scaling of resources, and the management of workloads. It can also automate the monitoring and logging of Kubernetes clusters. + +By automating these tasks, AI can free up DevOps teams to focus on more strategic tasks. It can also make Kubernetes management more efficient and reliable. + +AI automation in Kubernetes is not just about doing things faster. It's about doing things smarter, with less effort and fewer mistakes. + +In the following sections, we'll explore how AI can streamline deployment automation and enhance monitoring and logging in Kubernetes. + +### Streamlining Deployment Automation + +AI can streamline the deployment of applications in Kubernetes. It can automate the entire deployment process, from code integration to application rollout. + +AI can also automate the scaling of resources based on workload demands. This can ensure that applications always have the resources they need to perform optimally. + +In essence, AI can make deployment automation in Kubernetes faster, more accurate, and more efficient. + +### Enhancing Monitoring and Logging + +AI can enhance the monitoring and logging of Kubernetes clusters. It can provide real-time insights into the performance and health of applications. + +AI can also detect anomalies and system issues in real time. This can help in proactive maintenance and reduce downtime. + +Moreover, AI can analyze large volumes of log data to identify patterns and trends. This can provide valuable insights for improving system performance and reliability. + +![Image 1: Pulling logs for Kubernetes Cluster from Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664789d8541102b509a99a81_Pulling%20Logs%20from%20Slack.png) + +Botkube's Slack integration lets you Pull Event Logs for Kubernetes Alerts + +AI for Predictive Analytics and Proactive Maintenance +----------------------------------------------------- + +AI can play a crucial role in predictive analytics and proactive maintenance in Kubernetes. It can analyze data from Kubernetes systems to predict future trends and issues. + +This predictive capability can help in proactive maintenance. It can enable DevOps teams to address issues before they impact system performance or cause downtime. + +AI can also detect anomalies in real time. This can help in identifying and resolving system issues quickly and efficiently. + +Moreover, AI can provide insights into resource usage and performance trends. This can help in optimizing resource allocation and improving system performance. + +In the following sections, we'll delve deeper into how AI can aid in predictive maintenance and anomaly detection, and contribute to resource optimization and cost savings. + +### Predictive Maintenance and Anomaly Detection + +AI can enable predictive maintenance in Kubernetes. It can analyze system data to predict potential issues and failures. + +This predictive capability can help in preventing downtime and improving system reliability. It can also reduce the time and effort required for troubleshooting and maintenance. + +Moreover, AI can detect anomalies in system behavior in real time. This can help in identifying and resolving issues before they impact system performance. + +### Resource Optimization and Cost Savings + +AI can help in optimizing the use of resources in Kubernetes. It can analyze resource usage patterns and provide insights for efficient resource allocation. + +This can ensure that applications have the resources they need without wasting resources. It can also lead to significant [cost savings](https://botkube.io/blog/leveraging-botkube-for-kubernetes-cost-optimization-and-reporting). + +Moreover, AI can provide insights into cost optimization strategies. This can help organizations make the most of their Kubernetes deployments while keeping costs under control. + +Scaling and Performance Enhancement with AI +------------------------------------------- + +AI can significantly enhance the scalability and performance of Kubernetes. It can automate the scaling of applications based on workload demands. + +This can ensure that applications have the resources they need to perform optimally at all times. It can also improve the efficiency of Kubernetes deployments. + +Moreover, AI can contribute to performance enhancement and reliability improvements. It can analyze system performance data to identify bottlenecks and potential issues. + +In the following sections, we'll explore how AI can aid in automated scaling and efficiency, and contribute to performance and reliability improvements. + +### Automated Scaling and Efficiency + +AI can automate the scaling of applications in Kubernetes. It can analyze workload demands and adjust resource allocation accordingly. + +This can ensure that applications have the resources they need when they need them. It can also prevent the wastage of resources. + +Moreover, automated scaling can improve the efficiency of Kubernetes deployments. It can ensure that resources are used optimally, leading to cost savings and improved performance. + +### Performance and Reliability Improvements + +AI can enhance the performance and reliability of Kubernetes systems. It can analyze system performance data to identify bottlenecks and potential issues. + +This can help in optimizing system performance and preventing downtime. It can also contribute to the reliability of Kubernetes deployments. + +Moreover, AI can provide insights into performance trends. This can help in making informed decisions about system optimization and capacity planning. + +The Future of AI-Assisted Kubernetes +------------------------------------ + +The integration of AI with Kubernetes is still in its early stages. However, it holds immense potential for transforming Kubernetes management and operations. + +There are challenges to overcome, such as the complexity of implementing AI and the need for specialized skills. But the benefits that AI can bring to Kubernetes are significant. + +In the following sections, we'll discuss the challenges and considerations, and the road ahead for AI and Kubernetes integration. + +### Challenges and Considerations + +Implementing AI in Kubernetes environments can be complex. It requires a deep understanding of both AI and Kubernetes. + +Moreover, there can be challenges related to data privacy and security. These need to be addressed to fully leverage the benefits of AI-Assisted Kubernetes. + +### The Road Ahead for AI and Kubernetes Integration + +The integration of AI and Kubernetes is set to revolutionize DevOps. It can lead to more efficient and intelligent Kubernetes management. + +The future holds exciting possibilities for AI-Assisted Kubernetes. It has the potential to transform IT operations and cloud-native technologies. + +Conclusion +---------- + +AI-Assisted Kubernetes is a promising development in the field of DevOps. It has the potential to significantly enhance Kubernetes management and operations. + +As we continue to explore and understand this integration, we can expect to see more innovative use cases and applications in the near future. diff --git a/hack/assistant-setup/content/botkube.io__learn__exit-code-125-issues.md b/hack/assistant-setup/content/botkube.io__learn__exit-code-125-issues.md index 572d892..228fb9d 100644 --- a/hack/assistant-setup/content/botkube.io__learn__exit-code-125-issues.md +++ b/hack/assistant-setup/content/botkube.io__learn__exit-code-125-issues.md @@ -41,5 +41,3 @@ Conclusion ---------- Exit code 125 errors can be frustrating, but with a little troubleshooting and expert advice, they can be resolved. By understanding what exit codes are and how they work, as well as following the steps outlined in this article, you can successfully troubleshoot and resolve exit code 125 issues. Have you encountered an exit code 125 error before? How did you resolve it? Let us know in the comments. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__failed-to-push-some-refs-to.md b/hack/assistant-setup/content/botkube.io__learn__failed-to-push-some-refs-to.md index 1cdd21b..dfa2f51 100644 --- a/hack/assistant-setup/content/botkube.io__learn__failed-to-push-some-refs-to.md +++ b/hack/assistant-setup/content/botkube.io__learn__failed-to-push-some-refs-to.md @@ -62,5 +62,3 @@ Beyond the manual troubleshooting steps, Botkube steps in to elevate your Git ex When the "Failed to Push Some Refs to" error strikes, Botkube promptly alerts you and your team within those channels. This eliminates the need for constant monitoring and ensures everyone is informed. Your team can then discuss solutions directly within the channel, harnessing the power of collective knowledge to diagnose and resolve the issue. Botkube even empowers you to extend your Git control with [Flux](https://botkube.io/integration/botkube-flux-kubernetes-integration) and [Argo CD](https://botkube.io/integration/argo-cd-botkube-kubernetes-integration) integrations. With Botkube as your trusty companion, tackling those pesky Git errors becomes a collaborative and efficient endeavor. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__fix-the-unable-to-get-local-issuer-certificate-error-in-kubernetes.md b/hack/assistant-setup/content/botkube.io__learn__fix-the-unable-to-get-local-issuer-certificate-error-in-kubernetes.md index 8039424..284a5c4 100644 --- a/hack/assistant-setup/content/botkube.io__learn__fix-the-unable-to-get-local-issuer-certificate-error-in-kubernetes.md +++ b/hack/assistant-setup/content/botkube.io__learn__fix-the-unable-to-get-local-issuer-certificate-error-in-kubernetes.md @@ -3,23 +3,6 @@ Title: Unable to Get Local Issuer Certificate Solved! URL Source: https://botkube.io/learn/fix-the-unable-to-get-local-issuer-certificate-error-in-kubernetes Markdown Content: -Fix "SSL Certificate Problem: Unable to Get Local Issuer Certificate" Error ---------------------------------------------------------------------------- - -![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65fa18185ef2ff8b0ce59fce_LEARN_TN_Errors%20(4).png) - -![Image 2](https://assets-global.website-files.com/plugins/Basic/assets/placeholder.60f9b1840c.svg) - -Table of Contents ------------------ - -* [What is the "ssl certificate problem unable to get local issuer certificate" error?](#what-is-the-ssl-certificate-problem-unable-to-get-local-issuer-certificate-error--2) -* [What causes the "ssl certificate problem unable to get local issuer certificate" error?](#what-causes-the-ssl-certificate-problem-unable-to-get-local-issuer-certificate-error--2) -* [How can you fix the "ssl certificate problem unable to get local issuer certificate" errors?](#how-can-you-fix-the-ssl-certificate-problem-unable-to-get-local-issuer-certificate-errors--2) -* [How to prevent "ssl certificate problem unable to get local issuer certificate" errors?](#how-to-prevent-ssl-certificate-problem-unable-to-get-local-issuer-certificate-errors--2) - -#### Get started with Botkube Cloud - What is the "ssl certificate problem unable to get local issuer certificate" error? ----------------------------------------------------------------------------------- @@ -69,6 +52,29 @@ I hope this article helps you fix the ssl certificate problem unable to ge One final tip, **do not be afraid to search for tooling that helps with troubleshooting of common errors**. Botkube's AI assistant is a great example of a tool that helps with K8s specific troubleshooting tasks. [Try out Botkube for free](https://app.botkube.io/) to get started with collaborative troubleshooting directly in your communications platform. -### About Botkube +Solving the Error using Botkube's AI Troubleshooting Assistant +-------------------------------------------------------------- + +If you do end up using Botkube's Kubernetes [AI troubleshooting assistant](https://botkube.io/blog/explore-the-new-era-of-aiops-with-botkubes-ai-assistant), follow the below steps to help troubleshoot the SSL Certificate error: + +### Step 1 - Start Prompt + +Type in **@botkube ai** into the chat platform to start communicating with our helpful AI assistant + +![Image 1: Prompting AI to check Kubernetes related SSL issue](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663e739b18498714e3ffd411_Botkube%20AI%20prompt.png) + +### Step 2 - Find where the Issue Occurs within the Cluster + +Ask the AI which namespace, pod, or service is causing the 'SSL Certificate Problem: Unable to Get Local Issuer Certificate Error' in my cluster to find where the issue is coming from. With Botube being aware of the k8s cluster it is installed in, it allows our AI Assistant to scan all the resources being used in the cluster to find the source. + +![Image 2: AI finding the cause of Kubernetes error](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663e7600646f66c7c3f9ff46_SSL%20AI%20question%201.png) + +### Step 3 - Ask How to Fix the Error in that Location + +After the AI response tells you where this error is occurring, it is time to ask it how to fix the unable to get certificate error. + +![Image 3: Asking how to fix an SSL located in a Kubernetes Pod](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663e7a1d79a3f8aa5b90904c_AI%20prompt%202.png) + +### Step 4 - Solve the Issue in DNS -Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) +Now unlike some other issues, such as the [OOMKILLED error](https://botkube.io/learn/what-is-oomkilled), Kubectl commands cannot directly fix this issue. So Botkube's assitant cannot take this one fully to a completed issue solved, but by now you show know exactly which domain is causing the issue and in which part of the cluster. Now you will have to go to your DNS provider and renew, reapply, or correct the SSL certificate tied to the domain of the service. The most common domain name service providers are: GoDaddy, Cloudflare, Namecheap, or Google Domains. You will need admin access to the DNS and simply reverify the certificate of the service causing the issue diff --git a/hack/assistant-setup/content/botkube.io__learn__future-of-kubernetes-management.md b/hack/assistant-setup/content/botkube.io__learn__future-of-kubernetes-management.md index 29e7255..d640b9e 100644 --- a/hack/assistant-setup/content/botkube.io__learn__future-of-kubernetes-management.md +++ b/hack/assistant-setup/content/botkube.io__learn__future-of-kubernetes-management.md @@ -31,8 +31,6 @@ Botkube's vision extends beyond in-chat troubleshooting. Here's what's coming: By treating bots as team members, Botkube fosters a shared responsibility model for Kubernetes. This translates to faster problem resolution, greater developer autonomy, and a DevOps team freed to focus on proactive improvements instead of constant firefighting. -‍ - ### About Botkube Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) diff --git a/hack/assistant-setup/content/botkube.io__learn__how-to-debug-crashloopbackoff.md b/hack/assistant-setup/content/botkube.io__learn__how-to-debug-crashloopbackoff.md index 29f9044..4d5b694 100644 --- a/hack/assistant-setup/content/botkube.io__learn__how-to-debug-crashloopbackoff.md +++ b/hack/assistant-setup/content/botkube.io__learn__how-to-debug-crashloopbackoff.md @@ -94,5 +94,3 @@ You are looking for OOMKilled logs or disconnect logs, something that would have At this point you have checked the last 20 lines, and tried to find a back-off restarting failed error. If neither of those show a solution, you will have to pull deployment logs. These can be easily pulled into a file with the kubectl logs -f deploy/ -n command. These deployment logs may show other issues from within the cluster as well. Log for the file paths of your pod and everything that is being deployed there. Look for any error with deploying messages for numbers or names. Now search that code or name of the issue and try to fix the deployment issues. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__how-to-fix-fatal-remote-origin-already-exists-git-error.md b/hack/assistant-setup/content/botkube.io__learn__how-to-fix-fatal-remote-origin-already-exists-git-error.md index ed3afe8..ad6afd6 100644 --- a/hack/assistant-setup/content/botkube.io__learn__how-to-fix-fatal-remote-origin-already-exists-git-error.md +++ b/hack/assistant-setup/content/botkube.io__learn__how-to-fix-fatal-remote-origin-already-exists-git-error.md @@ -90,5 +90,3 @@ Sometimes, the error may arise if you unknowingly executed the "add remote" comm This will display a list of existing remotes along with their associated URLs. If the "origin" remote already points to the URL provided in the tutorial, your repository is ready to go, and no further action is required. By utilizing these diverse approaches, you can overcome the "remote origin already exists" error effectively and advance confidently in your Git endeavors. Let's embrace these solutions and make Git management a seamless experience! - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__is-kubernetes-an-operating-system.md b/hack/assistant-setup/content/botkube.io__learn__is-kubernetes-an-operating-system.md index 0a42dee..8017c36 100644 --- a/hack/assistant-setup/content/botkube.io__learn__is-kubernetes-an-operating-system.md +++ b/hack/assistant-setup/content/botkube.io__learn__is-kubernetes-an-operating-system.md @@ -28,7 +28,20 @@ There are many benefits to using Kubernetes, including: * Portability: Kubernetes is a portable platform, so it can be used to deploy and manage containerized applications on a variety of infrastructure. * Cost-effectiveness: Kubernetes can help to reduce costs by automating the deployment and management of containerized applications. +Kubernetes Becoming more of a Platform than an Operating System +--------------------------------------------------------------- + +While Kubernetes shares some similarities with an operating system, it goes beyond the functionalities of a traditional OS designed for a single machine. Imagine a Linux server running Mint, but instead of being the foundation for everything, it acts as one of the many applications running within Kubernetes. Kubernetes is the platform that orchestrates and manages all these applications, providing the necessary resources and ensuring everything runs smoothly. This shift in perspective is why DevOps engineers who specialize in Kubernetes have begun to refer to themselves as [platform engineers](http://botkube.io/learn/platform-engineering). + **Conclusion** -------------- Kubernetes is a powerful tool that can be used to manage and run containerized applications. It provides a number of benefits, including scalability, reliability, portability, and cost-effectiveness. If you are looking for a way to deploy and manage containerized applications, Kubernetes is a good option to consider. + +If you or your team are considering moving to Kubernetes, we strongly suggest you check out our [Kubernetes AI Assistant](https://botkube.io/blog/real-time-platform-engineer-advice-ai-assistant) as it helps with all stages of Kubernetes. Start a Kubernetes cluster and connect it to Botkube as a first step. It will bring all of your [Kubernetes related alerts](https://botkube.io/learn/turning-kubernetes-k8s-alerts-into-k8s-notifications) into a single Slack or Teams channel. It will also come with a helpful assistant that can solve most common k8s issues. + +Setting up Botkube will also make it easy to deploy other helpful platform engineering tools and bring their notifications into that same chat channel. Check out below our easy install wizard for adding k8s tools directly to your cluster with just a click! + +![Image 1: Adding Kubernetes Plugins from Setup Wizard](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663e3cda91525c34d341c40b_Add%20Plugin%20Botkube.png) + +Select all the plugins your Kubernetes cluster will need with one click! diff --git a/hack/assistant-setup/content/botkube.io__learn__kubectl-cheat-sheet.md b/hack/assistant-setup/content/botkube.io__learn__kubectl-cheat-sheet.md index 6151b68..5796057 100644 --- a/hack/assistant-setup/content/botkube.io__learn__kubectl-cheat-sheet.md +++ b/hack/assistant-setup/content/botkube.io__learn__kubectl-cheat-sheet.md @@ -143,5 +143,3 @@ As seen in the image below, Botkube even gives an option to get kubectl help dir Finally, Botkube introduces the ability to create command aliases, allowing users to assign quick phrases or letters to commonly used kubectl commands. This feature eliminates the need to remember long and complex four-word commands, streamlining the Kubectl process for all users. These features make Botkube an essential tool for any team looking to simplify their Kubectl workflow and increase productivity. Read more about [Kubectl aliases on our blog](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube). ![Image 5: creating a kubectl alias with Botkube's web interface](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64d154cb0dca04c16dae44db_fjOpVIQetAJ-b8hhrWV8fqy3H63TJPAW4zdIkRjc5uh0mlK5hvgU_YUAGOq7OJQXjtxzQTDURFH5tx9-JLL2NFvKNMrEQwbOH2oeHjZsrzaPvzD1iY5cJe8L4dF0tIqnpmdW86WyS2KNhrpzV-ouuJw.png) - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__kubernetes-audit-log-best-practices.md b/hack/assistant-setup/content/botkube.io__learn__kubernetes-audit-log-best-practices.md index 7e2d76d..4c11d4c 100644 --- a/hack/assistant-setup/content/botkube.io__learn__kubernetes-audit-log-best-practices.md +++ b/hack/assistant-setup/content/botkube.io__learn__kubernetes-audit-log-best-practices.md @@ -29,5 +29,3 @@ The Audit Log feature not only enhances accountability but also fosters a cultur In the ever-shifting landscape of Kubernetes management, the ability to harness Audit Logs has emerged as an indispensable practice. Botkube Cloud's Audit Log feature not only fortifies security measures but also demystifies the roles of Platform engineers while promoting accountability within DevOps and SRE teams. As we've explored in this article, the Audit Log provides a panoramic view of all activities within your Kubernetes clusters, empowering organizations to track and trace every command issued and assess the performance of their technical teams. With the Audit Log feature in place, organizations are better equipped than ever to safeguard their Kubernetes infrastructure, optimize operations, and elevate their Kubernetes management strategies. It's a tool that bridges the gap between the complexity of Kubernetes and the need for transparency, enabling leaders to make informed decisions, and ensuring that the dynamic field of Platform engineering thrives in alignment with organizational goals. In the ever-evolving Kubernetes ecosystem, mastering the art of Audit Logs with Botkube Cloud is the key to securing, optimizing, and understanding the full potential of your Kubernetes clusters. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__kubernetes-copilot.md b/hack/assistant-setup/content/botkube.io__learn__kubernetes-copilot.md new file mode 100644 index 0000000..7e6496f --- /dev/null +++ b/hack/assistant-setup/content/botkube.io__learn__kubernetes-copilot.md @@ -0,0 +1,33 @@ +Title: Kubernetes Copilot: Your AI-Powered Guide to Kubernetes Mastery + +URL Source: https://botkube.io/learn/kubernetes-copilot + +Markdown Content: +Kubernetes, while powerful, is notoriously complex to manage. As clusters grow and the number of interacting components increases, even experienced administrators can find themselves overwhelmed. This is where the concept of a Kubernetes Copilot comes in, an AI-powered assistant designed to simplify and streamline Kubernetes management. + +**Beyond ChatGPT: A Copilot with Cluster Insights** +--------------------------------------------------- + +While general-purpose AI chatbots like ChatGPT can be helpful for answering Kubernetes-related questions, they lack the contextual understanding necessary for truly effective assistance. A true Kubernetes Copilot needs to be able to see inside your cluster, to understand its unique configuration and current state. + +![Image 1: k8s copilot pulling node count from Slack](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6643ab9c65779fec6769b6bc_GMT_tLZVGPDp6VytaCZVd7mdgatZPMUWX_0MJ4sqRfVcsg7U4JBAuur0YoS1gjcypd2bpFULOBkRrSY8_jlR5ONgY6lQSqKgKEzJxsB8SeSApwf664zVRVmpBToeaNvUtlfIQGGAzsidsY5Fe2d3lNY.gif) + +Checking Kubernetes Cluster Node Count & Status from the Slack Mobile App + +For example, imagine a scenario where a pod is repeatedly being killed due to exceeding its memory allocation ([OOMKilled](https://botkube.io/learn/what-is-oomkilled)). A generic chatbot might suggest looking for the offending pod and increasing its memory limit. However, a Kubernetes Copilot would go a step further. It would not only identify the problematic pod but also analyze its resource usage patterns, potentially suggesting a more nuanced solution like adjusting the pod's resource requests or scaling the deployment. + +**Proactive Management Through Alert Integration** +-------------------------------------------------- + +Unlike code editors, which are primarily used for creating and editing static files, Kubernetes environments are dynamic and require ongoing attention. This is why a Kubernetes Copilot needs to be more than just a code completion tool; it needs to be an active participant in the cluster management process. + +![Image 2: Using the Kubernetes Assistant to troubleshoot errors](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6643ab9c8b10c41b46308ee9_e0bkCiugViZS5ODvUU2lfc5GMS34I_8cGl9IGrUWcOsKzsge88h7EXd3bi5J1-Y8OFfa9PnN8B_XqmTdjLY9i4fHgy4mcn2eQsxkIEAffhbfuFIUv3MDmm2ZNGu2cRwBId7tWpkRSmVDaodBD3zqttA.gif) + +Botkube's AI assistant achieves this by integrating with Botkube's monitoring and alerting capabilities. When an alert is triggered, the assistant not only notifies you but also takes proactive steps to address the underlying issue. This might involve anything from restarting a failed pod to scaling a deployment to meet increased demand. And because Botkube integrates with popular communication platforms like Slack, [Microsoft Teams](https://botkube.io/integration/teams), and Discord, you can stay informed and in control wherever you are. + +**The Future of Kubernetes Management Assistants** +-------------------------------------------------- + +Botkube's AI assistant is one of the first examples of a true Kubernetes Copilot, but it's just the beginning. As AI technology continues to advance, we can expect to see an even more sophisticated Botkube copilot emerge, capable of handling increasingly complex tasks and providing even deeper insights into cluster health and performance. + +The ultimate goal of a Kubernetes Copilot is to make Kubernetes accessible to everyone, regardless of their level of expertise. By automating routine tasks, providing intelligent suggestions, and proactively addressing issues, these copilots have the potential to revolutionize the way we manage Kubernetes clusters. The future of Kubernetes management is not just about automation; it's about intelligent collaboration between humans and machines. diff --git a/hack/assistant-setup/content/botkube.io__learn__kubernetes-errors.md b/hack/assistant-setup/content/botkube.io__learn__kubernetes-errors.md index c82d307..be70297 100644 --- a/hack/assistant-setup/content/botkube.io__learn__kubernetes-errors.md +++ b/hack/assistant-setup/content/botkube.io__learn__kubernetes-errors.md @@ -16,8 +16,6 @@ Beyond its troubleshooting capabilities, Botkube empowers users through a collec In a nutshell, Botkube not only acts as an invaluable AI companion for troubleshooting Kubernetes errors through ChatOps but also stands as an educator, arming users with the expertise needed to tackle common challenges effectively. -‍ - ### About Botkube Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) diff --git a/hack/assistant-setup/content/botkube.io__learn__kubernetes-monitoring-tools.md b/hack/assistant-setup/content/botkube.io__learn__kubernetes-monitoring-tools.md index 300b912..dbe0456 100644 --- a/hack/assistant-setup/content/botkube.io__learn__kubernetes-monitoring-tools.md +++ b/hack/assistant-setup/content/botkube.io__learn__kubernetes-monitoring-tools.md @@ -105,8 +105,8 @@ Keptn's AI assistant, "Keptn Lisa," learns from your infrastructure and automate * Focus on CD: While it monitors, Keptn's primary focus is on automating deliveries, not general cluster health. * Learning curve: Understanding Keptn's AI approach and utilizing its full potential might require initial investment. -**5\. Kubernetes Dashboard** ----------------------------- +**5) Kubernetes Dashboard** +--------------------------- ### **Open-source Hub for Visualization:** @@ -153,13 +153,9 @@ Datadog integrates with your Kubernetes cluster, collecting in-depth data on con * Premium pricing: May be costlier than certain open-source alternatives. * Steeper learning curve: Extensive toolset can require initial onboarding effort. -‍ - **Conclusion on K8s Monitoring Tools** -------------------------------------- This is just a taste of the top 6 Kubernetes monitoring tools, with more detailed introductions and comparisons to follow in the next parts of your article. Stay tuned for insights into other powerful options like Jaeger, Grafana, ELK Stack, and more! Remember, the ideal tool depends on your specific needs and preferences. Consider factors like ease of use, feature set, community support, and cost when making your choice. By understanding the strengths and weaknesses of each tool, you can confidently ensure your Kubernetes cluster thrives in the dynamic cloud-native world. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__kubernetes-observability-best-practices.md b/hack/assistant-setup/content/botkube.io__learn__kubernetes-observability-best-practices.md index 85d9774..752339f 100644 --- a/hack/assistant-setup/content/botkube.io__learn__kubernetes-observability-best-practices.md +++ b/hack/assistant-setup/content/botkube.io__learn__kubernetes-observability-best-practices.md @@ -54,5 +54,3 @@ Another noteworthy tool in the Kubernetes observability landscape is Botkube. Wh In the ever-evolving realm of Kubernetes, where containerized applications thrive, the pursuit of observability is not just a choice; it's an imperative. Throughout this exploration of the Kubernetes observability landscape, we've uncovered its essence and significance. Observability in Kubernetes extends beyond mere monitoring; it encapsulates a holistic approach to understanding, optimizing, and securing your containerized workloads. By harnessing observability practices and leveraging powerful tools like Prometheus Alert Manager and Botkube, organizations can navigate the intricate Kubernetes ecosystem with finesse. They gain the ability to proactively address issues, ensure resource efficiency, fortify security, and drive continuous improvement. With observability as a guiding principle, Kubernetes becomes more than just a container orchestration platform—it becomes a vessel for innovation, resilience, and operational excellence in the ever-evolving world of cloud-native operations. So, as you set sail in the Kubernetes sea, remember that observability is your guiding star on the journey to success. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__kubernetes-rollbacks-a-guide.md b/hack/assistant-setup/content/botkube.io__learn__kubernetes-rollbacks-a-guide.md index 640d81d..b42e039 100644 --- a/hack/assistant-setup/content/botkube.io__learn__kubernetes-rollbacks-a-guide.md +++ b/hack/assistant-setup/content/botkube.io__learn__kubernetes-rollbacks-a-guide.md @@ -104,5 +104,3 @@ Conclusion to the K8s Rollback Solution --------------------------------------- Botkube, with its powerful integrations, has emerged as an invaluable solution for Kubernetes rollback management. Whether you're dealing with Helm charts, GitOps with Flux, or granular kubectl rollbacks, Botkube simplifies the Kubernetes rollback process, making it accessible from your preferred chat platform. With Botkube, Kubernetes rollbacks become a collaborative and team-friendly processendeavor, ensuring application stability even in the face of unexpected issues. It unifies all these rollback mechanisms into a single, cohesive solution, making Botkube your go-to tool for Kubernetes rollback management. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__making-slack-talk-kubernetes-slack-powered-chatops-for-k8s.md b/hack/assistant-setup/content/botkube.io__learn__making-slack-talk-kubernetes-slack-powered-chatops-for-k8s.md index 93834e5..fd22231 100644 --- a/hack/assistant-setup/content/botkube.io__learn__making-slack-talk-kubernetes-slack-powered-chatops-for-k8s.md +++ b/hack/assistant-setup/content/botkube.io__learn__making-slack-talk-kubernetes-slack-powered-chatops-for-k8s.md @@ -5,12 +5,8 @@ URL Source: https://botkube.io/learn/making-slack-talk-kubernetes-slack-powered- Markdown Content: Kubernetes has become the go-to solution for container orchestration, allowing organizations to deploy and manage applications at scale. However, with the increasing complexity of Kubernetes deployments, it can be challenging for teams to keep track of everything and ensure smooth operations. To DevOps and SRE individuals running Kubernetes, nothing is more important than receiving K8s Slack alerts. -‍ - That's where ChatOps comes in. ChatOps is a collaboration model that brings together people, tools, and processes in a chat environment, allowing teams to manage and automate tasks in a more efficient and transparent way. And with the popularity of Slack as a communication tool, it only makes sense to integrate it with Kubernetes for a more streamlined and user-friendly experience. Many DevOps engineers have chosen to bring these alerts into a shared chat channel with their developers to provide them with control over the K8s cluster as well. -‍ - In this article, we'll explore how Botkube makes Slack talk Kubernetes through ChatOps. We will also explore how it can benefit your team's Kubernetes deployment and monitoring processes. The ultimate goal should be a developer self service portal for Slack ChatOps. **Why Use Slack ChatOps for Kubernetes?** @@ -65,5 +61,3 @@ Once everything is set up, it's essential to test and refine your Slack ChatOps ------------------------------------ In conclusion, I trust this exploration has shed light on the pivotal synergy between Slack and Kubernetes, emphasizing the significance of seamless communication channels in the DevOps realm. The swift and user-friendly integration offered by Botkube empowers DevOps engineers to effortlessly establish a robust Slack ChatOps environment, streamlining workflows with efficiency. Thank you for delving into this journey with us. We invite you to join our [vibrant community](https://join.botkube.io/) on Slack, where like-minded K8s explorers converge to exchange insights and foster collective growth. Happy exploring! - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__managing-kubernetes-clusters-from-chat.md b/hack/assistant-setup/content/botkube.io__learn__managing-kubernetes-clusters-from-chat.md index b8699e8..9282cd5 100644 --- a/hack/assistant-setup/content/botkube.io__learn__managing-kubernetes-clusters-from-chat.md +++ b/hack/assistant-setup/content/botkube.io__learn__managing-kubernetes-clusters-from-chat.md @@ -42,5 +42,3 @@ Conclusion: A New Era of Kubernetes Management ---------------------------------------------- Botkube represents a paradigm shift in Kubernetes management. By bringing the power of ChatOps to your fingertips, it fosters collaboration, simplifies workflows, and grants unprecedented visibility into your cluster operations. Say goodbye to the complexities of the terminal and embrace a new era of efficient, collaborative, and enjoyable Kubernetes management with Botkube. - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__real-time-event-log-in-slack.md b/hack/assistant-setup/content/botkube.io__learn__real-time-event-log-in-slack.md index 8278d7c..3a2f68a 100644 --- a/hack/assistant-setup/content/botkube.io__learn__real-time-event-log-in-slack.md +++ b/hack/assistant-setup/content/botkube.io__learn__real-time-event-log-in-slack.md @@ -37,9 +37,7 @@ Transform Your Kubernetes Workflow Botkube's Slack integration supercharges your Kubernetes operations. Experience increased transparency, accelerated troubleshooting, and a team that learns together. -**Get started with Botkube today and see the difference!** - -‍ +**Get started with Botkube today and see the difference.** ### About Botkube diff --git a/hack/assistant-setup/content/botkube.io__learn__roles-of-swes-and-sres.md b/hack/assistant-setup/content/botkube.io__learn__roles-of-swes-and-sres.md index ba9ed8d..5e7adc6 100644 --- a/hack/assistant-setup/content/botkube.io__learn__roles-of-swes-and-sres.md +++ b/hack/assistant-setup/content/botkube.io__learn__roles-of-swes-and-sres.md @@ -5,8 +5,6 @@ URL Source: https://botkube.io/learn/roles-of-swes-and-sres Markdown Content: Software engineers (SWEs) and site reliability engineers (SREs) play vital roles in modern software development. SWEs focus on the design, creation, and implementation of software features. On the other hand, SREs ensure the overall reliability, scalability, and performance of the systems that run this software. -‍ - \*Just to clear things up, this article is talking about SWE as a software developer, not the SWE Organization. The [SWE Organization](https://swe.org/about-swe/) stands for the Society of Women Engineers, which is another great cause we support, just not the topic of this article. Shout out to the two great women engineers on the Botkube team, [Maria](https://www.linkedin.com/in/maria-ashby/) & [Kelly](https://www.linkedin.com/in/kellyrevenaugh/)! **Shared Tools and Distinct Focus** diff --git a/hack/assistant-setup/content/botkube.io__learn__spring-boot.md b/hack/assistant-setup/content/botkube.io__learn__spring-boot.md index 9832e62..f5a0f46 100644 --- a/hack/assistant-setup/content/botkube.io__learn__spring-boot.md +++ b/hack/assistant-setup/content/botkube.io__learn__spring-boot.md @@ -40,15 +40,11 @@ How to Use Botkube with Springboot Kubernetes? To use Botkube with Spring Boot, you need to do the following steps: -1\. Create a Spring Boot application using [Spring Initializr](https://start.spring.io/). Choose the dependencies you need for your application, such as web, data access, security, etc. Download and unzip the project folder. - -2\. Build a container image for your application using [Jib](https://github.com/GoogleContainerTools/jib). Jib is a tool that builds optimized Docker and OCI images for Java applications without a Docker daemon. Add the Jib plugin to your pom.xml file and run \`mvn compile jib:build\` to build and push the image to a registry of your choice. - -3\. Deploy your application on Kubernetes using [Skaffold](https://skaffold.dev/). Skaffold is a tool that automates the workflow for building, pushing, and deploying applications on Kubernetes. Create a skaffold.yaml file that defines how to build and deploy your application using Jib and kubectl or helm. Run \`skaffold dev\` to start a continuous development mode that watches for changes in your source code or configuration files and updates your application on the cluster. - -4\. Install Botkube on your cluster using [Helm](https://helm.sh/). Helm is a package manager for Kubernetes that lets you install and manage applications using charts. Add the Botkube chart repository and install the botkube chart with the configuration options for your chat platform. Get started with Botkube for free with our new [cloud app](https://botkube.io/blog/introducing-botkube-v1-0-the-future-of-kubernetes-troubleshooting). - -5\. Configure Botkube to monitor and manage your application from the Cloud Based Web GUI. At this point Botkube should be connected to your instance and a channel in your messaging platform. Simply select the notifications you want to receive from the services and invite all the needed DevOps & SRE team members. +1. Create a Spring Boot application using [Spring Initializr](https://start.spring.io/). Choose the dependencies you need for your application, such as web, data access, security, etc. Download and unzip the project folder. +2. Build a container image for your application using [Jib](https://github.com/GoogleContainerTools/jib). Jib is a tool that builds optimized Docker and OCI images for Java applications without a Docker daemon. Add the Jib plugin to your pom.xml file and run \`mvn compile jib:build\` to build and push the image to a registry of your choice. +3. Deploy your application on Kubernetes using [Skaffold](https://skaffold.dev/). Skaffold is a tool that automates the workflow for building, pushing, and deploying applications on Kubernetes. Create a skaffold.yaml file that defines how to build and deploy your application using Jib and kubectl or helm. Run \`skaffold dev\` to start a continuous development mode that watches for changes in your source code or configuration files and updates your application on the cluster. +4. Install Botkube on your cluster using [Helm](https://helm.sh/). Helm is a package manager for Kubernetes that lets you install and manage applications using charts. Add the Botkube chart repository and install the botkube chart with the configuration options for your chat platform. Get started with Botkube for free with our new [cloud app](https://botkube.io/blog/introducing-botkube-v1-0-the-future-of-kubernetes-troubleshooting). +5. Configure Botkube to monitor and manage your application from the Cloud Based Web GUI. At this point Botkube should be connected to your instance and a channel in your messaging platform. Simply select the notifications you want to receive from the services and invite all the needed DevOps & SRE team members. **Conclusion** -------------- diff --git a/hack/assistant-setup/content/botkube.io__learn__the-benefits-and-use-cases-of-using-botkube-in-kubernetes-clusters.md b/hack/assistant-setup/content/botkube.io__learn__the-benefits-and-use-cases-of-using-botkube-in-kubernetes-clusters.md index 7cc3983..e0957f3 100644 --- a/hack/assistant-setup/content/botkube.io__learn__the-benefits-and-use-cases-of-using-botkube-in-kubernetes-clusters.md +++ b/hack/assistant-setup/content/botkube.io__learn__the-benefits-and-use-cases-of-using-botkube-in-kubernetes-clusters.md @@ -31,5 +31,3 @@ In Conclusion Botkube revolutionizes Kubernetes cluster management by connecting alerts to chat platforms and facilitating direct command execution. Its ability to unify communication and control in a single interface streamlines operations and enhances collaboration. For deeper insights into Botkube's diverse use cases, we invite you to explore our [array of articles](https://botkube.io/learn-main-topic/use-cases) that delve into specific functionalities. As the landscape of Kubernetes management continues to evolve, Botkube remains committed to empowering users with innovative solutions. Keep an eye out for our updates and explore the full spectrum of possibilities that Botkube unlocks. _Note: This article is a general overview of Botkube's use cases. For more detailed insights into specific functionalities, please refer to our other articles._ - -‍ diff --git a/hack/assistant-setup/content/botkube.io__learn__turning-kubernetes-k8s-alerts-into-k8s-notifications.md b/hack/assistant-setup/content/botkube.io__learn__turning-kubernetes-k8s-alerts-into-k8s-notifications.md index f76c9fa..787f636 100644 --- a/hack/assistant-setup/content/botkube.io__learn__turning-kubernetes-k8s-alerts-into-k8s-notifications.md +++ b/hack/assistant-setup/content/botkube.io__learn__turning-kubernetes-k8s-alerts-into-k8s-notifications.md @@ -38,8 +38,6 @@ Here are some of the metrics that Prometheus can be used to monitor: * **Network traffic**: This metric tracks the amount of network traffic that is being generated by a pod or container. * **Errors**: This metric tracks the number of errors that are being produced by a pod or container. -‍ - **Deploying Alerting in Kubernetes** ------------------------------------ diff --git a/hack/assistant-setup/content/botkube.io__learn__understanding-kubernetes-executors.md b/hack/assistant-setup/content/botkube.io__learn__understanding-kubernetes-executors.md index 4408af8..1d23eb6 100644 --- a/hack/assistant-setup/content/botkube.io__learn__understanding-kubernetes-executors.md +++ b/hack/assistant-setup/content/botkube.io__learn__understanding-kubernetes-executors.md @@ -8,10 +8,6 @@ Understanding Kubernetes Executors: A Guide for Platform, DevOps, and SRE Teams ![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65fdbe5e2b0c291bb5ec0536_Botkube%20BLOG%20Thumbnail%20(6).png) -Last updated - -March 25, 2024 - ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a86fdda4d8d06ce598598e_evan%20image.jpg) Evan Witmer @@ -55,8 +51,6 @@ Let's explore some of the most important executors you should be familiar with: By strategically choosing and integrating Kubernetes executors, Platform, DevOps, and SRE teams can significantly enhance the efficiency, reliability, and scalability of their Kubernetes infrastructure. Botkube, along with its AI DevOps Assistant, provides a powerful toolkit to simplify executor usage and optimize your Kubernetes workflows, whether you're leveraging Kubectl, GitOps tools, or other specialized executors. -‍ - ### About Botkube Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) diff --git a/hack/assistant-setup/content/botkube.io__learn__understanding-yaml-commenting.md b/hack/assistant-setup/content/botkube.io__learn__understanding-yaml-commenting.md index a7df24b..9e8366b 100644 --- a/hack/assistant-setup/content/botkube.io__learn__understanding-yaml-commenting.md +++ b/hack/assistant-setup/content/botkube.io__learn__understanding-yaml-commenting.md @@ -8,10 +8,6 @@ Understanding YAML Commenting for Better Kubernetes Management ![Image 1](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65fa0b549adc75e0bdbbd27b_LEARN_TN_Definitions%20(9).png) -Last updated - -March 19, 2024 - ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a86fdda4d8d06ce598598e_evan%20image.jpg) Evan Witmer @@ -68,8 +64,6 @@ While YAML comments aid collaboration, tools like Botkube enhance the way your t Comments may seem like simple additions, but in the world of Kubernetes configuration, they serve a vital role in ensuring both code clarity and collaboration effectiveness. Using them intelligently—and considering tools like Botkube to maximize their potential—empowers teams to seamlessly manage complex Kubernetes landscapes. -‍ - ### About Botkube Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) diff --git a/hack/assistant-setup/content/botkube.io__learn__use-cases-for-aiops-platform.md b/hack/assistant-setup/content/botkube.io__learn__use-cases-for-aiops-platform.md index 62e24bc..c6d9415 100644 --- a/hack/assistant-setup/content/botkube.io__learn__use-cases-for-aiops-platform.md +++ b/hack/assistant-setup/content/botkube.io__learn__use-cases-for-aiops-platform.md @@ -3,17 +3,13 @@ Title: Demystifying AIOps Platforms: Powerful Use Cases URL Source: https://botkube.io/learn/use-cases-for-aiops-platform Markdown Content: -[![Image 1: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) Top Use Cases for AIOps Platform: Empowered DevOps with Chat-Based AI --------------------------------------------------------------------- ![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65fa0ba7997da02f4543c915_LEARN_TN_Definitions%20(8).png) -Last updated - -March 19, 2024 - ![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a86fdda4d8d06ce598598e_evan%20image.jpg) Evan Witmer @@ -47,8 +43,6 @@ But what exactly are the key use cases that make AIOps platforms like Botkube so In conclusion, the rise of AIOps platforms, with Botkube leading the charge in the Kubernetes space, signifies a paradigm shift in DevOps. By leveraging AI and integrating seamlessly into communication tools like chat platforms, these solutions are empowering DevOps teams to gain deeper insights, automate tasks, and collaborate effectively. As the adoption of AIOps continues to accelerate, one thing is certain: the future of DevOps is intelligent, collaborative, and chat-driven. -‍ - ### About Botkube Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) @@ -62,10 +56,6 @@ Top Use Cases for AIOps Platform: Empowered DevOps with Chat-Based AI ![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/65fa0ba7997da02f4543c915_LEARN_TN_Definitions%20(8).png) -Last updated - -March 19, 2024 - ![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a86fdda4d8d06ce598598e_evan%20image.jpg) Evan Witmer @@ -102,8 +92,6 @@ But what exactly are the key use cases that make AIOps platforms like Botkube so In conclusion, the rise of AIOps platforms, with Botkube leading the charge in the Kubernetes space, signifies a paradigm shift in DevOps. By leveraging AI and integrating seamlessly into communication tools like chat platforms, these solutions are empowering DevOps teams to gain deeper insights, automate tasks, and collaborate effectively. As the adoption of AIOps continues to accelerate, one thing is certain: the future of DevOps is intelligent, collaborative, and chat-driven. -‍ - ### About Botkube Botkube is a collaborative troubleshooting tool designed specifically for Kubernetes users. With Botkube, you can seamlessly receive and act on alerts directly within your preferred messaging and collaboration platforms like Slack, Microsoft Teams, Discord, and Mattermost. In addition, Botkube enables you to automate actions based on events, run kubectl and Helm commands, receive recommendations for best practices and much more. [Get started with Botkube for free.](https://app.botkube.io/) diff --git a/hack/assistant-setup/content/botkube.io__news.md b/hack/assistant-setup/content/botkube.io__news.md index bc4e203..bce37fc 100644 --- a/hack/assistant-setup/content/botkube.io__news.md +++ b/hack/assistant-setup/content/botkube.io__news.md @@ -6,9 +6,11 @@ Markdown Content: Explore the new Era of AIOps: Read the article Product -Community +Pricing +Support Company Sign in +Get Demo Get Started Thought Leadership and News APR 8, 2024 @@ -43,42 +45,40 @@ Kubeshop acquires Botkube, InfraCloud's popular ChatOps platform for K8s trouble InfraCloud Technologies and Kubeshop.io have signed a definitive agreement whereby Kubeshop.io has acquired a majority stake in BotKube. -< -> Stay in the Loop Join the Botkube Community in one of these channels Subscribe to our monthly newsletter to stay up to date with all-things Botkube. -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. -Get to Know Kubeshop -The Team -Investors -Kubeshop Blogs -Discord community -Careers -Kubeshop Github +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem +Copyright © 2024 Kubeshop, LLC. All rights reserved. +Privacy Policy | Terms of Service | End user license Botkube +Product Integrations +Case Studies +Features Pricing Support -Features -Documentation -Slack -Github +Docs Learn -Status +Slack +GitHub +2.5K +Company About Us +Events Blog News -Events Contact Us -Sign In +Sign in Get Started -Case Studies -Copyright © 2024 Kubeshop, LLC. All rights reserved. -Privacy Policy | Terms and Conditions | End User License Agreement +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__professional-services-partner.md b/hack/assistant-setup/content/botkube.io__professional-services-partner.md index f484430..1b58f5d 100644 --- a/hack/assistant-setup/content/botkube.io__professional-services-partner.md +++ b/hack/assistant-setup/content/botkube.io__professional-services-partner.md @@ -3,7 +3,7 @@ Title: Professional Services for Botkube URL Source: https://botkube.io/professional-services-partner Markdown Content: -[![Image 1: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) ### Botkube Recommends diff --git a/hack/assistant-setup/content/botkube.io__slack-app.md b/hack/assistant-setup/content/botkube.io__slack-app.md index e901262..5d53d44 100644 --- a/hack/assistant-setup/content/botkube.io__slack-app.md +++ b/hack/assistant-setup/content/botkube.io__slack-app.md @@ -1,9 +1,9 @@ -Title: Cloud Slack App +Title: The Botkube Cloud App for Slack URL Source: https://botkube.io/slack-app Markdown Content: -[![Image 1: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) ![Image 2](https://assets-global.website-files.com/633705de6adaa38599d8e258/64e8e512edbae7755379b2fe_bk-slack-logo-hero-bg.webp) @@ -11,7 +11,7 @@ Markdown Content: #### Cloud App for Slack -The Botkube Cloud App for Slack uses Botkube Cloud services to manage channels and route executor commands. This allows multi-cluster support without a need to create a dedicated Slack application for each cluster. Events and alerts are sent directly from your cluster to your Slack workspace for reliable, fast notifications. +The Botkube Cloud App for Slack uses Botkube Cloud services to manage channels and route executor commands. This allows multi-cluster support without a need to create a dedicated application for Slack for each cluster. Events and alerts are sent directly from your cluster to your Slack workspace for reliable, fast notifications. Installing Botkube in Slack --------------------------- @@ -40,7 +40,7 @@ Click Add platform dropdown, and select Slack option. [![Image 10](https://assets-global.website-files.com/633705de6adaa38599d8e258/6500c191387a00b2b474e1b3_install-5.svg)![Image 11](https://assets-global.website-files.com/633705de6adaa38599d8e258/650214f73dc8a48ae4075f8f_magnifier.svg)](#) -Click Add to Slack button to add Cloud Slack integration to your Slack workspace. +Click Add to Slack button to add Cloud integration for Slack to your Slack workspace. 5. diff --git a/hack/assistant-setup/content/botkube.io__solutions__enabling-developers.md b/hack/assistant-setup/content/botkube.io__solutions__enabling-developers.md index 86fa9e2..45ceb95 100644 --- a/hack/assistant-setup/content/botkube.io__solutions__enabling-developers.md +++ b/hack/assistant-setup/content/botkube.io__solutions__enabling-developers.md @@ -3,7 +3,7 @@ Title: Enabling Developers | Botkube URL Source: https://botkube.io/solutions/enabling-developers Markdown Content: -[![Image 1: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) ![Image 2](https://assets-global.website-files.com/633705de6adaa38599d8e258/659eb8b9715d644cd037118c_Bird-with-fire-Botkube.png) @@ -47,3 +47,15 @@ The advantages of BotKube are its versatility and efficiency in managing and mon For me, monitoring health and performance of the infrastructure in realtime was done with the help of Botkube. Botkube provided me security features such as unauthorized access attempts. ![Image 9](https://assets-global.website-files.com/633705de6adaa38599d8e258/6387cc6cd11dba9de0d3578f_botkube.gif) + +![Image 10: automating tests staging cluster](https://assets-global.website-files.com/633705de6adaa38599d8e258/6387ccf6ff66597d5f414815_botkube-quote-sign.svg) + +I love Botkube! I've used it since I can remember! + +![Image 11](https://assets-global.website-files.com/633705de6adaa38599d8e258/6387cc6cd11dba9de0d3578f_botkube.gif) + +![Image 12: automating tests staging cluster](https://assets-global.website-files.com/633705de6adaa38599d8e258/6387ccf6ff66597d5f414815_botkube-quote-sign.svg) + +BotKube: The Ultimate Tool for #Kubernetes Alerts and Notifications + +![Image 13](https://assets-global.website-files.com/633705de6adaa38599d8e258/6387cc6cd11dba9de0d3578f_botkube.gif) diff --git a/hack/assistant-setup/content/botkube.io__support.md b/hack/assistant-setup/content/botkube.io__support.md index 9c895bb..1ca322c 100644 --- a/hack/assistant-setup/content/botkube.io__support.md +++ b/hack/assistant-setup/content/botkube.io__support.md @@ -3,21 +3,18 @@ Title: Support URL Source: https://botkube.io/support Markdown Content: -![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/65e74ffd2f747033e1de81d8_bk_support-hero-img_web.svg) +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) -![Image 2: Monitoring Kubernetes notifications in chat platforms](https://assets-global.website-files.com/633705de6adaa38599d8e258/642da9080827c967a39b0043_automation_new.gif) +![Image 2](https://assets-global.website-files.com/633705de6adaa38599d8e258/663cd182c845a7c14f994cbe_bk-web-clouds.webp) -### Need help with Botkube? - -We're happy to assist! - -The quickest way to receive help regarding onboarding, configuration issues,  or anything else is directly through our web app. Once logged in to [Botkube's Dashboard](http://app.botkube.io/) +Need help on how to use Botkube? -, click on the chat icon in the lower right side of the screen. Our support team will be on the way to help![‍](https://join.botkube.io/) +Still looking for help? +----------------------- -![Image 3](https://assets-global.website-files.com/633705de6adaa38599d8e258/64de5389c7d816d1f6530501_botkube-status-icon.svg) +![Image 3](https://assets-global.website-files.com/633705de6adaa38599d8e258/634ee5c0455ce28d5f1d965c_blair-rampling.jpeg) -Check the status of Botkube [here.](https://status.botkube.io/) +Book a meeting with Botkube’s Product Manager, Blair Rampling to help you get started. FAQ --- @@ -51,3 +48,58 @@ What is Botkube and what does it do? ![Image 8](https://assets-global.website-files.com/633705de6adaa38599d8e258/65e7599d324d961f8d94065b_bk-faq-arrow%201.svg) Botkube is a Kubernetes monitoring and management tool that lives in your messaging platform (Slack, Teams, etc.). It helps you troubleshoot issues, understand cluster health, and apply Kubernetes best practices. + +![Image 9: Monitoring Kubernetes notifications in chat platforms](https://assets-global.website-files.com/633705de6adaa38599d8e258/642da9080827c967a39b0043_automation_new.gif) + +### Need help with Botkube? + +We're happy to assist! + +The quickest way to receive help regarding onboarding, configuration issues,  or anything else is directly through our web app. Once logged in to [Botkube's Dashboard](http://app.botkube.io/) + +, click on the chat icon in the lower right side of the screen. Our support team will be on the way to help![‍](https://join.botkube.io/) + +![Image 10](https://assets-global.website-files.com/633705de6adaa38599d8e258/64de5389c7d816d1f6530501_botkube-status-icon.svg) + +Check the status of Botkube [here.](https://status.botkube.io/) + +Open Source with Commercial Support +----------------------------------- + +With many teams already using Botkube, we understand that each company has different API lifecycle requirements. + +Botkube offers Commercial Service for companies with the need to scale, customized features, or training, + +We make sure that we provide you with a tailored plan that adapts and scales based on your needs. + +Preferred partner for Professional Services +------------------------------------------- + +![Image 11](https://assets-global.website-files.com/62db9be2f8784874ca1d38f9/635ac53661d8b0db3823b3be_infracloud-logo.svg) + +Unleashing growth by helping companies adopt cloud-native technologies with their products and services. + +![Image 12](https://assets-global.website-files.com/633705de6adaa38599d8e258/635ae205469f133b0890a773_pro-service-img.svg) + +### Your extended team for all things related to Cloud Native & DevOps + +Kubeshop recommends InfraCloud as our preferred professional services partner. They have modernized infrastructure of some of the world's leading organizations—from retail to real-time ad bidding platforms. Their expertise includes: + +Cloud Native Consulting + +Cloud Native Product Engineering + +Devops Consulting + +Managed Services For Kubernetes + +[Learn more](https://botkube.io/professional-services-partner) + +Stay in the Loop +---------------- + +![Image 13: Kusk Kubernetes ](https://assets-global.website-files.com/633705de6adaa38599d8e258/636d3117b8612105c60e0bd9_botkube-front-right.svg) + +Join the Botkube Community in one of these channels + +Subscribe to our monthly newsletter to stay up to date with all-things Botkube. diff --git a/hack/assistant-setup/content/botkube.io__tags__ai.md b/hack/assistant-setup/content/botkube.io__tags__ai.md index 68a3ce2..7d59135 100644 --- a/hack/assistant-setup/content/botkube.io__tags__ai.md +++ b/hack/assistant-setup/content/botkube.io__tags__ai.md @@ -3,9 +3,35 @@ Title: AI | Botkube tags URL Source: https://botkube.io/tags/ai Markdown Content: +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) + +Product + +[Integrations](https://botkube.io/integrations)[Case studies](https://botkube.io/case-studies)[Features](https://botkube.io/features) + +[Pricing](https://botkube.io/pricing) + +Support + +[Overview](https://botkube.io/support)[Docs](https://docs.botkube.io/)[Learn](https://botkube.io/learn) + +Company + +[About Us](https://botkube.io/about)[Events](https://botkube.io/events)[Blog](https://botkube.io/blog)[News](https://botkube.io/news)[Contact Us](https://botkube.io/contact) + +[Sign in](https://app.botkube.io/) + +[Get started](#)[Get started](https://app.botkube.io/) + +[Sign in](https://app.botkube.io/) + +[Get Demo](https://botkube.io/demo)[Get Started](https://app.botkube.io/) + Botkube blog ------------ +[Search](#)[clear](#) + Thank you! Your submission has been received! Oops! Something went wrong while submitting the form. @@ -17,6 +43,8 @@ Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Botkube articles ---------------- +[Search](#)[clear](#) + Thank you! Your submission has been received! Oops! Something went wrong while submitting the form. @@ -24,21 +52,22 @@ Oops! Something went wrong while submitting the form. Tag: ---- -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +[![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6644e5d498e2ed722f5424d6_BLOG_Thumbnail%20(7).png) May 15, 2024 4min read ### Start Troubleshooting K8s Faster with Botkube’s Latest Improvements Learn about the latest v1.11 release, including an update to the AI-powered Botkube Assistant to view current environment configurations, set-up tasks, and more.](https://botkube.io/blog/start-troubleshooting-k8s-faster-with-botkubes-latest-improvements) + +[![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b7d7f3f6390196bf27e83_UC%20(1).png) May 8, 2024 read ### Simplify Kubernetes Security Troubleshooting with AI Learn how Botkube can streamline troubleshooting and help overcome common Kubernetes PSA-related issues](https://botkube.io/blog/simplify-kubernetes-security-troubleshooting-with-ai) -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b8809695cf669f14f2a54_Level%20Up%20SRE%20Workflow%20Automating%20Manual%20Tasks%20with%20Botkube%20AI%20Assistant.png) Apr 18, 2024 read ### Level Up Your SRE Workflow: Automating Manual Tasks with Botkube AI Assistant See how Botkube is optimizing SRE workflows with the new AI assistant](https://botkube.io/blog/level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +[![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70cf0a7f079f477b8a7c9_Botkube%20BLOG%20Thumbnail%20(2).png) Mar 11, 2024 5 mins read ### Explore the New Era of AIOps with Botkube's AI Assistant Discover how to revolutionize Kubernetes management with Botkube's AI Assistant! Simplify K8s operations, automate incident reporting, and more.](https://botkube.io/blog/explore-the-new-era-of-aiops-with-botkubes-ai-assistant) -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +[![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b7c6f88f3facaf5490a44_BLOG_Thumbnail.png) Mar 6, 2024 5 mins read ### Four AI-Driven Strategies for Enhanced Kubernetes Troubleshooting Workflows Optimizing Kubernetes Management with Botkube's AI Insights](https://botkube.io/blog/ai-for-kubernetes-operations) -#### Get to Know Kubeshop +[![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b88a8597c3abe0e852fb8_Announ%20(1).png) Mar 6, 2024 5min read ### Real-Time Platform Engineer Advice with Botkube's AI Assistant Imagine having K8s experts available, providing help to your team 24/7. Get real-time, data-driven insights about your Kubernetes clusters without ever leaving your chat window with AI Assistant.](https://botkube.io/blog/real-time-platform-engineer-advice-ai-assistant) -#### Botkube +< -Copyright © 2022 Kubeshop, LLC. All rights reserved. +1 -Copyright © 2024 Kubeshop, LLC. All rights reserved. +\> -#### Explore Kubeshop Projects +[![Image 8: 2 Ways AI Assistants Are Changing Kubernetes Troubleshooting](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/662677b3a13af173215d9bb4_d428b6a6-ai-changing-kubernetes-troubleshooting-1024x576.jpg) Apr 8, 2024 7 min read ### 2 Ways AI Assistants Are Changing Kubernetes Troubleshooting AI that mimics how humans approach troubleshooting can democratize and improve how people identify and fix Kubernetes issues.](https://thenewstack.io/2-ways-ai-assistants-are-changing-kubernetes-troubleshooting/) diff --git a/hack/assistant-setup/content/botkube.io__tags__aiops.md b/hack/assistant-setup/content/botkube.io__tags__aiops.md index 403fc36..f7a22de 100644 --- a/hack/assistant-setup/content/botkube.io__tags__aiops.md +++ b/hack/assistant-setup/content/botkube.io__tags__aiops.md @@ -3,9 +3,35 @@ Title: AIOps | Botkube tags URL Source: https://botkube.io/tags/aiops Markdown Content: +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) + +Product + +[Integrations](https://botkube.io/integrations)[Case studies](https://botkube.io/case-studies)[Features](https://botkube.io/features) + +[Pricing](https://botkube.io/pricing) + +Support + +[Overview](https://botkube.io/support)[Docs](https://docs.botkube.io/)[Learn](https://botkube.io/learn) + +Company + +[About Us](https://botkube.io/about)[Events](https://botkube.io/events)[Blog](https://botkube.io/blog)[News](https://botkube.io/news)[Contact Us](https://botkube.io/contact) + +[Sign in](https://app.botkube.io/) + +[Get started](#)[Get started](https://app.botkube.io/) + +[Sign in](https://app.botkube.io/) + +[Get Demo](https://botkube.io/demo)[Get Started](https://app.botkube.io/) + Botkube blog ------------ +[Search](#)[clear](#) + Thank you! Your submission has been received! Oops! Something went wrong while submitting the form. @@ -17,6 +43,8 @@ Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Botkube articles ---------------- +[Search](#)[clear](#) + Thank you! Your submission has been received! Oops! Something went wrong while submitting the form. @@ -24,21 +52,22 @@ Oops! Something went wrong while submitting the form. Tag: ---- -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +[![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6644e5d498e2ed722f5424d6_BLOG_Thumbnail%20(7).png) May 15, 2024 4min read ### Start Troubleshooting K8s Faster with Botkube’s Latest Improvements Learn about the latest v1.11 release, including an update to the AI-powered Botkube Assistant to view current environment configurations, set-up tasks, and more.](https://botkube.io/blog/start-troubleshooting-k8s-faster-with-botkubes-latest-improvements) + +[![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b7d7f3f6390196bf27e83_UC%20(1).png) May 8, 2024 read ### Simplify Kubernetes Security Troubleshooting with AI Learn how Botkube can streamline troubleshooting and help overcome common Kubernetes PSA-related issues](https://botkube.io/blog/simplify-kubernetes-security-troubleshooting-with-ai) -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b8809695cf669f14f2a54_Level%20Up%20SRE%20Workflow%20Automating%20Manual%20Tasks%20with%20Botkube%20AI%20Assistant.png) Apr 18, 2024 read ### Level Up Your SRE Workflow: Automating Manual Tasks with Botkube AI Assistant See how Botkube is optimizing SRE workflows with the new AI assistant](https://botkube.io/blog/level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +[![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/661eb9d9c3fe057b001d93b5_simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy.png) Apr 4, 2024 5 mins read ### Developer Self-Service Made Easy with Botkube AI Assistant Discover how Botkube AI's simplifies Kubernetes troubleshooting for devs with natural language interactions, and seamless integration for enhanced productivity.](https://botkube.io/blog/simplify-kubernetes-with-botkubes-ai-developer-self-service-made-easy) -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +[![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70cf0a7f079f477b8a7c9_Botkube%20BLOG%20Thumbnail%20(2).png) Mar 11, 2024 5 mins read ### Explore the New Era of AIOps with Botkube's AI Assistant Discover how to revolutionize Kubernetes management with Botkube's AI Assistant! Simplify K8s operations, automate incident reporting, and more.](https://botkube.io/blog/explore-the-new-era-of-aiops-with-botkubes-ai-assistant) -#### Get to Know Kubeshop +[![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b88a8597c3abe0e852fb8_Announ%20(1).png) Mar 6, 2024 5min read ### Real-Time Platform Engineer Advice with Botkube's AI Assistant Imagine having K8s experts available, providing help to your team 24/7. Get real-time, data-driven insights about your Kubernetes clusters without ever leaving your chat window with AI Assistant.](https://botkube.io/blog/real-time-platform-engineer-advice-ai-assistant) -#### Botkube +< -Copyright © 2022 Kubeshop, LLC. All rights reserved. +1 -Copyright © 2024 Kubeshop, LLC. All rights reserved. +\> -#### Explore Kubeshop Projects +[![Image 8: 2 Ways AI Assistants Are Changing Kubernetes Troubleshooting](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/662677b3a13af173215d9bb4_d428b6a6-ai-changing-kubernetes-troubleshooting-1024x576.jpg) Apr 8, 2024 7 min read ### 2 Ways AI Assistants Are Changing Kubernetes Troubleshooting AI that mimics how humans approach troubleshooting can democratize and improve how people identify and fix Kubernetes issues.](https://thenewstack.io/2-ways-ai-assistants-are-changing-kubernetes-troubleshooting/) diff --git a/hack/assistant-setup/content/botkube.io__tags__argo-cd.md b/hack/assistant-setup/content/botkube.io__tags__argo-cd.md index 37b48dd..d9c1c4e 100644 --- a/hack/assistant-setup/content/botkube.io__tags__argo-cd.md +++ b/hack/assistant-setup/content/botkube.io__tags__argo-cd.md @@ -3,42 +3,6 @@ Title: Argo CD | Botkube tags URL Source: https://botkube.io/tags/argo-cd Markdown Content: -Botkube blog ------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - ### Open-source tools to help you with Kubernetes-native development & testing Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. - -Botkube articles ----------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - -Tag: ----- - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) - -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem - -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) - -#### Get to Know Kubeshop - -#### Botkube - -Copyright © 2022 Kubeshop, LLC. All rights reserved. - -Copyright © 2024 Kubeshop, LLC. All rights reserved. - -#### Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__botkube-cloud.md b/hack/assistant-setup/content/botkube.io__tags__botkube-cloud.md index d7e1987..a7ed917 100644 --- a/hack/assistant-setup/content/botkube.io__tags__botkube-cloud.md +++ b/hack/assistant-setup/content/botkube.io__tags__botkube-cloud.md @@ -3,42 +3,129 @@ Title: Botkube Cloud | Botkube tags URL Source: https://botkube.io/tags/botkube-cloud Markdown Content: -Botkube blog ------------- +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started +Botkube articles +Tag: +Botkube Cloud +MAR 6, 2024 +5 mins + read +Four AI-Driven Strategies for Enhanced Kubernetes Troubleshooting Workflows -Thank you! Your submission has been received! +Optimizing Kubernetes Management with Botkube's AI Insights -Oops! Something went wrong while submitting the form. +MAR 6, 2024 +5min + read +Real-Time Platform Engineer Advice with Botkube's AI Assistant -### Open-source tools to help you with Kubernetes-native development & testing +Imagine having K8s experts available, providing help to your team 24/7. Get real-time, data-driven insights about your Kubernetes clusters without ever leaving your chat window with AI Assistant. -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. +FEB 8, 2024 +5 mins + read +Empowering Your Kubernetes Multi-Cluster Observability with Intelligent Monitoring -Botkube articles ----------------- +Discover how Botkube optimizes multi-cluster Kubernetes observability with automation, real time alerts and more.. -Thank you! Your submission has been received! +JAN 19, 2024 +8min + read +Streamlining Kubernetes Management: A Closer Look at Botkube ChatOps -Oops! Something went wrong while submitting the form. +Learn about Botkube from Rohit Ghumare, Google Developer Expert – Google Cloud and CNCF Ambassador. -Tag: ----- +JAN 16, 2024 +10 minutes + read +Optimizing K8s Management with Botkube: 5 Essential DevOps Tasks to Automate -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +Check out these five key Kubernetes tasks that Botkube can optimize and automate! -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +JAN 11, 2024 +10 mins + read +5 Essential Kubernetes Troubleshooting + Monitoring Tasks to Automate -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +Learn how to simplify DevOps tasks directly within your favorite communication platform like Slack and Microsoft Teams -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +DEC 14, 2023 +6 minutes + read +Microsoft Teams Integration for Botkube: A Technical Journey -#### Get to Know Kubeshop +Discover the technical journey behind enhancing Microsoft Teams integration for Botkube. Learn about user-inspired improvements, system design for the refined multi-cluster solution. -#### Botkube +NOV 29, 2023 +5 minutes + read +Revolutionize Kubernetes Troubleshooting with Microsoft Teams and Botkube -Copyright © 2022 Kubeshop, LLC. All rights reserved. +Learn more about Botkube's new and improved Microsoft Teams support! -Copyright © 2024 Kubeshop, LLC. All rights reserved. +SEP 22, 2023 +5 minutes + read +Argo & Botkube: A Match Made in Heaven? + +Argo CD now integrates with Botkube, allowing users to receive and interact with notifications in Slack, Discord, and more. + +SEP 1, 2023 +10 mins + read +Tutorial: Streamlining GitOps with the Botkube Flux Plugin -#### Explore Kubeshop Projects +Learn how to set up Botkube with Flux and GitHub-events plugins in this step-by-step tutorial. Configure permissions, insert tokens, and install seamlessly. + +AUG 28, 2023 +5 mins + read +Introducing Botkube's Integration with Flux + +As the demand for seamless scalability and efficient teamwork increases, an innovative solution is needed. Enter the Botkube Flux integration to tackle collaboration, automation, and scaling head-on. + +AUG 9, 2023 +6min + read +Seamlessly Migrate from Botkube Open Source to Cloud + +With our new CLI migration tool, current open-source users are able to migrate their data and configurations over to Botkube Cloud in minutes. + +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem +Copyright © 2024 Kubeshop, LLC. All rights reserved. +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__chatops.md b/hack/assistant-setup/content/botkube.io__tags__chatops.md index a51d0d7..60c31f2 100644 --- a/hack/assistant-setup/content/botkube.io__tags__chatops.md +++ b/hack/assistant-setup/content/botkube.io__tags__chatops.md @@ -3,42 +3,192 @@ Title: ChatOps | Botkube tags URL Source: https://botkube.io/tags/chatops Markdown Content: -Botkube blog ------------- +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started +Botkube articles +Tag: +ChatOps +MAY 15, 2024 +4min + read +Start Troubleshooting K8s Faster with Botkube’s Latest Improvements -Thank you! Your submission has been received! +Learn about the latest v1.11 release, including an update to the AI-powered Botkube Assistant to view current environment configurations, set-up tasks, and more. -Oops! Something went wrong while submitting the form. +MAR 6, 2024 +5min + read +Real-Time Platform Engineer Advice with Botkube's AI Assistant -### Open-source tools to help you with Kubernetes-native development & testing +Imagine having K8s experts available, providing help to your team 24/7. Get real-time, data-driven insights about your Kubernetes clusters without ever leaving your chat window with AI Assistant. -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. +DEC 14, 2023 +6 minutes + read +Microsoft Teams Integration for Botkube: A Technical Journey -Botkube articles ----------------- +Discover the technical journey behind enhancing Microsoft Teams integration for Botkube. Learn about user-inspired improvements, system design for the refined multi-cluster solution. -Thank you! Your submission has been received! +NOV 27, 2023 +4min + read +Rapid Onboarding of Microsoft Teams and Slack -Oops! Something went wrong while submitting the form. +This release marks a milestone in providing a smoother and faster path to Kubernetes monitoring and management with upgraded integrations of Slack and Microsoft Teams. -Tag: ----- +SEP 7, 2023 +8 minutes + read +Creating the Botkube Flux plugin for Day 2 operations -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +From this deep dive you'll know the Zapier-like aspect of Botkube that connects K8s clusters, GitHub, and the Flux CLI—all of this to make you fall in love with your Day 2 operations. -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +AUG 23, 2023 +5 mins + read +Enhancing GitOps Workflows with Botkube -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +Transform your GitOps process with Botkube: Bid farewell to obstacles and welcome smooth productivity! -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +JUL 31, 2023 +5min. + read +ChatGPT to Troubleshoot K8s Errors with Botkube’s Doctor Plug-in -#### Get to Know Kubeshop +People have been using ChatGPT and AI for many uses over the past year. But have you heard of ChatGPT recommendations for Kubernetes troubleshooting? Learn more about our latest feature. -#### Botkube +JUL 31, 2023 +7min. + read +Troubleshoot K8s with ChatGPT + Botkube's Doctor Plugin -Copyright © 2022 Kubeshop, LLC. All rights reserved. +This Tutorial is about the new ChatGPT-powered Doctor plugin which allows for easy diagnosis and solution recommendations for Kubernetes troubleshooting. -Copyright © 2024 Kubeshop, LLC. All rights reserved. +JUL 10, 2023 +6 min + read +Is ChatOps a Kubernetes Dashboard Alternative? + +Can ChatOps replace the age old monitoring dashboards that DevOps teams still build? At least in the K8s space, it is worth a look at the comparison. + +JUL 6, 2023 +7 mins + read +Leveraging Our Cloud Slack for K8s Collaborative Troubleshooting + +This step-by-step tutorial gets you started with Botkube Cloud Slack App, which enables collaborative troubleshooting by seamlessly integrating with your organization's Slack workspace. + +JUN 20, 2023 +3 minutes + read +Supercharging Developer Collaboration: ChatOps Lives On + +Chatops is not dead...it's making a comeback. In the fast-paced world of software development, collaboration and effective communication are extremely important. That's where ChatOps comes in. + +MAY 24, 2023 +10 minutes + read +Implementing Your Own Botkube Plugin - Keptn Use Case + +Botkube has plugin system that allows you to extend the functionalities of Botkube core to satisfy your requirements. Here is a real-life example using Keptn. + +MAY 4, 2023 +5 minutes + read +Botkube takes on Amsterdam: A Kubecon Recap + +The Kubecon Amsterdam conference was a wild ride, filled with exciting announcements, insightful talks, and countless networking opportunities. + +MAR 9, 2023 +5 mins + read +Command Line Magic: Simplify Your Life with Custom Aliases + +With custom aliases, you can create shortcuts for those long and confusing Kubernetes commands, making it easy to manage your clusters and focus on what really matters - your code. -#### Explore Kubeshop Projects +FEB 6, 2023 +6 min + read +Botkube v0.18.0 Release Notes + +Botkube v0.18.0 adds a Prometheus source plugin and command aliases. + +FEB 1, 2023 +11 min + read +Build a GitHub Issues Reporter for failing K8s Apps + +Botkube 0.17 introduces plugin support. In this guide you will learn how to create your own Botkube executor plugin to build a GitHub issues reporter for Kubernetes apps that are failing. + +JAN 9, 2023 +6 min + read +Botkube v0.17.0 Release Notes + +Botkube v0.17.0 adds a plugin system and the first executor plugin allowing you to run Helm commands right from your chat tools. + +DEC 5, 2022 +7 min + read +Getting Started with the New Botkube App for Slack + +The new Botkube Slack app provides more great interactive features and better security when compared to the legacy Botkube Slack app. + +NOV 28, 2022 +6 min + read +Botkube v0.16 Release Notes + +Botkube v0.16.0 adds new event filter criteria allowing more granular event tuning, and actions, which automatically run commands when specified event types are received. + +OCT 6, 2022 +5 min + read +Botkube v0.14 Release Notes + +BotKube v0.14.0 addresses a number of community-suggested issues and adds some great features to help you control the notification levels you receive from your Kubernetes clusters. + +SEP 1, 2022 +2 min + read +Botkube v0.13 Release Notes + +The latest release of Botkube is here! This release from the new Botkube team includes user-requested multi-channel support and much more. + +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem +Copyright © 2024 Kubeshop, LLC. All rights reserved. +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__development.md b/hack/assistant-setup/content/botkube.io__tags__development.md index 7ae9989..5d114e8 100644 --- a/hack/assistant-setup/content/botkube.io__tags__development.md +++ b/hack/assistant-setup/content/botkube.io__tags__development.md @@ -3,42 +3,94 @@ Title: Development | Botkube tags URL Source: https://botkube.io/tags/development Markdown Content: -Botkube blog ------------- +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started +Botkube articles +Tag: +Development +APR 4, 2024 +5 mins + read +Developer Self-Service Made Easy with Botkube AI Assistant -Thank you! Your submission has been received! +Discover how Botkube AI's simplifies Kubernetes troubleshooting for devs with natural language interactions, and seamless integration for enhanced productivity. -Oops! Something went wrong while submitting the form. +SEP 7, 2023 +8 minutes + read +Creating the Botkube Flux plugin for Day 2 operations -### Open-source tools to help you with Kubernetes-native development & testing +From this deep dive you'll know the Zapier-like aspect of Botkube that connects K8s clusters, GitHub, and the Flux CLI—all of this to make you fall in love with your Day 2 operations. -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. +JUL 20, 2023 +10 mins + read +Troubleshooting K8s in Multi-Cluster Environments -Botkube articles ----------------- +As K8s becomes the solution for container orchestration and remote work environments continue to prevail, a new obstacle emerges: remote collaborative troubleshooting. Here are some best practices. -Thank you! Your submission has been received! +JUL 6, 2023 +7 mins + read +Leveraging Our Cloud Slack for K8s Collaborative Troubleshooting -Oops! Something went wrong while submitting the form. +This step-by-step tutorial gets you started with Botkube Cloud Slack App, which enables collaborative troubleshooting by seamlessly integrating with your organization's Slack workspace. -Tag: ----- +MAY 24, 2023 +10 minutes + read +Implementing Your Own Botkube Plugin - Keptn Use Case -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +Botkube has plugin system that allows you to extend the functionalities of Botkube core to satisfy your requirements. Here is a real-life example using Keptn. -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +MAR 30, 2023 +6 minutes + read +Beginner's Guide to Botkube Plugin Development: Part 1 -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +This introduction will teach you how Botkube plug-ins can unify your cloud native tools. -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +MAR 9, 2023 +5 mins + read +Command Line Magic: Simplify Your Life with Custom Aliases -#### Get to Know Kubeshop - -#### Botkube - -Copyright © 2022 Kubeshop, LLC. All rights reserved. +With custom aliases, you can create shortcuts for those long and confusing Kubernetes commands, making it easy to manage your clusters and focus on what really matters - your code. +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem Copyright © 2024 Kubeshop, LLC. All rights reserved. - -#### Explore Kubeshop Projects +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__gitops.md b/hack/assistant-setup/content/botkube.io__tags__gitops.md index 48ad0a5..974cb57 100644 --- a/hack/assistant-setup/content/botkube.io__tags__gitops.md +++ b/hack/assistant-setup/content/botkube.io__tags__gitops.md @@ -3,42 +3,66 @@ Title: Gitops | Botkube tags URL Source: https://botkube.io/tags/gitops Markdown Content: -Botkube blog ------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - -### Open-source tools to help you with Kubernetes-native development & testing - -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. - +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started Botkube articles ----------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - Tag: ----- - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +Gitops +SEP 29, 2023 +7 minutes + read +Tutorial: Infuse collaboration into your Argo workflows with Botkube -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +Learn how to set up Botkube with ArgoCD plugins in this step-by-step tutorial. -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +SEP 7, 2023 +8 minutes + read +Creating the Botkube Flux plugin for Day 2 operations -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +From this deep dive you'll know the Zapier-like aspect of Botkube that connects K8s clusters, GitHub, and the Flux CLI—all of this to make you fall in love with your Day 2 operations. -#### Get to Know Kubeshop +SEP 1, 2023 +10 mins + read +Tutorial: Streamlining GitOps with the Botkube Flux Plugin -#### Botkube - -Copyright © 2022 Kubeshop, LLC. All rights reserved. +Learn how to set up Botkube with Flux and GitHub-events plugins in this step-by-step tutorial. Configure permissions, insert tokens, and install seamlessly. +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem Copyright © 2024 Kubeshop, LLC. All rights reserved. - -#### Explore Kubeshop Projects +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__kubecon.md b/hack/assistant-setup/content/botkube.io__tags__kubecon.md index c11290b..917daab 100644 --- a/hack/assistant-setup/content/botkube.io__tags__kubecon.md +++ b/hack/assistant-setup/content/botkube.io__tags__kubecon.md @@ -3,42 +3,52 @@ Title: Kubecon | Botkube tags URL Source: https://botkube.io/tags/kubecon Markdown Content: -Botkube blog ------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - -### Open-source tools to help you with Kubernetes-native development & testing - -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. - +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started Botkube articles ----------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - Tag: ----- +Kubecon +MAY 4, 2023 +5 minutes + read +Botkube takes on Amsterdam: A Kubecon Recap -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) - -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem - -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) - -#### Get to Know Kubeshop - -#### Botkube - -Copyright © 2022 Kubeshop, LLC. All rights reserved. +The Kubecon Amsterdam conference was a wild ride, filled with exciting announcements, insightful talks, and countless networking opportunities. +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem Copyright © 2024 Kubeshop, LLC. All rights reserved. - -#### Explore Kubeshop Projects +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__kubernetes.md b/hack/assistant-setup/content/botkube.io__tags__kubernetes.md index b1194bd..32aa122 100644 --- a/hack/assistant-setup/content/botkube.io__tags__kubernetes.md +++ b/hack/assistant-setup/content/botkube.io__tags__kubernetes.md @@ -3,9 +3,35 @@ Title: Kubernetes | Botkube tags URL Source: https://botkube.io/tags/kubernetes Markdown Content: +[![Image 1](https://assets-global.website-files.com/633705de6adaa38599d8e258/6338148fa3f8a509639804fa_botkube-logo.svg)](https://botkube.io/) + +Product + +[Integrations](https://botkube.io/integrations)[Case studies](https://botkube.io/case-studies)[Features](https://botkube.io/features) + +[Pricing](https://botkube.io/pricing) + +Support + +[Overview](https://botkube.io/support)[Docs](https://docs.botkube.io/)[Learn](https://botkube.io/learn) + +Company + +[About Us](https://botkube.io/about)[Events](https://botkube.io/events)[Blog](https://botkube.io/blog)[News](https://botkube.io/news)[Contact Us](https://botkube.io/contact) + +[Sign in](https://app.botkube.io/) + +[Get started](#)[Get started](https://app.botkube.io/) + +[Sign in](https://app.botkube.io/) + +[Get Demo](https://botkube.io/demo)[Get Started](https://app.botkube.io/) + Botkube blog ------------ +[Search](#)[clear](#) + Thank you! Your submission has been received! Oops! Something went wrong while submitting the form. @@ -17,6 +43,8 @@ Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Botkube articles ---------------- +[Search](#)[clear](#) + Thank you! Your submission has been received! Oops! Something went wrong while submitting the form. @@ -24,21 +52,64 @@ Oops! Something went wrong while submitting the form. Tag: ---- -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +[![Image 2](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/664c8bed801d7ed2898141ba_PARTNERSHIPS_Thumbnail.png) May 21, 2024 2min read ### Botkube is Now Verified in Microsoft AppSource! It's official: Botkube has undergone security and compliance checks by Microsoft to become verified in the AppSource Marketplace—strengthening user experience and our partnership with Microsoft.](https://botkube.io/blog/botkube-is-now-verified-in-microsoft-appsource) + +[![Image 3](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6644e5d498e2ed722f5424d6_BLOG_Thumbnail%20(7).png) May 15, 2024 4min read ### Start Troubleshooting K8s Faster with Botkube’s Latest Improvements Learn about the latest v1.11 release, including an update to the AI-powered Botkube Assistant to view current environment configurations, set-up tasks, and more.](https://botkube.io/blog/start-troubleshooting-k8s-faster-with-botkubes-latest-improvements) + +[![Image 4](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b7d7f3f6390196bf27e83_UC%20(1).png) May 8, 2024 read ### Simplify Kubernetes Security Troubleshooting with AI Learn how Botkube can streamline troubleshooting and help overcome common Kubernetes PSA-related issues](https://botkube.io/blog/simplify-kubernetes-security-troubleshooting-with-ai) + +[![Image 5](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b8809695cf669f14f2a54_Level%20Up%20SRE%20Workflow%20Automating%20Manual%20Tasks%20with%20Botkube%20AI%20Assistant.png) Apr 18, 2024 read ### Level Up Your SRE Workflow: Automating Manual Tasks with Botkube AI Assistant See how Botkube is optimizing SRE workflows with the new AI assistant](https://botkube.io/blog/level-up-your-sre-workflow-automating-manual-tasks-with-botkube-ai-assistant) + +[![Image 6](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b87600c0bddca44ba8b4c_Tutor%20(1).png) Feb 8, 2024 5 mins read ### Empowering Your Kubernetes Multi-Cluster Observability with Intelligent Monitoring Discover how Botkube optimizes multi-cluster Kubernetes observability with automation, real time alerts and more..](https://botkube.io/blog/empowering-your-kubernetes-multi-cluster-observability-with-intelligent-monitoring) + +[![Image 7](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/663b7c6f88f3facaf5490a44_BLOG_Thumbnail.png) Jan 16, 2024 10 minutes read ### Optimizing K8s Management with Botkube: 5 Essential DevOps Tasks to Automate Check out these five key Kubernetes tasks that Botkube can optimize and automate!](https://botkube.io/blog/botkube-5-essential-devopstasks-to-automate) + +[![Image 8](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6579542d18e44144c36b5735_thumbnail.jpg) Dec 14, 2023 6 minutes read ### Microsoft Teams Integration for Botkube: A Technical Journey Discover the technical journey behind enhancing Microsoft Teams integration for Botkube. Learn about user-inspired improvements, system design for the refined multi-cluster solution.](https://botkube.io/blog/microsoft-teams-integration-for-botkube-a-technical-journey) + +[![Image 9](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/656795982e12e17904b3fe13_Botkube%20BLOG%20Thumbnail%20(7).png) Nov 29, 2023 5 minutes read ### Revolutionize Kubernetes Troubleshooting with Microsoft Teams and Botkube Learn more about Botkube's new and improved Microsoft Teams support!](https://botkube.io/blog/revolutionize-your-kubernetes-troubleshooting-workflow-with-microsoft-teams-and-botkube) + +[![Image 10](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6540077fe681eba27afc9f78_Blog_Thumbnail%20(2).jpg) Nov 29, 2023 10 minutes read ### Maximize Your DevOps Teams Efficiency with Botkube + Microsoft Teams Get Botkube up and running with Microsoft Teams in less than 5 mins with this walk-through tutorial](https://botkube.io/blog/maximize-your-devops-teams-efficiency-with-botkube-and-microsoft-teams) + +[![Image 11](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6549524dce34941644b6b252_Botkube%20BLOG%20Thumbnail%20(OLD).jpg) Nov 6, 2023 3 minutes read ### Get Botkube Running in Under 3 Minutes the New Slack App Life is short, install quickly - Learn how to get started with Botkube and Slack](https://botkube.io/blog/get-botkube-running-in-under-3-minutes-the-new-slack-app) + +[![Image 12](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6492f3ff5f24df56caf66e94_Botkube%20BLOG%20Thumbnail%20(1).png) Sep 19, 2023 5 minute read ### Botkube v1.4.0 Release Notes - Now with Native Argo CD Support Our most recent release of Botkube brings important features that help with Kubernetes troubleshooting. This update introduces Botkube support for Argo CD sources and more.](https://botkube.io/blog/botkube-v1-4-0-release-notes) + +[![Image 13](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f9b5dbb73ee07c45f4527e_Blog_Thumbnail.jpg) Sep 7, 2023 8 minutes read ### Creating the Botkube Flux plugin for Day 2 operations From this deep dive you'll know the Zapier-like aspect of Botkube that connects K8s clusters, GitHub, and the Flux CLI—all of this to make you fall in love with your Day 2 operations.](https://botkube.io/blog/creating-the-botkube-flux-plugin-for-day-2-operations) + +[![Image 14](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64f21dfb51c3be1367d4b8d1_fluxtutorial.png) Sep 1, 2023 10 mins read ### Tutorial: Streamlining GitOps with the Botkube Flux Plugin Learn how to set up Botkube with Flux and GitHub-events plugins in this step-by-step tutorial. Configure permissions, insert tokens, and install seamlessly.](https://botkube.io/blog/streamlining-gitops-with-the-botkube-flux-plugin) + +[![Image 15](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64ecb730a3952f567c41d23f_Botkube%20BLOG%20Thumbnail%20(4).png) Aug 28, 2023 5 mins read ### Introducing Botkube's Integration with Flux As the demand for seamless scalability and efficient teamwork increases, an innovative solution is needed. Enter the Botkube Flux integration to tackle collaboration, automation, and scaling head-on.](https://botkube.io/blog/introducing-botkubes-integration-with-flux) + +[![Image 16](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64dfbc189e920c94c902072f_chatgpt-k8s-errors.png) Aug 23, 2023 5 mins read ### Enhancing GitOps Workflows with Botkube Transform your GitOps process with Botkube: Bid farewell to obstacles and welcome smooth productivity!](https://botkube.io/blog/enhancing-gitops-workflows-with-botkube) + +[![Image 17](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6492f3ff5f24df56caf66e94_Botkube%20BLOG%20Thumbnail%20(1).png) Aug 15, 2023 5 minute read ### Botkube v1.3.0 Release Notes Our most recent release of Botkube Cloud & Open Source brings important features that help with Kubernetes troubleshooting. This update introduces several new Botkube plugins.](https://botkube.io/blog/botkube-v1-3-0-release-notes) + +[![Image 18](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64cd1d80652ce5a939415b99_Building-ChatGBT-Plugin.png) Jul 27, 2023 7min read ### Building a ChatGPT Plugin: From Ideation to Implementation Botkube now includes AI recommendations to help you diagnose and troubleshoot issues in Kubernetes clusters. Learn how the Botkube team created this new feature in a recent team hackathon.](https://botkube.io/blog/building-a-chatgpt-plugin-from-ideation-to-implementation) + +[![Image 19](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64dfbc3d9e920c94c902317d_k8s-troubleshooting-multicluster.png) Jul 20, 2023 10 mins read ### Troubleshooting K8s in Multi-Cluster Environments As K8s becomes the solution for container orchestration and remote work environments continue to prevail, a new obstacle emerges: remote collaborative troubleshooting. Here are some best practices.](https://botkube.io/blog/best-practices-for-kubernetes-troubleshooting-in-multi-cluster-environments) + +[![Image 20](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6492f3ff5f24df56caf66e94_Botkube%20BLOG%20Thumbnail%20(1).png) Jul 18, 2023 5 minute read ### Botkube v1.2.0 Release Notes Our most recent realese of Botkube Cloud & Open Source brings important features that help with Kubernetes troubleshooting. This update brings quick Slack connection to your cluster!](https://botkube.io/blog/botkube-v1-2-0-release-notes) + +[![Image 21](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a86e430c3e07ee19ad3000_Botkube%20BLOG%20Thumbnail%20(3).png) Jul 10, 2023 6 min read ### Is ChatOps a Kubernetes Dashboard Alternative? Can ChatOps replace the age old monitoring dashboards that DevOps teams still build? At least in the K8s space, it is worth a look at the comparison.](https://botkube.io/blog/is-chatops-a-kubernetes-dashboard-alternative) + +[![Image 22](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64a70cf0a7f079f477b8a7c9_Botkube%20BLOG%20Thumbnail%20(2).png) Jul 6, 2023 7 mins read ### Leveraging Our Cloud Slack for K8s Collaborative Troubleshooting This step-by-step tutorial gets you started with Botkube Cloud Slack App, which enables collaborative troubleshooting by seamlessly integrating with your organization's Slack workspace.](https://botkube.io/blog/step-by-step-tutorial-leveraging-botkubes-cloud-slack-feature-for-kubernetes-collaborative-troubleshooting) + +[![Image 23](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6492f3ff5f24df56caf66e94_Botkube%20BLOG%20Thumbnail%20(1).png) Jun 21, 2023 5 minute read ### Botkube v1.1.0 Release Notes Our most recent realese of Botkube Cloud & Open Source brings important features that help with Kubernetes troubleshooting. This update brings quick Slack connection to your cluster!](https://botkube.io/blog/botkube-v1-1-0-release-notes) + +[![Image 24](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/646b91163365ec0bf96c74c4_Botkube%20BLOG%20Thumbnail.png) May 24, 2023 10 minutes read ### Implementing Your Own Botkube Plugin - Keptn Use Case Botkube has plugin system that allows you to extend the functionalities of Botkube core to satisfy your requirements. Here is a real-life example using Keptn.](https://botkube.io/blog/implementing-your-own-botkube-plugin-a-real-life-use-case) -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +[![Image 25](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/6451f12eb912157ceaf7fbb3_bk-amsterdam.png) May 4, 2023 5 minutes read ### Botkube takes on Amsterdam: A Kubecon Recap The Kubecon Amsterdam conference was a wild ride, filled with exciting announcements, insightful talks, and countless networking opportunities.](https://botkube.io/blog/botkube-takes-on-amsterdam-a-kubecon-recap) -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +[![Image 26](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63da43dd1f83c1aa78f5bd4d_botkube_tutorial.png) Mar 30, 2023 6 minutes read ### Beginner's Guide to Botkube Plugin Development: Part 1 This introduction will teach you how Botkube plug-ins can unify your cloud native tools.](https://botkube.io/blog/beginners-guide-to-botkube-plugin-development-how-botkube-plug-ins-can-unify-your-cloud-native-tools) -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +[![Image 27](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63da43dd1f83c1aa78f5bd4d_botkube_tutorial.png) Mar 9, 2023 5 mins read ### Command Line Magic: Simplify Your Life with Custom Aliases With custom aliases, you can create shortcuts for those long and confusing Kubernetes commands, making it easy to manage your clusters and focus on what really matters - your code.](https://botkube.io/blog/command-line-magic-simplify-your-life-with-custom-kubernetes-kubectrl-aliases-on-botkube) -#### Get to Know Kubeshop +[![Image 28](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/63da94eb0d540a97f1a7da1b_20230201_BK_blog-main.png) Feb 1, 2023 11 min read ### Build a GitHub Issues Reporter for failing K8s Apps Botkube 0.17 introduces plugin support. In this guide you will learn how to create your own Botkube executor plugin to build a GitHub issues reporter for Kubernetes apps that are failing.](https://botkube.io/blog/build-a-github-issues-reporter-for-failing-kubernetes-apps-with-botkube-plugins) -#### Botkube +< -Copyright © 2022 Kubeshop, LLC. All rights reserved. +1 -Copyright © 2024 Kubeshop, LLC. All rights reserved. +\> -#### Explore Kubeshop Projects +[![Image 29: Can ChatGPT Save Collective Kubernetes Troubleshooting?](https://assets-global.website-files.com/634fabb21508d6c9db9bc46f/64fb49486ebde5e4e655fefb_chat-gpt-k8s-troubleshooting.png) Sep 8, 2023 min read ### Can ChatGPT Save Collective Kubernetes Troubleshooting? Companies like OpenAI have been training models on public data from Stack Overflow, Reddit and others. With AI-driven DevOps platforms, more knowledge is locked inside proprietary models.](https://thenewstack.io/can-chatgpt-save-collective-kubernetes-troubleshooting/) diff --git a/hack/assistant-setup/content/botkube.io__tags__microsoft-teams.md b/hack/assistant-setup/content/botkube.io__tags__microsoft-teams.md index 09a7955..4972b31 100644 --- a/hack/assistant-setup/content/botkube.io__tags__microsoft-teams.md +++ b/hack/assistant-setup/content/botkube.io__tags__microsoft-teams.md @@ -3,42 +3,80 @@ Title: Microsoft Teams | Botkube tags URL Source: https://botkube.io/tags/microsoft-teams Markdown Content: -Botkube blog ------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - -### Open-source tools to help you with Kubernetes-native development & testing - -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. - +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started Botkube articles ----------------- - -Thank you! Your submission has been received! +Tag: +Microsoft Teams +MAY 21, 2024 +2min + read +Botkube is Now Verified in Microsoft AppSource! -Oops! Something went wrong while submitting the form. +It's official: Botkube has undergone security and compliance checks by Microsoft to become verified in the AppSource Marketplace—strengthening user experience and our partnership with Microsoft. -Tag: ----- +DEC 14, 2023 +6 minutes + read +Microsoft Teams Integration for Botkube: A Technical Journey -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +Discover the technical journey behind enhancing Microsoft Teams integration for Botkube. Learn about user-inspired improvements, system design for the refined multi-cluster solution. -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +NOV 29, 2023 +5 minutes + read +Revolutionize Kubernetes Troubleshooting with Microsoft Teams and Botkube -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +Learn more about Botkube's new and improved Microsoft Teams support! -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +NOV 29, 2023 +10 minutes + read +Maximize Your DevOps Teams Efficiency with Botkube + Microsoft Teams -#### Get to Know Kubeshop +Get Botkube up and running with Microsoft Teams in less than 5 mins with this walk-through tutorial -#### Botkube +NOV 27, 2023 +4min + read +Rapid Onboarding of Microsoft Teams and Slack -Copyright © 2022 Kubeshop, LLC. All rights reserved. +This release marks a milestone in providing a smoother and faster path to Kubernetes monitoring and management with upgraded integrations of Slack and Microsoft Teams. +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem Copyright © 2024 Kubeshop, LLC. All rights reserved. - -#### Explore Kubeshop Projects +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__monitoring.md b/hack/assistant-setup/content/botkube.io__tags__monitoring.md index ad431aa..cbcc95f 100644 --- a/hack/assistant-setup/content/botkube.io__tags__monitoring.md +++ b/hack/assistant-setup/content/botkube.io__tags__monitoring.md @@ -3,42 +3,52 @@ Title: Monitoring | Botkube tags URL Source: https://botkube.io/tags/monitoring Markdown Content: -Botkube blog ------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - -### Open-source tools to help you with Kubernetes-native development & testing - -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. - +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started Botkube articles ----------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - Tag: ----- +Monitoring +FEB 8, 2024 +5 mins + read +Empowering Your Kubernetes Multi-Cluster Observability with Intelligent Monitoring -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) - -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem - -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. - -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) - -#### Get to Know Kubeshop - -#### Botkube - -Copyright © 2022 Kubeshop, LLC. All rights reserved. +Discover how Botkube optimizes multi-cluster Kubernetes observability with automation, real time alerts and more.. +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem Copyright © 2024 Kubeshop, LLC. All rights reserved. - -#### Explore Kubeshop Projects +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__release.md b/hack/assistant-setup/content/botkube.io__tags__release.md index 3fe5532..c8dc32d 100644 --- a/hack/assistant-setup/content/botkube.io__tags__release.md +++ b/hack/assistant-setup/content/botkube.io__tags__release.md @@ -3,42 +3,150 @@ Title: release | Botkube tags URL Source: https://botkube.io/tags/release Markdown Content: -Botkube blog ------------- +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started +Botkube articles +Tag: +release +MAR 6, 2024 +5min + read +Real-Time Platform Engineer Advice with Botkube's AI Assistant -Thank you! Your submission has been received! +Imagine having K8s experts available, providing help to your team 24/7. Get real-time, data-driven insights about your Kubernetes clusters without ever leaving your chat window with AI Assistant. -Oops! Something went wrong while submitting the form. +NOV 27, 2023 +4min + read +Rapid Onboarding of Microsoft Teams and Slack -### Open-source tools to help you with Kubernetes-native development & testing +This release marks a milestone in providing a smoother and faster path to Kubernetes monitoring and management with upgraded integrations of Slack and Microsoft Teams. -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. +SEP 19, 2023 +5 minute + read +Botkube v1.4.0 Release Notes - Now with Native Argo CD Support -Botkube articles ----------------- +Our most recent release of Botkube brings important features that help with Kubernetes troubleshooting. This update introduces Botkube support for Argo CD sources and more. -Thank you! Your submission has been received! +AUG 28, 2023 +5 mins + read +Introducing Botkube's Integration with Flux -Oops! Something went wrong while submitting the form. +As the demand for seamless scalability and efficient teamwork increases, an innovative solution is needed. Enter the Botkube Flux integration to tackle collaboration, automation, and scaling head-on. -Tag: ----- +AUG 15, 2023 +5 minute + read +Botkube v1.3.0 Release Notes -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +Our most recent release of Botkube Cloud & Open Source brings important features that help with Kubernetes troubleshooting. This update introduces several new Botkube plugins. -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +AUG 9, 2023 +6min + read +Seamlessly Migrate from Botkube Open Source to Cloud -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +With our new CLI migration tool, current open-source users are able to migrate their data and configurations over to Botkube Cloud in minutes. -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +JUL 31, 2023 +5min. + read +ChatGPT to Troubleshoot K8s Errors with Botkube’s Doctor Plug-in -#### Get to Know Kubeshop +People have been using ChatGPT and AI for many uses over the past year. But have you heard of ChatGPT recommendations for Kubernetes troubleshooting? Learn more about our latest feature. -#### Botkube +JUL 18, 2023 +5 minute + read +Botkube v1.2.0 Release Notes -Copyright © 2022 Kubeshop, LLC. All rights reserved. +Our most recent realese of Botkube Cloud & Open Source brings important features that help with Kubernetes troubleshooting. This update brings quick Slack connection to your cluster! -Copyright © 2024 Kubeshop, LLC. All rights reserved. +JUN 21, 2023 +5 minute + read +Botkube v1.1.0 Release Notes + +Our most recent realese of Botkube Cloud & Open Source brings important features that help with Kubernetes troubleshooting. This update brings quick Slack connection to your cluster! + +FEB 6, 2023 +6 min + read +Botkube v0.18.0 Release Notes + +Botkube v0.18.0 adds a Prometheus source plugin and command aliases. + +JAN 9, 2023 +6 min + read +Botkube v0.17.0 Release Notes + +Botkube v0.17.0 adds a plugin system and the first executor plugin allowing you to run Helm commands right from your chat tools. -#### Explore Kubeshop Projects +NOV 28, 2022 +6 min + read +Botkube v0.16 Release Notes + +Botkube v0.16.0 adds new event filter criteria allowing more granular event tuning, and actions, which automatically run commands when specified event types are received. + +OCT 24, 2022 +4 min + read +Botkube v0.15.0 Release notes + +Botkube v0.15.0 adds some great interactivity features aimed at application developers who may not be Kubernetes experts. + +OCT 6, 2022 +5 min + read +Botkube v0.14 Release Notes + +BotKube v0.14.0 addresses a number of community-suggested issues and adds some great features to help you control the notification levels you receive from your Kubernetes clusters. + +SEP 1, 2022 +2 min + read +Botkube v0.13 Release Notes + +The latest release of Botkube is here! This release from the new Botkube team includes user-requested multi-channel support and much more. + +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem +Copyright © 2024 Kubeshop, LLC. All rights reserved. +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__slack.md b/hack/assistant-setup/content/botkube.io__tags__slack.md index 6eb7416..5d0a33b 100644 --- a/hack/assistant-setup/content/botkube.io__tags__slack.md +++ b/hack/assistant-setup/content/botkube.io__tags__slack.md @@ -3,42 +3,66 @@ Title: Slack | Botkube tags URL Source: https://botkube.io/tags/slack Markdown Content: -Botkube blog ------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - -### Open-source tools to help you with Kubernetes-native development & testing - -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. - +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started Botkube articles ----------------- - -Thank you! Your submission has been received! - -Oops! Something went wrong while submitting the form. - Tag: ----- - -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +Slack +JAN 16, 2024 +10 minutes + read +Optimizing K8s Management with Botkube: 5 Essential DevOps Tasks to Automate -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +Check out these five key Kubernetes tasks that Botkube can optimize and automate! -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +NOV 27, 2023 +4min + read +Rapid Onboarding of Microsoft Teams and Slack -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +This release marks a milestone in providing a smoother and faster path to Kubernetes monitoring and management with upgraded integrations of Slack and Microsoft Teams. -#### Get to Know Kubeshop +NOV 6, 2023 +3 minutes + read +Get Botkube Running in Under 3 Minutes the New Slack App -#### Botkube - -Copyright © 2022 Kubeshop, LLC. All rights reserved. +Life is short, install quickly - Learn how to get started with Botkube and Slack +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem Copyright © 2024 Kubeshop, LLC. All rights reserved. - -#### Explore Kubeshop Projects +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/botkube.io__tags__tutorial.md b/hack/assistant-setup/content/botkube.io__tags__tutorial.md index c59676b..e01e753 100644 --- a/hack/assistant-setup/content/botkube.io__tags__tutorial.md +++ b/hack/assistant-setup/content/botkube.io__tags__tutorial.md @@ -3,42 +3,108 @@ Title: Tutorial | Botkube tags URL Source: https://botkube.io/tags/tutorial Markdown Content: -Botkube blog ------------- +Join Maria for 5 Essential K8s Monitoring & Troubleshooting Tasks to Automate +Product +Pricing +Support +Company +Sign in +Get Demo +Get Started +Botkube articles +Tag: +Tutorial +NOV 29, 2023 +10 minutes + read +Maximize Your DevOps Teams Efficiency with Botkube + Microsoft Teams -Thank you! Your submission has been received! +Get Botkube up and running with Microsoft Teams in less than 5 mins with this walk-through tutorial -Oops! Something went wrong while submitting the form. +OCT 30, 2023 +15 min + read +Integrating Microsoft Teams with Azure for K8s Deployments -### Open-source tools to help you with Kubernetes-native development & testing +Botkube is entering the MS teams world -Whether you are a Developer, a Tester, or a DevOps, learn how to streamline your Kubernetes-based projects with Kubeshop tools. +SEP 29, 2023 +7 minutes + read +Tutorial: Infuse collaboration into your Argo workflows with Botkube -Botkube articles ----------------- +Learn how to set up Botkube with ArgoCD plugins in this step-by-step tutorial. -Thank you! Your submission has been received! +SEP 1, 2023 +10 mins + read +Tutorial: Streamlining GitOps with the Botkube Flux Plugin -Oops! Something went wrong while submitting the form. +Learn how to set up Botkube with Flux and GitHub-events plugins in this step-by-step tutorial. Configure permissions, insert tokens, and install seamlessly. -Tag: ----- +AUG 9, 2023 +6min + read +Seamlessly Migrate from Botkube Open Source to Cloud -[![Image 1](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f53a16e2f2d9_Logo-Kubeshop.svg)](https://kubeshop.io/) +With our new CLI migration tool, current open-source users are able to migrate their data and configurations over to Botkube Cloud in minutes. -Botkube is made by Kubeshop -— a first of its kind open source accelerator focused on the cloud native ecosystem +JUL 31, 2023 +7min. + read +Troubleshoot K8s with ChatGPT + Botkube's Doctor Plugin -At Kubeshop, our mission is to build a thriving open source ecosystem and pipeline of next-generation Kubernetes products and projects. +This Tutorial is about the new ChatGPT-powered Doctor plugin which allows for easy diagnosis and solution recommendations for Kubernetes troubleshooting. -[![Image 2](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5ad84e2f2da_%EF%82%9B.svg)](https://github.com/kubeshop)[![Image 3](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f5e948e2f2dc_%EF%8E%92.svg)](https://discord.com/invite/6zupCZFQbe)[![Image 4](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f56100e2f2dd_%EF%82%99.svg)](https://twitter.com/thekubeshop)[![Image 5](https://assets-global.website-files.com/61e00b3936e571a4ea7a5a4c/6229e3e36326f57933e2f2db_%EF%82%8C.svg)](https://www.linkedin.com/company/kubeshop)[![Image 6](https://assets-global.website-files.com/633705de6adaa38599d8e258/639be0ef872f3147b5c8f5a4_youtube.svg)](https://www.youtube.com/@thekubeshop) +JUL 6, 2023 +7 mins + read +Leveraging Our Cloud Slack for K8s Collaborative Troubleshooting -#### Get to Know Kubeshop +This step-by-step tutorial gets you started with Botkube Cloud Slack App, which enables collaborative troubleshooting by seamlessly integrating with your organization's Slack workspace. -#### Botkube +MAY 24, 2023 +10 minutes + read +Implementing Your Own Botkube Plugin - Keptn Use Case -Copyright © 2022 Kubeshop, LLC. All rights reserved. +Botkube has plugin system that allows you to extend the functionalities of Botkube core to satisfy your requirements. Here is a real-life example using Keptn. -Copyright © 2024 Kubeshop, LLC. All rights reserved. +MAR 30, 2023 +6 minutes + read +Beginner's Guide to Botkube Plugin Development: Part 1 + +This introduction will teach you how Botkube plug-ins can unify your cloud native tools. -#### Explore Kubeshop Projects +Botkube is made by Kubeshop 
— a first of its kind open-source accelerator focused on the cloud native ecosystem +Copyright © 2024 Kubeshop, LLC. All rights reserved. +Privacy Policy | Terms of Service | End user license +Botkube +Product +Integrations +Case Studies +Features +Pricing +Support +Docs +Learn +Slack +GitHub +2.5K +Company +About Us +Events +Blog +News +Contact Us +Sign in +Get Started +Get to Know Kubeshop +Careers +The Team +Investors +News +Kubeshop Github +Kubeshop Blogs +Explore Kubeshop Projects diff --git a/hack/assistant-setup/content/docs.botkube.io.md b/hack/assistant-setup/content/docs.botkube.io.md index 6dc3060..2dd509f 100644 --- a/hack/assistant-setup/content/docs.botkube.io.md +++ b/hack/assistant-setup/content/docs.botkube.io.md @@ -3,15 +3,12 @@ Title: Installation | Botkube URL Source: https://docs.botkube.io/ Markdown Content: -* [](https://docs.botkube.io/) -* Installation +What is Botkube?[​](#what-is-botkube "Direct link to What is Botkube?") +----------------------------------------------------------------------- -Version: 1.10 +Botkube is a troubleshooting and monitoring solution that empowers DevOps teams to work more efficiently, enables developers to troubleshoot their applications without special Kubernetes access or knowledge, and improves reliability by delivering timely, context-enhanced notifications about events in your Kubernetes environments. -Botkube has two components that need to be installed. - -1. Botkube App Integration in your Slack/Mattermost/Microsoft Teams/Discord -2. Botkube agent in your Kubernetes cluster +It integrates with multiple platforms, such as Slack, Microsoft Teams, Discord and Mattermost. Botkube monitors events from various sources, allows you to securely run commands, and run automated actions triggered by any of the plugins Botkube supports or your own custom plugins. Feature map[​](#feature-map "Direct link to Feature map") --------------------------------------------------------- @@ -46,8 +43,4 @@ Integrations[​](#integrations "Direct link to Integrations") tip -You can use a single Botkube agent to serve all the interfaces - Slack, Mattermost, Microsoft Teams, Elasticsearch and Webhook. -You just need to enable required mediums through the settings and add a necessary configuration. -_see the [configuration](https://docs.botkube.io/configuration) section for more information_ - -[Next Slack](https://docs.botkube.io/installation/socketslack) +You can enable multiple platform integrations using a single Botkube agent. diff --git a/hack/assistant-setup/content/docs.botkube.io__architecture.md b/hack/assistant-setup/content/docs.botkube.io__architecture.md index 68e7fe5..7b8d783 100644 --- a/hack/assistant-setup/content/docs.botkube.io__architecture.md +++ b/hack/assistant-setup/content/docs.botkube.io__architecture.md @@ -1,14 +1,17 @@ -Title: Architecture | Botkube +Title: Botkube URL Source: https://docs.botkube.io/architecture/ Markdown Content: +Architecture +------------ + This document describes high-level Botkube architecture, all components in the system and interactions between them. Botkube is split into two main parts: * Botkube agent: Botkube binary that serves as a bridge between communication platforms (e.g. Slack, Discord) and Botkube plugins (sources and executors). -* [Botkube plugins](https://docs.botkube.io/plugin/): The executable binaries that communicate with Botkube agent over an RPC interface. Botkube supports two types of plugins, respectively called Source plugins and Executor plugins. +* [Botkube plugins](https://docs.botkube.io/plugins/): The executable binaries that communicate with Botkube agent over an RPC interface. Botkube supports two types of plugins, respectively called Source plugins and Executor plugins. Components[​](#components "Direct link to Components") ------------------------------------------------------ diff --git a/hack/assistant-setup/content/docs.botkube.io__architecture__cloud-teams.md b/hack/assistant-setup/content/docs.botkube.io__architecture__cloud-teams.md index b82ca62..6e50720 100644 --- a/hack/assistant-setup/content/docs.botkube.io__architecture__cloud-teams.md +++ b/hack/assistant-setup/content/docs.botkube.io__architecture__cloud-teams.md @@ -1,4 +1,4 @@ -Title: Cloud Teams connections overview | Botkube +Title: Botkube app for Microsoft Teams | Botkube URL Source: https://docs.botkube.io/architecture/cloud-teams @@ -29,7 +29,7 @@ Components details Agent[​](#agent "Direct link to Agent") --------------------------------------- -The Botkube Agent Docker image is hosted on the GitHub Container registry, which uses the package namespace [https://ghcr.io.](https://ghcr.io./) The image format link: +The Botkube Agent Docker image is hosted on the GitHub Container registry, which uses the package namespace [https://ghcr.io](https://ghcr.io/). The image format link: * [`ghcr.io/kubeshop/botkube:{botkube_version}`](https://github.com/kubeshop/botkube/pkgs/container/botkube), e.g., `ghcr.io/kubeshop/botkube:v1.8.0` @@ -49,7 +49,7 @@ During startup, the Botkube Agent downloads plugins index and all enabled plugin Each plugin may define required external dependencies that are downloaded by the [Plugin manager](#plugin-manager) at Agent startup. For now, those dependencies are taken from the official sources and are not mirrored to the Botkube Cloud registry. Here are the links that describe external dependencies for each officially supported plugin: -* [`kubectl`](https://docs.botkube.io/configuration/executor/kubectl) executor: [https://github.com/kubeshop/botkube/blob/release-1.9/internal/executor/kubectl/executor.go#L33-L42](https://github.com/kubeshop/botkube/blob/release-1.9/internal/executor/kubectl/executor.go#L33-L42) +* [`kubectl`](https://docs.botkube.io/plugins/kubectl) executor: [https://github.com/kubeshop/botkube/blob/release-1.9/internal/executor/kubectl/executor.go#L33-L42](https://github.com/kubeshop/botkube/blob/release-1.9/internal/executor/kubectl/executor.go#L33-L42) `helm` plugin: @@ -80,7 +80,7 @@ If a plugin is not listed here, then it doesn't have any external dependencies. ### Analytics[​](#analytics "Direct link to Analytics") -The Agent uses the official [Go SDK](https://github.com/segmentio/analytics-go) to send anonymous analytics to [https://segment.io.](https://segment.io./) This library is sending a POST request on the `https://api.segment.io` endpoint. +The Agent uses the official [Go SDK](https://github.com/segmentio/analytics-go) to send anonymous analytics to [https://segment.io](https://segment.io/). This library is sending a POST request on the `https://api.segment.io` endpoint. ### Control-plane connection[​](#control-plane-connection "Direct link to Control-plane connection") diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube.md b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube.md index bbe5b06..edc3009 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube.md @@ -3,6 +3,35 @@ Title: botkube | Botkube URL Source: https://docs.botkube.io/cli/commands/botkube Markdown Content: +botkube[​](#botkube "Direct link to botkube") +--------------------------------------------- + +Botkube CLI + +### Synopsis[​](#synopsis "Direct link to Synopsis") + +botkube - Botkube CLI + A utility that simplifies working with Botkube. +Quick Start: + +$ botkube install # Install Botkube $ botkube uninstall # Uninstall Botkube + +Botkube Cloud: + +$ botkube login # Login into Botkube Cloud $ botkube migrate # Automatically migrates Open Source installation into Botkube Cloud + +### Options[​](#options "Direct link to Options") + -h, --help help for botkube -v, --verbose int/string[=simple] Prints more verbose output. Allowed values: 0 - disable, 1 - simple, 2 - trace (default 0 - disable) + +### SEE ALSO[​](#see-also "Direct link to SEE ALSO") + +* [botkube config](https://docs.botkube.io/cli/commands/botkube_config) - This command consists of multiple subcommands for working with Botkube configuration +* [botkube install](https://docs.botkube.io/cli/commands/botkube_install) - install or upgrade Botkube in k8s cluster +* [botkube login](https://docs.botkube.io/cli/commands/botkube_login) - Login to a Botkube Cloud +* [botkube migrate](https://docs.botkube.io/cli/commands/botkube_migrate) - Automatically migrates Botkube installation into Botkube Cloud +* [botkube telemetry](https://docs.botkube.io/cli/commands/botkube_telemetry) - Configure collection of anonymous analytics +* [botkube uninstall](https://docs.botkube.io/cli/commands/botkube_uninstall) - uninstall Botkube from cluster +* [botkube version](https://docs.botkube.io/cli/commands/botkube_version) - Print the CLI version diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_config_get.md b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_config_get.md index eb0ebdb..6dacb5c 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_config_get.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_config_get.md @@ -3,7 +3,7 @@ Title: botkube config get | Botkube URL Source: https://docs.botkube.io/cli/commands/botkube_config_get Markdown Content: -Version: 1.10 +Version: 1.11 botkube config get[​](#botkube-config-get "Direct link to botkube config get") ------------------------------------------------------------------------------ diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_migrate.md b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_migrate.md index 94cdb7c..6ca5b3e 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_migrate.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_migrate.md @@ -7,6 +7,8 @@ Automatically migrates Botkube installation to Botkube Cloud. This command will Use label selector to choose which Botkube pod you want to migrate. By default it's set to app=botkube. +$ botkube migrate --label app=botkube --instance-name botkube-slack # Creates new Botkube Cloud instance with name botkube-slack and migrates pod with label app=botkube to it + -y, --auto-approve Skips interactive approval for upgrading Botkube installation. --cfg-exporter-image-registry string Registry for the Config Exporter job image (default "ghcr.io") --cfg-exporter-image-repo string Repository for the Config Exporter job image (default "kubeshop/botkube-config-exporter") --cfg-exporter-image-tag string Tag of the Config Exporter job image (default "v9.99.9-dev") --cfg-exporter-poll-period duration Interval used to check if Config Exporter job was finished (default 1s) --cfg-exporter-timeout duration Maximum execution time for the Config Exporter job (default 1m0s) --cloud-api-url string Botkube Cloud API URL (default "https://api.botkube.io/graphql") --cloud-dashboard-url string Botkube Cloud URL (default "https://app.botkube.io") --cloud-env-api-key string API key environment variable name specified under Deployment for cloud installation. (default "CONFIG_PROVIDER_API_KEY") --cloud-env-endpoint string Endpoint environment variable name specified under Deployment for cloud installation. (default "CONFIG_PROVIDER_ENDPOINT") --cloud-env-id string Identifier environment variable name specified under Deployment for cloud installation. (default "CONFIG_PROVIDER_IDENTIFIER") -h, --help help for migrate --image-tag string Botkube image tag, e.g. "latest" or "v1.7.0" --instance-name string Botkube Cloud Instance name that will be created --kubeconfig string Paths to a kubeconfig. Only required if out-of-cluster. -l, --label string Label used for identifying the Botkube pod (default "app=botkube") -n, --namespace string Namespace of Botkube pod (default "botkube") -q, --skip-connect Skips connecting to Botkube Cloud after migration --skip-open-browser Skips opening web browser after migration --timeout duration Maximum time during which the Botkube installation is being watched, where "0" means "infinite". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". (default 10m0s) --token string Botkube Cloud authentication token -w, --watch --timeout Watches the status of the Botkube installation until it finish or the defined --timeout occurs. (default true) -v, --verbose int/string[=simple] Prints more verbose output. Allowed values: 0 - disable, 1 - simple, 2 - trace (default 0 - disable) diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_disable.md b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_disable.md index 5be87d3..83146d6 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_disable.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_disable.md @@ -3,7 +3,7 @@ Title: botkube telemetry disable | Botkube URL Source: https://docs.botkube.io/cli/commands/botkube_telemetry_disable Markdown Content: -Version: 1.10 +Version: 1.11 botkube telemetry disable[​](#botkube-telemetry-disable "Direct link to botkube telemetry disable") --------------------------------------------------------------------------------------------------- diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_enable.md b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_enable.md index fa5c691..ee2effc 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_enable.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_telemetry_enable.md @@ -3,7 +3,7 @@ Title: botkube telemetry enable | Botkube URL Source: https://docs.botkube.io/cli/commands/botkube_telemetry_enable Markdown Content: -Version: 1.10 +Version: 1.11 botkube telemetry enable[​](#botkube-telemetry-enable "Direct link to botkube telemetry enable") ------------------------------------------------------------------------------------------------ diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_uninstall.md b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_uninstall.md index 94485b7..4c0c1b0 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_uninstall.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_uninstall.md @@ -3,7 +3,7 @@ Title: botkube uninstall | Botkube URL Source: https://docs.botkube.io/cli/commands/botkube_uninstall Markdown Content: -Version: 1.10 +Version: 1.11 botkube uninstall[​](#botkube-uninstall "Direct link to botkube uninstall") --------------------------------------------------------------------------- diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_version.md b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_version.md index 356b917..9786407 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_version.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__commands__botkube_version.md @@ -3,13 +3,18 @@ Title: botkube version | Botkube URL Source: https://docs.botkube.io/cli/commands/botkube_version Markdown Content: +* [](https://docs.botkube.io/) +* CLI +* Commands +* botkube version + +Version: 1.11 + botkube version[​](#botkube-version "Direct link to botkube version") --------------------------------------------------------------------- Print the CLI version - botkube version [flags] - ### Examples[​](#examples "Direct link to Examples") botkube versionbotkube version -o=jsonbotkube version -o=yamlbotkube version -o=short @@ -25,3 +30,13 @@ Print the CLI version ### SEE ALSO[​](#see-also "Direct link to SEE ALSO") * [botkube](https://docs.botkube.io/cli/commands/botkube) - Botkube CLI + +[Previous botkube uninstall](https://docs.botkube.io/cli/commands/botkube_uninstall)[Next Self-hosted Configuration](https://docs.botkube.io/self-hosted-configuration/) + +* [botkube version](#botkube-version) + * [Examples](#examples) + * [Options](#options) + * [Options inherited from parent commands](#options-inherited-from-parent-commands) + * [SEE ALSO](#see-also) + +By continuing to use our site, you consent to Kubeshop using cookies in accordance with our [Privacy Policy.](https://botkube.io/privacy-policy) diff --git a/hack/assistant-setup/content/docs.botkube.io__cli__getting-started.md b/hack/assistant-setup/content/docs.botkube.io__cli__getting-started.md index 364335c..3439809 100644 --- a/hack/assistant-setup/content/docs.botkube.io__cli__getting-started.md +++ b/hack/assistant-setup/content/docs.botkube.io__cli__getting-started.md @@ -3,7 +3,7 @@ Title: Getting Started | Botkube URL Source: https://docs.botkube.io/cli/getting-started Markdown Content: -Version: 1.10 +Version: 1.11 Botkube includes a command-line interface (CLI) that you can use to interact with Botkube and Botkube Cloud from your terminal, or from a script. @@ -26,7 +26,7 @@ Use [Homebrew](https://brew.sh/) to install the latest Botkube CLI: Alternatively, download the Botkube CLI binary and move it to a directory under your `$PATH`: - curl -Lo botkube https://github.com/kubeshop/botkube/releases/download/v1.10.0/botkube-darwin-arm64chmod +x botkube && mv botkube /usr/local/bin/botkube + curl -Lo botkube https://github.com/kubeshop/botkube/releases/download/v1.11.0/botkube-darwin-arm64chmod +x botkube && mv botkube /usr/local/bin/botkube First use[​](#first-use "Direct link to First use") --------------------------------------------------- diff --git a/hack/assistant-setup/content/docs.botkube.io__community__contribute.md b/hack/assistant-setup/content/docs.botkube.io__community__contribute.md index 9a9301f..8753d98 100644 --- a/hack/assistant-setup/content/docs.botkube.io__community__contribute.md +++ b/hack/assistant-setup/content/docs.botkube.io__community__contribute.md @@ -179,7 +179,7 @@ Create your Slack account on [Botkube](https://join.botkube.io/) workspace. To report bug or feature, use [GitHub issues](https://github.com/kubeshop/botkube/issues/new/choose). -[](https://docs.botkube.io/community/contribute/release) +[Elasticsearch notifier development](https://docs.botkube.io/community/contribute/elasticsearch-develop) * [Contributing to documentation](#contributing-to-documentation) * [Build and run Botkube from source code](#build-and-run-botkube-from-source-code) diff --git a/hack/assistant-setup/content/docs.botkube.io__community__contribute__elasticsearch-develop.md b/hack/assistant-setup/content/docs.botkube.io__community__contribute__elasticsearch-develop.md index c1444b7..6f60cbf 100644 --- a/hack/assistant-setup/content/docs.botkube.io__community__contribute__elasticsearch-develop.md +++ b/hack/assistant-setup/content/docs.botkube.io__community__contribute__elasticsearch-develop.md @@ -104,7 +104,7 @@ To review if the events are properly saved in Elasticsearch, follow these steps: curl http://localhost:9200/$INDEX_NAME/_search\?pretty -[](https://docs.botkube.io/community/contribute/ms-teams-develop)[Outgoing Webhook development](https://docs.botkube.io/community/contribute/webhook-develop) +[](https://docs.botkube.io/community/contribute/)[Outgoing Webhook development](https://docs.botkube.io/community/contribute/webhook-develop) * [Elasticsearch v8 setup](#elasticsearch-v8-setup) * [Steps](#steps) diff --git a/hack/assistant-setup/content/docs.botkube.io__community__contribute__ms-teams-develop.md b/hack/assistant-setup/content/docs.botkube.io__community__contribute__ms-teams-develop.md deleted file mode 100644 index f59b138..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__community__contribute__ms-teams-develop.md +++ /dev/null @@ -1,36 +0,0 @@ -Title: MS Teams Bot development | Botkube - -URL Source: https://docs.botkube.io/community/contribute/ms-teams-develop - -Markdown Content: -* [](https://docs.botkube.io/) -* [Contribute](https://docs.botkube.io/community/contribute/) -* MS Teams Bot development - -MS Teams Bot development ------------------------- - -Microsoft Teams is an entirely cloud-based product. Because of this, Botkube must be publicly accessible via an HTTPS endpoint. - -For a local Kubernetes cluster, you can use the tunneling software, for example [`ngrok`](https://ngrok.com/). It creates an externally addressable URL for a port you open locally on your machine. - -Steps[​](#steps "Direct link to Steps") ---------------------------------------- - -1. Install [`ngrok`](https://ngrok.com/download). -2. Start `ngrok`: -3. Install Botkube according to the [MS Teams tutorial](https://docs.botkube.io/installation/teams/), but apply the following changes: - 1. Ignore the [Prerequisites](https://docs.botkube.io/installation/teams/#prerequisites) section and skip the Ingress controller installation. - 2. In the [B. Deploy Botkube controller](https://docs.botkube.io/installation/teams/#b-deploy-botkube-controller) section, skip all parts related to the certificate and Ingress setup. - 3. In the [Add a Bot to the App](https://docs.botkube.io/installation/teams/#add-the-bot-feature-to-the-app) section, specify the base URL from step 2 for the **Messaging Endpoint** property. Use the following URL format: `{ngrok_url}/bots/teams/v1/messages`, for example, `https://177b-37-30-104-55.eu.ngrok.io/bots/teams/v1/messages`. - -If you stop and restart `ngrok`, the URL changes. In such a case, you need to update the **Messaging Endpoint** property and reinstall the bot into your Team. - -4. After Botkube installation, forward the local port to the Kubernetes Botkube Service: - - kubectl port-forward -n botkube svc/botkube 3978 - - -[](https://docs.botkube.io/community/contribute/release)[Elasticsearch notifier development](https://docs.botkube.io/community/contribute/elasticsearch-develop) - -* [Steps](#steps) diff --git a/hack/assistant-setup/content/docs.botkube.io__community__contribute__release.md b/hack/assistant-setup/content/docs.botkube.io__community__contribute__release.md deleted file mode 100644 index ab62596..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__community__contribute__release.md +++ /dev/null @@ -1,114 +0,0 @@ -Title: Release instruction | Botkube - -URL Source: https://docs.botkube.io/community/contribute/release - -Markdown Content: -* [](https://docs.botkube.io/) -* [Contribute](https://docs.botkube.io/community/contribute/) -* Release instruction - -Release instruction -------------------- - -This document describes how to prepare and publish a new Botkube release. - -Prerequisites[​](#prerequisites "Direct link to Prerequisites") ---------------------------------------------------------------- - -* Proper permission on main `botkube` or `botkube-docs` repositories to trigger GitHub Actions. - -The `botkube` repository[​](#the-botkube-repository "Direct link to the-botkube-repository") --------------------------------------------------------------------------------------------- - -Draft GitHub releases need to be manually checked and marked as pre-releases or published directly in the GitHub UI. - -### New minor or major release[​](#new-minor-or-major-release "Direct link to New minor or major release") - -1. Navigate to [**Cut a new release**](https://github.com/kubeshop/botkube/actions/workflows/cut-new-release.yml) workflow. - -2. Click on **Run workflow** drop-down, fill **Version** field. (e.g. `v0.14.0`), and click **Run Workflow**. ![Image 1: Botkube Release Cut](https://docs.botkube.io/assets/images/release_cut_version-d9fd97a97fdb2916910f1f692f2307e6.png) - -3. It will generate all the needed artifacts and tag it with a release candidate tag, e.g. `v0.14.0-rc.1`. - - 3.1. After final release candidate tests have been successful, continue to step 4. - - 3.2. If bug is detected in the release candidate, create a pull-request with a bug fix against the release branch. Once the pull-request is merged, and the [**Prepare next release candidate**](https://github.com/kubeshop/botkube/actions/workflows/next-rc.yml) workflow will be automatically triggered, and a new release candidate will be published, e.g. `v0.14.0-rc.2`. - -4. Navigate to [**Finalize release**](https://github.com/kubeshop/botkube/actions/workflows/finalize-release.yml) workflow and click on **Run workflow** drop-down and fill **Version** field to finalize specific release. (e.g. `v0.14.0`) ![Image 2: Botkube Finalize Release](https://docs.botkube.io/assets/images/release_finalize-0825e61a5431134f112afea42be0bd2e.png) - -5. If you need to do the patch release after you executed the [**Finalize release**](https://github.com/kubeshop/botkube/actions/workflows/finalize-release.yml) workflow, go to [**New patch release**](#new-patch-release). - - -### New patch release[​](#new-patch-release "Direct link to New patch release") - -Let say that you have published `v0.15.0` release and detected a problem in this version. As an action item, you may want to create set of PRs against a given release branch which is this case is `release-0.15`. After merging PRs to that release branch the [**Prepare next release candidate**](https://github.com/kubeshop/botkube/actions/workflows/next-rc.yml) workflow **won't be executed until you will not cut a new patch version** `v0.15.1`. - -1. Navigate to [**Cut a new release**](https://github.com/kubeshop/botkube/actions/workflows/cut-new-release.yml) workflow. - -2. Click on **Run workflow** drop-down and provide a patch release version like `v0.15.1`. - - By doing this, workflow will use `release-0.15` as base release branch which was already created in minor and major releases, and will introduce new release candidates on top of that like `v0.15.1-rc.1`. - -3. Rest flow is the same as describe in 3rd point in [**New minor or major release**](#new-minor-or-major-release) section. - - -### What this automation does under the hood?[​](#what-this-automation-does-under-the-hood "Direct link to What this automation does under the hood?") - -Let say that, our current production version is `v0.14.0` and we want to do another minor release which is `v0.15.0`. Once you apply the release steps described above, it will perform following actions; - -* Creates a release branch like `release-0.15` and pushes to remote -* Processes Helm Chart to update helm docs, tags it as `v0.15.0-rc.1` and pushes to remote -* Generates Docker images for Botkube core -* Builds Botkube plugins (sources and executors) -* Generates Botkube plugin index YAML file -* Generates changelog -* Creates draft release candidate with changelog body. Additionally, adds Botkube plugins binaries and index YAML as assets. -* Publishes Helm chart -* After release candidate verification and triggering **Finalize Release** workflow, it repeats steps 2,3,4,5 with `v0.15.0` - -The `botkube-docs` repository[​](#the-botkube-docs-repository "Direct link to the-botkube-docs-repository") ------------------------------------------------------------------------------------------------------------ - -### Release Steps[​](#release-steps "Direct link to Release Steps") - -* Go to Botkube Docs [Actions page](https://github.com/kubeshop/botkube-docs/actions), and click **Release workflow** - -* Click **Run workflow** drop-down and fill the **Version** input for the next release, e.g. 0.14 ![Image 3: Botkube Docs Release](https://docs.botkube.io/assets/images/docs_release-fb71bd92b9cad55aa1361ab892ec1e37.png) - - Don't use semantic version format, only provide Major and Minor fields of semantic version like `0.14` - - -### What this automation does under the hood?[​](#what-this-automation-does-under-the-hood-1 "Direct link to What this automation does under the hood?") - -* Generates a release branch like `release/0.14` -* Copies current documentation `./docs` to `./versioned_docs`, -* Updates `./versions.json` file, -* Creates new sidebar in `./versioned_sidebars`, -* Creates an automatic PR against `main` branch - -### Archiving the older versions[​](#archiving-the-older-versions "Direct link to Archiving the older versions") - -Currently, archiving older versions is manual. To archive an older version, follow these steps: - -* Remove the version from `versions.json` - -* Remove all files under `versioned_docs/version-{version}` - -* Remove sidebar file under `versioned_sidebars/version-{version}-sidebars.json` - -* Add the version to `versions-archived.json` with a working link to the archived version. - - You can find the link from the Cloudflare Pages job run, e.g. [https://github.com/kubeshop/botkube-docs/runs/15868100283](https://github.com/kubeshop/botkube-docs/runs/15868100283). - - -[](https://docs.botkube.io/community/contribute/)[](https://docs.botkube.io/community/contribute/ms-teams-develop) - -* [Prerequisites](#prerequisites) -* [The `botkube` repository](#the-botkube-repository) - * [New minor or major release](#new-minor-or-major-release) - * [New patch release](#new-patch-release) - * [What this automation does under the hood?](#what-this-automation-does-under-the-hood) -* [The `botkube-docs` repository](#the-botkube-docs-repository) - * [Release Steps](#release-steps) - * [What this automation does under the hood?](#what-this-automation-does-under-the-hood-1) - * [Archiving the older versions](#archiving-the-older-versions) diff --git a/hack/assistant-setup/content/docs.botkube.io__community__credits.md b/hack/assistant-setup/content/docs.botkube.io__community__credits.md index 776513c..405d17d 100644 --- a/hack/assistant-setup/content/docs.botkube.io__community__credits.md +++ b/hack/assistant-setup/content/docs.botkube.io__community__credits.md @@ -9,16 +9,14 @@ Markdown Content: [![Image 1: Botkube Logo](https://docs.botkube.io/images/botkube-black.svg) **Botkube**](https://docs.botkube.io/)[Documentation](https://docs.botkube.io/)[Community](https://docs.botkube.io/community/contribute/) -[1.10](https://docs.botkube.io/) +[1.11](https://docs.botkube.io/) * [Unreleased 🚧](https://docs.botkube.io/next/) -* [1.10](https://docs.botkube.io/) +* [1.11](https://docs.botkube.io/) +* [1.10](https://docs.botkube.io/1.10/) * [1.9](https://docs.botkube.io/1.9/) * [1.8](https://docs.botkube.io/1.8/) * [1.7](https://docs.botkube.io/1.7/) -* [1.6](https://docs.botkube.io/1.6/) -* [1.5](https://docs.botkube.io/1.5/) -* [1.4](https://docs.botkube.io/1.4/) * * * * * [All versions](https://docs.botkube.io/versions) @@ -46,13 +44,13 @@ Thanks to all contributors for making Open Source Software a better place! ❤ [mszostok](https://github.com/mszostok "mszostok") -166 commits +171 commits [![Image 4: pkosiec](https://avatars.githubusercontent.com/u/7155799?v=4)](https://github.com/pkosiec "pkosiec") [pkosiec](https://github.com/pkosiec "pkosiec") -149 commits +154 commits [![Image 5: huseyinbabal](https://avatars.githubusercontent.com/u/1237982?v=4)](https://github.com/huseyinbabal "huseyinbabal") @@ -138,59 +136,59 @@ Thanks to all contributors for making Open Source Software a better place! ❤ 3 commits -[![Image 19: sgandon](https://avatars.githubusercontent.com/u/783286?v=4)](https://github.com/sgandon "sgandon") +[![Image 19: testwill](https://avatars.githubusercontent.com/u/8717479?v=4)](https://github.com/testwill "testwill") + +[testwill](https://github.com/testwill "testwill") + +2 commits + +[![Image 20: sgandon](https://avatars.githubusercontent.com/u/783286?v=4)](https://github.com/sgandon "sgandon") [sgandon](https://github.com/sgandon "sgandon") 2 commits -[![Image 20: vaijab](https://avatars.githubusercontent.com/u/1308018?v=4)](https://github.com/vaijab "vaijab") +[![Image 21: vaijab](https://avatars.githubusercontent.com/u/1308018?v=4)](https://github.com/vaijab "vaijab") [vaijab](https://github.com/vaijab "vaijab") 2 commits -[![Image 21: slalwani97](https://avatars.githubusercontent.com/u/29499601?v=4)](https://github.com/slalwani97 "slalwani97") +[![Image 22: slalwani97](https://avatars.githubusercontent.com/u/29499601?v=4)](https://github.com/slalwani97 "slalwani97") [slalwani97](https://github.com/slalwani97 "slalwani97") 2 commits -[![Image 22: beefcheeks](https://avatars.githubusercontent.com/u/4133158?v=4)](https://github.com/beefcheeks "beefcheeks") +[![Image 23: beefcheeks](https://avatars.githubusercontent.com/u/4133158?v=4)](https://github.com/beefcheeks "beefcheeks") [beefcheeks](https://github.com/beefcheeks "beefcheeks") 2 commits -[![Image 23: rajinator](https://avatars.githubusercontent.com/u/26853703?v=4)](https://github.com/rajinator "rajinator") +[![Image 24: rajinator](https://avatars.githubusercontent.com/u/26853703?v=4)](https://github.com/rajinator "rajinator") [rajinator](https://github.com/rajinator "rajinator") 2 commits -[![Image 24: Lion916](https://avatars.githubusercontent.com/u/46153551?v=4)](https://github.com/Lion916 "Lion916") +[![Image 25: Lion916](https://avatars.githubusercontent.com/u/46153551?v=4)](https://github.com/Lion916 "Lion916") [Lion916](https://github.com/Lion916 "Lion916") 2 commits -[![Image 25: hellozee](https://avatars.githubusercontent.com/u/12135951?v=4)](https://github.com/hellozee "hellozee") - -[hellozee](https://github.com/hellozee "hellozee") - -2 commits - [![Image 26: brampling](https://avatars.githubusercontent.com/u/18731474?v=4)](https://github.com/brampling "brampling") [brampling](https://github.com/brampling "brampling") 2 commits -[![Image 27: vinayakshnd](https://avatars.githubusercontent.com/u/4953411?v=4)](https://github.com/vinayakshnd "vinayakshnd") +[![Image 27: hellozee](https://avatars.githubusercontent.com/u/12135951?v=4)](https://github.com/hellozee "hellozee") -[vinayakshnd](https://github.com/vinayakshnd "vinayakshnd") +[hellozee](https://github.com/hellozee "hellozee") -1 commits +2 commits [![Image 28: vaibhavp](https://avatars.githubusercontent.com/u/12821749?v=4)](https://github.com/vaibhavp "vaibhavp") @@ -276,48 +274,48 @@ Thanks to all contributors for making Open Source Software a better place! ❤ 1 commits -[![Image 42: kichloo](https://avatars.githubusercontent.com/u/31816531?v=4)](https://github.com/kichloo "kichloo") +[![Image 42: vinayakshnd](https://avatars.githubusercontent.com/u/4953411?v=4)](https://github.com/vinayakshnd "vinayakshnd") + +[vinayakshnd](https://github.com/vinayakshnd "vinayakshnd") + +1 commits + +[![Image 43: kichloo](https://avatars.githubusercontent.com/u/31816531?v=4)](https://github.com/kichloo "kichloo") [kichloo](https://github.com/kichloo "kichloo") 1 commits -[![Image 43: voriol](https://avatars.githubusercontent.com/u/6683852?v=4)](https://github.com/voriol "voriol") +[![Image 44: voriol](https://avatars.githubusercontent.com/u/6683852?v=4)](https://github.com/voriol "voriol") [voriol](https://github.com/voriol "voriol") 1 commits -[![Image 44: wangyangjun](https://avatars.githubusercontent.com/u/3423330?v=4)](https://github.com/wangyangjun "wangyangjun") +[![Image 45: wangyangjun](https://avatars.githubusercontent.com/u/3423330?v=4)](https://github.com/wangyangjun "wangyangjun") [wangyangjun](https://github.com/wangyangjun "wangyangjun") 1 commits -[![Image 45: aslafy-z](https://avatars.githubusercontent.com/u/8191198?v=4)](https://github.com/aslafy-z "aslafy-z") +[![Image 46: aslafy-z](https://avatars.githubusercontent.com/u/8191198?v=4)](https://github.com/aslafy-z "aslafy-z") [aslafy-z](https://github.com/aslafy-z "aslafy-z") 1 commits -[![Image 46: atharwa-24](https://avatars.githubusercontent.com/u/54115798?v=4)](https://github.com/atharwa-24 "atharwa-24") +[![Image 47: atharwa-24](https://avatars.githubusercontent.com/u/54115798?v=4)](https://github.com/atharwa-24 "atharwa-24") [atharwa-24](https://github.com/atharwa-24 "atharwa-24") 1 commits -[![Image 47: gmkumar2005](https://avatars.githubusercontent.com/u/1712742?v=4)](https://github.com/gmkumar2005 "gmkumar2005") +[![Image 48: gmkumar2005](https://avatars.githubusercontent.com/u/1712742?v=4)](https://github.com/gmkumar2005 "gmkumar2005") [gmkumar2005](https://github.com/gmkumar2005 "gmkumar2005") 1 commits -[![Image 48: testwill](https://avatars.githubusercontent.com/u/8717479?v=4)](https://github.com/testwill "testwill") - -[testwill](https://github.com/testwill "testwill") - -1 commits - [![Image 49: harshal-Infracloud](https://avatars.githubusercontent.com/u/57384649?v=4)](https://github.com/harshal-Infracloud "harshal-Infracloud") [harshal-Infracloud](https://github.com/harshal-Infracloud "harshal-Infracloud") diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__action.md b/hack/assistant-setup/content/docs.botkube.io__configuration__action.md deleted file mode 100644 index 2050f3a..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__action.md +++ /dev/null @@ -1,20 +0,0 @@ -Title: Action | Botkube - -URL Source: https://docs.botkube.io/configuration/action - -Markdown Content: -The action configuration allows you to automate your workflow by defining commands that are executed on an incoming event. Similar to communication platforms, actions use [source bindings](https://docs.botkube.io/configuration/source/) to define the event sources (command triggers) and [executor bindings](https://docs.botkube.io/configuration/executor) to run a given command. - -The actions can be disabled and enabled using dedicated commands. See the [Automated actions](https://docs.botkube.io/usage/automated-actions) usage document for more details. - -The command output is sent to the communication platforms that define the same source bindings. If there is no communication platform defined with the same source bindings, the action is still executed, but the output is ignored. - -To learn more how to configure sources for communicators, read the [communication](https://docs.botkube.io/configuration/communication/) documentation. - -Each action defines the `command` property which defines a command to be executed. It supports [Go template](https://golang.org/pkg/text/template/) syntax. The command template is rendered before actual execution. - -There are multiple helper functions supported by the templating engine. To learn more, read the documentation on the [`slim-sprig`](https://go-task.github.io/slim-sprig/) library page. - - # 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.## Format: actions.{alias}actions: "describe-created-resource": # If true, enables the action. enabled: false # Action display name posted in the channels bound to the same source bindings. displayName: "Describe created resource" # 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 event properties on https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go. command: "kubectl describe {{ .Event.TypeMeta.Kind | lower }}{{ if .Event.Namespace }} -n {{ .Event.Namespace }}{{ end }} {{ .Event.Name }}" # Bindings for a given action. bindings: # Event sources that trigger a given action. sources: - k8s-create-events # Executors configuration used to execute a configured command. executors: - k8s-default-tools "show-logs-on-error": # If true, enables the action. enabled: false # Action display name posted in the channels bound to the same source bindings. displayName: "Show logs on error" # 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 event properties on https://github.com/kubeshop/botkube/blob/main/pkg/event/event.go. command: "kubectl logs {{ .Event.TypeMeta.Kind | lower }}/{{ .Event.Name }} -n {{ .Event.Namespace }}" # Bindings for a given action. bindings: # Event sources that trigger a given action. sources: - k8s-err-with-logs-events # Executors configuration used to execute a configured command. executors: - k8s-default-tools - -The `ChannelName` RBAC policy is not supported for automated actions at this time. Use the `Static` RBAC policy instead. For more information read the [RBAC](https://docs.botkube.io/configuration/rbac) documentation. diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__alias.md b/hack/assistant-setup/content/docs.botkube.io__configuration__alias.md deleted file mode 100644 index 3b526f7..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__alias.md +++ /dev/null @@ -1,16 +0,0 @@ -Title: Alias | Botkube - -URL Source: https://docs.botkube.io/configuration/alias - -Markdown Content: -Botkube can define multiple aliases for arbitrary 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`. - -Aliases work for all commands, including executor plugins and Botkube built-in ones. To learn more about how to configure Executors, see the [Executor](https://docs.botkube.io/configuration/executor/) section. - -Aliases are defined globally for the whole Botkube installation. Once they are configured, read the [Aliases](https://docs.botkube.io/usage/executor/#aliases) section in Usage document. - -You can configure aliases in the Botkube Cloud dashboard. - -To configure the aliases for the self-hosted Botkube installation, use the following syntax: - - # 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`.### Format: aliases.{alias}aliases: kc: command: kubectl displayName: "Kubectl alias" k: command: kubectl displayName: "Kubectl alias"## Multi-word alias example:# kgp:# command: kubectl get pods# displayName: "Get pods" diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__communication.md b/hack/assistant-setup/content/docs.botkube.io__configuration__communication.md deleted file mode 100644 index c4635d9..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__communication.md +++ /dev/null @@ -1,58 +0,0 @@ -Title: Communication | Botkube - -URL Source: https://docs.botkube.io/configuration/communication/ - -Markdown Content: -The communication settings contain: - -* Configuration for communication platforms scoped in separate communication groups, -* Platform-specific options, such as multichannel configuration for platforms that support channels. - -The settings are applicable only for self-hosted Botkube installation. Cloud Slack and Microsoft Teams platforms are exclusive to Botkube Cloud. - -Communication groups[​](#communication-groups "Direct link to Communication groups") ------------------------------------------------------------------------------------- - -Communication group is a way to aggregate separate configurations for a set of communication platforms. You can specify multiple communication groups, and, in a result, support multiple Slack or Mattermost workspaces, Discord servers, or Elasticsearch server instances. - -Also, most platforms also support another level of multiple configurations within a workspace. For example, Slack supports multichannel configuration. To learn more about platform-specific options, see the [Syntax](#syntax) section. - -note - -The purpose of the communication group is to allow using multiple workspaces, e.g. for Slack or Mattermost. To use multiple channels inside the same workspace, don't define separate communication groups, but use `channels` property under a given communication platform instead. - -### Example[​](#example "Direct link to Example") - -Consider the following configuration: - - communications: "first-group": # Your own alias of a given communication group socketSlack: enabled: true botToken: "{SLACK_BOT_TOKEN_1}" # Bot token for Botkube Slack app installed in Workspace 1 appToken: "{SLACK_APP_TOKEN_1}" # App token for Botkube Slack app installed in Workspace 1 channels: "general": # Your own alias for the channel configuration name: general bindings: executors: # Executors configuration for a given channel - k8s-default-tools sources: # Notification sources configuration for a given channel - k8s-events "random": # Your own alias for the channel configuration name: random bindings: executors: [] # Executors configuration for a given channel sources: # Notification sources configuration for a given channel - k8s-events "second-group": # Your own alias of a given communication group socketSlack: enabled: true botToken: "{SLACK_BOT_TOKEN_2}" # Bot token for Botkube Slack app installed in Workspace 2 appToken: "{SLACK_APP_TOKEN_2}" # App token for Botkube Slack app installed in Workspace 2 channels: "primary-channel": # Your own alias for the channel configuration name: general notification: # If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime. disabled: true bindings: executors: # Executors configuration for a given channel - k8s-default-tools sources: # Notification sources configuration for a given channel - k8s-events - -The example YAML configuration definition results in the following configuration. - -For Slack **Workspace 1**, as defined by the first communication group (`first-group`): - -* Notifications from `k8s-events` source are sent to the `general` and `random` channels. -* Commands from the `k8s-default-tools` configuration can be executed in the `general` channel. On `random` channel executors are not configured. - -For Slack **Workspace 2**, as defined by the second communication group (`second-group`): - -* Notifications are configured to be sent from the `k8s-events` source to the `general` channel. They are disabled by default, and can be enabled with `@Botkube` command or during Botkube upgrade. -* Commands from the `k8s-default-tools` configuration can be executed in the `general` channel. - -Source and Executor Bindings[​](#source-and-executor-bindings "Direct link to Source and Executor Bindings") ------------------------------------------------------------------------------------------------------------- - -Most of the communication platforms support executor and source bindings, which allows fine-tuning the notifications and allowed Botkube commands inside a given channel. - -With executor bindings you can configure which executors are allowed in a given channel. To read more about executor configuration, see the [Executor](https://docs.botkube.io/configuration/executor) document. - -With source bindings, you can specify which events are sent to a given channel (or, in case of Elasticsearch, index). To read more about source configuration, see the [Source](https://docs.botkube.io/configuration/source) document. - -Syntax[​](#syntax "Direct link to Syntax") ------------------------------------------- - -Each communication platform has specific options, however they share a similar syntax for consistency. For example, bot integrations such as Slack, Mattermost or Discord have multichannel support, that is you can configure multiple channels with separate bindings. Same with Elasticsearch - you can forward notifications to multiple Elasticsearch indices, according to the sources configuration. - - # 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.# @default -- See the `values.yaml` file for full object.### Format: communications.{alias}communications: "default-group": ## Settings for Slack with Socket Mode. socketSlack: # If true, enables Slack bot. enabled: false # Map of configured channels. The property name under `channels` object is an alias for a given configuration. # ## Format: channels.{alias} channels: "default": # Slack channel name without '#' prefix where you have added Botkube and want to receive notifications in. name: "SLACK_CHANNEL" bindings: # Executors configuration for a given channel. executors: - k8s-default-tools # Notification sources configuration for a given channel. sources: - k8s-err-events - k8s-recommendation-events # Slack bot token for your own Slack app. # [Ref doc](https://api.slack.com/authentication/token-types). botToken: "" # Slack app-level token for your own Slack app. # [Ref doc](https://api.slack.com/authentication/token-types). appToken: "" ## Settings for Mattermost. mattermost: # If true, enables Mattermost bot. enabled: false # User in Mattermost which belongs the specified Personal Access token. botName: "Botkube" # The URL (including http/https schema) where Mattermost is running. e.g https://example.com:9243 url: "MATTERMOST_SERVER_URL" # Personal Access token generated by Botkube user. token: "MATTERMOST_TOKEN" # The Mattermost Team name where Botkube is added. team: "MATTERMOST_TEAM" # Map of configured channels. The property name under `channels` object is an alias for a given configuration. # ## Format: channels.{alias} channels: "default": # The Mattermost channel name for receiving Botkube alerts. # The Botkube user needs to be added to it. name: "MATTERMOST_CHANNEL" notification: # If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime. disabled: false bindings: # Executors configuration for a given channel. executors: - k8s-default-tools # Notification sources configuration for a given channel. sources: - k8s-err-events - k8s-recommendation-events ## Settings for Discord. discord: # If true, enables Discord bot. enabled: false # Botkube Bot Token. token: "DISCORD_TOKEN" # Botkube Application Client ID. botID: "DISCORD_BOT_ID" # Map of configured channels. The property name under `channels` object is an alias for a given configuration. # ## Format: channels.{alias} channels: "default": # Discord channel ID for receiving Botkube alerts. # The Botkube user needs to be added to it. id: "DISCORD_CHANNEL_ID" notification: # If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime. disabled: false bindings: # Executors configuration for a given channel. executors: - k8s-default-tools # Notification sources configuration for a given channel. sources: - k8s-err-events - k8s-recommendation-events ## Settings for Elasticsearch. elasticsearch: # If true, enables Elasticsearch. enabled: false awsSigning: # If true, enables awsSigning using IAM for Elasticsearch hosted on AWS. Make sure AWS environment variables are set. # [Ref doc](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html). enabled: false # AWS region where Elasticsearch is deployed. awsRegion: "us-east-1" # 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. roleArn: "" # The server URL, e.g https://example.com:9243 server: "ELASTICSEARCH_ADDRESS" # Basic Auth username. username: "ELASTICSEARCH_USERNAME" # Basic Auth password. password: "ELASTICSEARCH_PASSWORD" # If true, skips the verification of TLS certificate of the Elastic nodes. # It's useful for clusters with self-signed certificates. skipTLSVerify: false # Specify the log level for Elasticsearch client. Leave empty to disable logging. ## Possible values: "info", "error", "trace". ## - "info": Logs information level messages. ## - "error": Logs information and error level messages. ## - "trace": Logs information, error, and trace level messages. ## To disable logging, simply leave the logLevel empty or remove the line. logLevel: "" # Map of configured indices. The `indices` property name is an alias for a given configuration. # ## Format: indices.{alias} indices: "default": # Configures Elasticsearch index settings. name: botkube type: botkube-event shards: 1 replicas: 0 bindings: # Notification sources configuration for a given index. sources: - k8s-err-events - k8s-recommendation-events ## Settings for Webhook. webhook: # If true, enables Webhook. enabled: false # The Webhook URL, e.g.: https://example.com:80 url: "WEBHOOK_URL" bindings: # Notification sources configuration for the webhook. sources: - k8s-err-events - k8s-recommendation-events - -The default configuration for Helm chart can be found in [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml). diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__doctor.md b/hack/assistant-setup/content/docs.botkube.io__configuration__executor__doctor.md deleted file mode 100644 index c08ad5d..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__doctor.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Doctor | Botkube - -URL Source: https://docs.botkube.io/configuration/executor/doctor - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__exec.md b/hack/assistant-setup/content/docs.botkube.io__configuration__executor__exec.md deleted file mode 100644 index e6c9cde..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__exec.md +++ /dev/null @@ -1,22 +0,0 @@ -Title: Exec | Botkube - -URL Source: https://docs.botkube.io/configuration/executor/exec - -Markdown Content: -info - -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). - -The `exec` executor plugin allows you to install and run CLI applications directly from chat (e.g., Slack, Discord, or Mattermost) without any hassle. - -The `exec` plugin is hosted by the Botkube Cloud plugin repository and requires active Botkube Cloud account. - -By default, the read-only `KUBECONFIG` is assigned. For enabling commands that require create, update or delete rules, you need to create specific (Cluster)Role and (Cluster)RoleBinding and reference it from plugin's `context` configuration. To learn more refer to the [RBAC section](https://docs.botkube.io/configuration/rbac). - -You can enable the plugin as a part of Botkube instance configuration. - - # An array of templates that define how to convert the command output into an interactive message.templates: # Link to templates source # It uses the go-getter library, which supports multiple URL formats (such as HTTP, Git repositories, or S3) and is able to unpack archives. # For more details, see the documentation at https://github.com/hashicorp/go-getter. - ref: github.com/kubeshop/botkube//cmd/executor/exec/templates?ref=release-1.8 diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__flux.md b/hack/assistant-setup/content/docs.botkube.io__configuration__executor__flux.md deleted file mode 100644 index eab29af..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__flux.md +++ /dev/null @@ -1,59 +0,0 @@ -Title: Flux | Botkube - -URL Source: https://docs.botkube.io/configuration/executor/flux - -Markdown Content: -Version: 1.10 - -info - -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). - -The Botkube Flux executor plugin allows you to run the [`flux`](https://fluxcd.io/) CLI commands directly within the chat window of your chosen communication platform. - -The Flux plugin is hosted by the Botkube Cloud plugin repository and requires active Botkube Cloud account. - -Prerequisite elevated RBAC permissions[​](#prerequisite-elevated-rbac-permissions "Direct link to Prerequisite elevated RBAC permissions") ------------------------------------------------------------------------------------------------------------------------------------------- - -One of the plugin capabilities is the `flux diff` command. To use it, you need to update the Flux plugin RBAC configuration. This is necessary because the command performs a server-side dry run that requires patch permissions, as specified in the [Kubernetes documentation](https://kubernetes.io/docs/reference/using-api/api-concepts/#dry-run-authorization). - -First, create RBAC resources on your cluster: - - cat > /tmp/flux-rbac.yaml << ENDOFFILE---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: name: fluxrules: - apiGroups: ["*"] resources: ["*"] verbs: ["get", "watch", "list", "patch"]---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: fluxroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: fluxsubjects:- kind: Group name: flux apiGroup: rbac.authorization.k8s.ioENDOFFILEkubectl apply -f /tmp/flux-rbac.yaml - -Next, use the `flux` group in the plugin RBAC configuration: - -![Image 1: Flux RBAC](https://docs.botkube.io/assets/images/flux-rbac-bfe6d7c972bcfd611669afd75a3bab20.png) - -Enabling plugin[​](#enabling-plugin "Direct link to Enabling plugin") ---------------------------------------------------------------------- - -You can enable the plugin as a part of Botkube instance configuration. - -1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. -2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. -3. Navigate to the platform tab which you want to configure. -4. Click **Add plugin** button. -5. Select the Flux plugin. -6. Click **Configure** button and then **Configuration as Code** tab. -7. Configure optional GitHub access token. - -The Flux plugin comes with integrated GitHub support. To enable it, you'll need a valid [GitHub token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token). Set the token with the following configuration: - - github: auth: accessToken: "" # your GitHub access token - -6. Click **Save** button. - -By default, the Flux plugin has read-only access. To perform actions like creating or deleting Flux-related sources, you'll need to customize the [RBAC](https://docs.botkube.io/configuration/rbac#configuration). - -Configuration Syntax[​](#configuration-syntax "Direct link to Configuration Syntax") ------------------------------------------------------------------------------------- - -The plugin supports the following configuration: - - github: auth: # GitHub access token. # Instructions for token creation: https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token. # Lack of token may limit functionality, e.g., adding comments to pull requests or approving them. accessToken: ""log: level: "info" diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__helm.md b/hack/assistant-setup/content/docs.botkube.io__configuration__executor__helm.md deleted file mode 100644 index 750439c..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__helm.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Helm | Botkube - -URL Source: https://docs.botkube.io/configuration/executor/helm - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__kubectl.md b/hack/assistant-setup/content/docs.botkube.io__configuration__executor__kubectl.md deleted file mode 100644 index 7260e54..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__executor__kubectl.md +++ /dev/null @@ -1,18 +0,0 @@ -Title: Kubectl | Botkube - -URL Source: https://docs.botkube.io/configuration/executor/kubectl - -Markdown Content: -The Botkube Kubectl executor plugin allows you to run the `kubectl` command directly in the chat window of each communication platform. - -By default, just the read-only `kubectl` commands are supported. For enabling commands that require create, update or delete rules, you need to create specific (Cluster)Role and (Cluster)RoleBinding and reference it in the RBAC configuration. To learn more, refer to the [RBAC section](https://docs.botkube.io/configuration/rbac). - -The Kubectl plugin is hosted by the official Botkube plugin repository. First, make sure that the `botkube` repository is defined under `plugins` in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. - -To enable Kubectl executor, add \``--set 'executors.k8s-default-tools.botkube/kubectl.enabled=true'` to a given Botkube [`install` command](https://docs.botkube.io/cli/commands/botkube_install). - - # Configures the default Namespace for executing Botkube `kubectl` commands. If not set, uses the 'default'.defaultNamespace: "default"# Configures the interactive kubectl command builder.interactiveBuilder: allowed: # Configures which K8s namespace are displayed in namespace dropdown. # If not specified, plugin needs to have access to fetch all Namespaces, otherwise Namespace dropdown won't be visible at all. namespaces: ["default"] # Configures which `kubectl` methods are displayed in commands dropdown. verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] # Configures which K8s resource are displayed in resources dropdown. resources: ["deployments", "pods", "namespaces"] - -For all collected `kubectl` executors bindings, configuration properties are overridden based on the order of the binding list for a given channel. The priority is given to the last binding specified on the list. Empty properties are omitted. - - communications: "default-group": socketSlack: channels: "default": name: "random" bindings: executors: - kubectl-one - kubectl-two - kubectl-threeexecutors: "kubectl-one": kubectl: enabled: true config: defaultNamespace: "default" interactiveBuilder: allowed: verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] resources: ["deployments", "pods", "namespaces"] "kubectl-two": kubectl: enabled: true config: interactiveBuilder: allowed: namespaces: ["default"] verbs: ["api-resources", "top"] "kubectl-three": kubectl: enabled: false config: interactiveBuilder: allowed: namespaces: ["kube-system"] diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__helm-chart-parameters.md b/hack/assistant-setup/content/docs.botkube.io__configuration__helm-chart-parameters.md deleted file mode 100644 index 9b4bee4..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__helm-chart-parameters.md +++ /dev/null @@ -1,6 +0,0 @@ -Title: Helm chart parameters | Botkube - -URL Source: https://docs.botkube.io/configuration/helm-chart-parameters - -Markdown Content: -[image.registry](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L14)string`"ghcr.io"`Botkube container image registry.[image.repository](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L16)string`"kubeshop/botkube"`Botkube container image repository.[image.pullPolicy](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L18)string`"IfNotPresent"`Botkube container image pull policy.[image.tag](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L20)string`"v1.10.0"`Botkube container image tag. Default tag is `appVersion` from Chart.yaml.[podSecurityPolicy](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L24)object`{"enabled":false}`Configures Pod Security Policy to allow Botkube to run in restricted clusters. [Ref doc](https://kubernetes.io/docs/concepts/policy/pod-security-policy/).[securityContext](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L30)objectRuns as a Non-Privileged user.Configures security context to manage user Privileges in Pod. [Ref doc](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod).[containerSecurityContext](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L36)object`{"allowPrivilegeEscalation":false,"privileged":false,"readOnlyRootFilesystem":true}`Configures container security context. [Ref doc](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container).[rbac](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L43)object`{"create":true,"groups":{"botkube-plugins-default":{"create":true,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list"]}]}},"rules":[],"serviceAccountMountPath":"/var/run/7e7fd2f5-b15d-4803-bc52-f54fba357e76/secrets/kubernetes.io/serviceaccount","staticGroupName":""}`Role Based Access for Botkube Pod and plugins. [Ref doc](https://kubernetes.io/docs/admin/authorization/rbac/).[rbac.serviceAccountMountPath](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L47)string`"/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.create](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L50)bool`true`Configure RBAC resources for Botkube and (deprecated) `staticGroupName` subject with `rules`. For creating RBAC resources related to plugin permissions, use the `groups` property.[rbac.rules](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L52)list`[]`Deprecated. Use `rbac.groups` instead.[rbac.staticGroupName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L54)string`""`Deprecated. Use `rbac.groups` instead.[rbac.groups](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L56)object`{"botkube-plugins-default":{"create":true,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list"]}]}}`Use this to create RBAC resources for specified group subjects.[kubeconfig.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L67)bool`false`If true, enables overriding the Kubernetes auth.[kubeconfig.base64Config](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L69)string`""`A base64 encoded kubeconfig that will be stored in a Secret, mounted to the Pod, and specified in the KUBECONFIG environment variable.[kubeconfig.existingSecret](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L74)string`""`A Secret containing a kubeconfig to use.[actions](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L81)objectSee 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.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L84)bool`false`If true, enables the action.[actions.describe-created-resource.displayName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L86)string`"Describe created resource"`Action display name posted in the channels bound to the same source bindings.[actions.describe-created-resource.command](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L91)stringSee 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](https://pkg.go.dev/text/template)) together with all helper functions defined by Slim-Sprig library ([https://go-task.github.io/slim-sprig](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](https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go).[actions.describe-created-resource.bindings](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L94)object`{"executors":["k8s-default-tools"],"sources":["k8s-create-events"]}`Bindings for a given action.[actions.describe-created-resource.bindings.sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L96)list`["k8s-create-events"]`Event sources that trigger a given action.[actions.describe-created-resource.bindings.executors](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L99)list`["k8s-default-tools"]`Executors configuration used to execute a configured command.[actions.show-logs-on-error.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L103)bool`false`If true, enables the action.[actions.show-logs-on-error.displayName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L106)string`"Show logs on error"`Action display name posted in the channels bound to the same source bindings.[actions.show-logs-on-error.command](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L111)stringSee 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](https://pkg.go.dev/text/template)) together with all helper functions defined by Slim-Sprig library ([https://go-task.github.io/slim-sprig](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](https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go).[actions.show-logs-on-error.bindings](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L113)object`{"executors":["k8s-default-tools"],"sources":["k8s-err-with-logs-events"]}`Bindings for a given action.[actions.show-logs-on-error.bindings.sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L115)list`["k8s-err-with-logs-events"]`Event sources that trigger a given action.[actions.show-logs-on-error.bindings.executors](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L118)list`["k8s-default-tools"]`Executors configuration used to execute a configured command.[sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L127)objectSee 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/kubernetes](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L132)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-all-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-create-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[executors.k8s-default-tools.botkube/kubectl.context.rbac](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-err-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-create-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-err-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[executors.k8s-default-tools.botkube/kubectl.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-all-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[executors.k8s-default-tools.botkube/kubectl.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-err-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-all-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-create-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.static.values](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L143)list`["botkube-plugins-default"]`Name of group.rbac.authorization.k8s.io the plugin will be bound to.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L157)object`{"ingress":{"backendServiceValid":true,"tlsSecretValid":true},"pod":{"labelsSet":true,"noLatestImageTag":true}}`Describes configuration for various recommendation insights.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L159)object`{"labelsSet":true,"noLatestImageTag":true}`Recommendations for Pod Kubernetes resource.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod.noLatestImageTag](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L161)bool`true`If true, notifies about Pod containers that use `latest` tag for images.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod.labelsSet](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L163)bool`true`If true, notifies about Pod resources created without labels.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L165)object`{"backendServiceValid":true,"tlsSecretValid":true}`Recommendations for Ingress Kubernetes resource.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress.backendServiceValid](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L167)bool`true`If true, notifies about Ingress resources with invalid backend service reference.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress.tlsSecretValid](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L169)bool`true`If true, notifies about Ingress resources with invalid TLS secret reference.[sources.k8s-all-events.botkube/kubernetes](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L175)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-all-events.botkube/kubernetes.config.filters](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L181)objectSee the `values.yaml` file for full object.Filter settings for various sources.[sources.k8s-all-events.botkube/kubernetes.config.filters.objectAnnotationChecker](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L183)bool`true`If true, enables support for `botkube.io/disable` resource annotation.[sources.k8s-all-events.botkube/kubernetes.config.filters.nodeEventsChecker](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L185)bool`true`If true, filters out Node-related events that are not important.[sources.k8s-all-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L189)object`{"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.include](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L193)list`[".*"]`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.include](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L193)list`[".*"]`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.include](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L193)list`[".*"]`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.include](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L193)list`[".*"]`Include contains a list of allowed Namespaces. It can also contain regex expressions: `- ".*"` - to specify all Namespaces.[sources.k8s-all-events.botkube/kubernetes.config.event](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L203)object`{"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.types](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L205)list`["create","delete","error"]`Lists all event types to be watched.[sources.k8s-all-events.botkube/kubernetes.config.event.reason](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L211)object`{"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.include](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L213)list`[]`Include contains a list of allowed values. It can also contain regex expressions.[sources.k8s-all-events.botkube/kubernetes.config.event.reason.exclude](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L216)list`[]`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.message](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L219)object`{"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.include](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L221)list`[]`Include contains a list of allowed values. It can also contain regex expressions.[sources.k8s-all-events.botkube/kubernetes.config.event.message.exclude](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L224)list`[]`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.annotations](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L228)object`{}`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.labels](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L231)object`{}`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.resources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L238)listSee 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/kubernetes](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L352)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-err-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L359)object`{"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.event](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L363)object`{"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.types](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L365)list`["error"]`Lists all event types to be watched.[sources.k8s-err-events.botkube/kubernetes.config.resources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L370)listSee the `values.yaml` file for full object.Describes the Kubernetes resources you want to watch.[sources.k8s-err-with-logs-events.botkube/kubernetes](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L396)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-err-with-logs-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L403)object`{"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.event](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L407)object`{"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.types](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L409)list`["error"]`Lists all event types to be watched.[sources.k8s-err-with-logs-events.botkube/kubernetes.config.resources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L414)listSee the `values.yaml` file for full object.Describes the Kubernetes resources you want to watch.[sources.k8s-create-events.botkube/kubernetes](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L427)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-create-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L434)object`{"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.event](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L438)object`{"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.types](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L440)list`["create"]`Lists all event types to be watched.[sources.k8s-create-events.botkube/kubernetes.config.resources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L445)listSee the `values.yaml` file for full object.Describes the Kubernetes resources you want to watch.[executors](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L463)objectSee 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/kubectl.config](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L472)objectSee the `values.yaml` file for full object including optional properties related to interactive builder.Custom kubectl configuration.[aliases](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L497)objectSee 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`.[existingCommunicationsSecretName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L518)string`""`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"`.[communications](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L525)objectSee 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.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L530)bool`false`If true, enables Slack bot.[communications.default-group.socketSlack.channels](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L534)object`{"default":{"bindings":{"executors":["k8s-default-tools"],"sources":["k8s-err-events","k8s-recommendation-events"]},"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.name](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L537)string`"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.executors](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L540)list`["k8s-default-tools"]`Executors configuration for a given channel.[communications.default-group.socketSlack.channels.default.bindings.sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L543)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given channel.[communications.default-group.socketSlack.botToken](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L548)string`""`Slack bot token for your own Slack app. [Ref doc](https://api.slack.com/authentication/token-types).[communications.default-group.socketSlack.appToken](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L551)string`""`Slack app-level token for your own Slack app. [Ref doc](https://api.slack.com/authentication/token-types).[communications.default-group.mattermost.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L555)bool`false`If true, enables Mattermost bot.[communications.default-group.mattermost.botName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L557)string`"Botkube"`User in Mattermost which belongs the specified Personal Access token.[communications.default-group.mattermost.url](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L559)string`"MATTERMOST_SERVER_URL"`The URL (including http/https schema) where Mattermost is running. e.g [https://example.com:9243](https://example.com:9243/)[communications.default-group.mattermost.token](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L561)string`"MATTERMOST_TOKEN"`Personal Access token generated by Botkube user.[communications.default-group.mattermost.team](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L563)string`"MATTERMOST_TEAM"`The Mattermost Team name where Botkube is added.[communications.default-group.mattermost.channels](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L567)object`{"default":{"bindings":{"executors":["k8s-default-tools"],"sources":["k8s-err-events","k8s-recommendation-events"]},"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.name](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L571)string`"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.disabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L574)bool`false`If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime.[communications.default-group.mattermost.channels.default.bindings.executors](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L577)list`["k8s-default-tools"]`Executors configuration for a given channel.[communications.default-group.mattermost.channels.default.bindings.sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L580)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given channel.[communications.default-group.discord.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L587)bool`false`If true, enables Discord bot.[communications.default-group.discord.token](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L589)string`"DISCORD_TOKEN"`Botkube Bot Token.[communications.default-group.discord.botID](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L591)string`"DISCORD_BOT_ID"`Botkube Application Client ID.[communications.default-group.discord.channels](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L595)object`{"default":{"bindings":{"executors":["k8s-default-tools"],"sources":["k8s-err-events","k8s-recommendation-events"]},"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.id](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L599)string`"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.disabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L602)bool`false`If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime.[communications.default-group.discord.channels.default.bindings.executors](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L605)list`["k8s-default-tools"]`Executors configuration for a given channel.[communications.default-group.discord.channels.default.bindings.sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L608)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given channel.[communications.default-group.elasticsearch.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L615)bool`false`If true, enables Elasticsearch.[communications.default-group.elasticsearch.awsSigning.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L619)bool`false`If true, enables awsSigning using IAM for Elasticsearch hosted on AWS. Make sure AWS environment variables are set. [Ref doc](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html).[communications.default-group.elasticsearch.awsSigning.awsRegion](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L621)string`"us-east-1"`AWS region where Elasticsearch is deployed.[communications.default-group.elasticsearch.awsSigning.roleArn](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L623)string`""`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.server](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L625)string`"ELASTICSEARCH_ADDRESS"`The server URL, e.g [https://example.com:9243](https://example.com:9243/)[communications.default-group.elasticsearch.username](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L627)string`"ELASTICSEARCH_USERNAME"`Basic Auth username.[communications.default-group.elasticsearch.password](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L629)string`"ELASTICSEARCH_PASSWORD"`Basic Auth password.[communications.default-group.elasticsearch.skipTLSVerify](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L632)bool`false`If true, skips the verification of TLS certificate of the Elastic nodes. It's useful for clusters with self-signed certificates.[communications.default-group.elasticsearch.logLevel](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L639)string`""`Specify the log level for Elasticsearch client. Leave empty to disable logging.[communications.default-group.elasticsearch.indices](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L644)object`{"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.name](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L647)string`"botkube"`Configures Elasticsearch index settings.[communications.default-group.elasticsearch.indices.default.bindings.sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L653)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given index.[communications.default-group.webhook.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L660)bool`false`If true, enables Webhook.[communications.default-group.webhook.url](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L662)string`"WEBHOOK_URL"`The Webhook URL, e.g.: [https://example.com:80](https://example.com:80/)[communications.default-group.webhook.bindings.sources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L665)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for the webhook.[settings.clusterName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L672)string`"not-configured"`Cluster name to differentiate incoming messages.[settings.healthPort](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L675)int`2114`Health check port.[settings.upgradeNotifier](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L677)bool`true`If true, notifies about new Botkube releases.[settings.log.level](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L681)string`"info"`Sets one of the log levels. Allowed values: `info`, `warn`, `debug`, `error`, `fatal`, `panic`.[settings.log.disableColors](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L683)bool`false`If true, disable ANSI colors in logging. Ignored when `json` formatter is used.[settings.log.formatter](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L685)string`"json"`Configures log format. Allowed values: `text`, `json`.[settings.systemConfigMap](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L688)object`{"name":"botkube-system"}`Botkube's system ConfigMap where internal data is stored.[settings.persistentConfig](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L693)object`{"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.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L708)bool`false`If true, specify cert path in `config.ssl.cert` property or K8s Secret in `config.ssl.existingSecretName`.[ssl.existingSecretName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L714)string`""`Using existing SSL Secret. It MUST be in `botkube` Namespace.[ssl.cert](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L717)string`""`SSL Certificate file e.g certs/my-cert.crt.[service](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L720)object`{"name":"metrics","port":2112,"targetPort":2112}`Configures Service settings for ServiceMonitor CR.[serviceMonitor](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L727)object`{"enabled":false,"interval":"10s","labels":{},"path":"/metrics","port":"metrics"}`Configures ServiceMonitor settings. [Ref doc](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#servicemonitor).[deployment.annotations](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L737)object`{}`Extra annotations to pass to the Botkube Deployment.[deployment.livenessProbe](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L739)object`{"failureThreshold":35,"initialDelaySeconds":1,"periodSeconds":2,"successThreshold":1,"timeoutSeconds":1}`Liveness probe.[deployment.livenessProbe.initialDelaySeconds](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L741)int`1`The liveness probe initial delay seconds.[deployment.livenessProbe.periodSeconds](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L743)int`2`The liveness probe period seconds.[deployment.livenessProbe.timeoutSeconds](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L745)int`1`The liveness probe timeout seconds.[deployment.livenessProbe.failureThreshold](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L747)int`35`The liveness probe failure threshold.[deployment.livenessProbe.successThreshold](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L749)int`1`The liveness probe success threshold.[deployment.readinessProbe](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L752)object`{"failureThreshold":35,"initialDelaySeconds":1,"periodSeconds":2,"successThreshold":1,"timeoutSeconds":1}`Readiness probe.[deployment.readinessProbe.initialDelaySeconds](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L754)int`1`The readiness probe initial delay seconds.[deployment.readinessProbe.periodSeconds](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L756)int`2`The readiness probe period seconds.[deployment.readinessProbe.timeoutSeconds](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L758)int`1`The readiness probe timeout seconds.[deployment.readinessProbe.failureThreshold](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L760)int`35`The readiness probe failure threshold.[deployment.readinessProbe.successThreshold](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L762)int`1`The readiness probe success threshold.[extraAnnotations](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L769)object`{}`Extra annotations to pass to the Botkube Pod.[extraLabels](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L771)object`{}`Extra labels to pass to the Botkube Pod.[priorityClassName](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L773)string`""`Priority class name for the Botkube Pod.[nameOverride](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L776)string`""`Fully override "botkube.name" template.[fullnameOverride](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L778)string`""`Fully override "botkube.fullname" template.[resources](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L784)object`{}`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](https://kubernetes.io/docs/user-guide/compute-resources/)[extraEnv](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L796)list`[{"name":"LOG_LEVEL_SOURCE_BOTKUBE_KUBERNETES","value":"debug"}]`Extra environment variables to pass to the Botkube container. [Ref docs](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#environment-variables).[extraVolumes](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L810)list`[]`Extra volumes to pass to the Botkube container. Mount it later with extraVolumeMounts. [Ref docs](https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/volume/#Volume).[extraVolumeMounts](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L825)list`[]`Extra volume mounts to pass to the Botkube container. [Ref docs](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#volumes-1).[nodeSelector](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L843)object`{}`Node labels for Botkube Pod assignment. [Ref doc](https://kubernetes.io/docs/user-guide/node-selection/).[tolerations](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L847)list`[]`Tolerations for Botkube Pod assignment. [Ref doc](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/).[affinity](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L851)object`{}`Affinity for Botkube Pod assignment. [Ref doc](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity).[serviceAccount.create](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L855)bool`true`If true, a ServiceAccount is automatically created.[serviceAccount.name](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L858)string`""`The name of the service account to use. If not set, a name is generated using the fullname template.[serviceAccount.annotations](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L860)object`{}`Extra annotations for the ServiceAccount.[extraObjects](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L863)list`[]`Extra Kubernetes resources to create. Helm templating is allowed as it is evaluated before creating the resources.[analytics.disable](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L891)bool`false`If true, sending anonymous analytics is disabled. To learn what date we collect, see [Privacy Policy](https://docs.botkube.io/privacy#privacy-policy).[configWatcher](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L895)object`{"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.enabled](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L897)bool`true`If true, restarts the Botkube Pod on config changes.[configWatcher.inCluster](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L899)object`{"informerResyncPeriod":"10m"}`In-cluster Config Watcher configuration. It is used when remote configuration is not provided.[configWatcher.inCluster.informerResyncPeriod](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L901)string`"10m"`Resync period for the Config Watcher informers.[plugins](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L904)object`{"cacheDir":"/tmp","healthCheckInterval":"10s","incomingWebhook":{"enabled":true,"port":2115,"targetPort":2115},"repositories":{"botkube":{"url":"https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml"}},"restartPolicy":{"threshold":10,"type":"DeactivatePlugin"}}`Configuration for Botkube executors and sources plugins.[plugins.cacheDir](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L906)string`"/tmp"`Directory, where downloaded plugins are cached.[plugins.repositories](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L908)object`{"botkube":{"url":"https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml"}}`List of plugins repositories. Each repository defines the URL and optional `headers`[plugins.repositories.botkube](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L910)object`{"url":"https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml"}`This repository serves officially supported Botkube plugins.[plugins.incomingWebhook](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L915)object`{"enabled":true,"port":2115,"targetPort":2115}`Configure Incoming webhook for source plugins.[plugins.restartPolicy](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L920)object`{"threshold":10,"type":"DeactivatePlugin"}`Botkube Restart Policy on plugin failure.[plugins.restartPolicy.type](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L922)string`"DeactivatePlugin"`Restart policy type. Allowed values: "RestartAgent", "DeactivatePlugin".[plugins.restartPolicy.threshold](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L924)int`10`Number of restarts before policy takes into effect.[config](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L928)object`{"provider":{"apiKey":"","endpoint":"https://api.botkube.io/graphql","identifier":""}}`Configuration for synchronizing Botkube configuration.[config.provider](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L930)object`{"apiKey":"","endpoint":"https://api.botkube.io/graphql","identifier":""}`Base provider definition.[config.provider.identifier](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L933)string`""`Unique identifier for remote Botkube settings. If set to an empty string, Botkube won't fetch remote configuration.[config.provider.endpoint](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L935)string`"https://api.botkube.io/graphql"`Endpoint to fetch Botkube settings from.[config.provider.apiKey](https://github.com/kubeshop/botkube/blob/release-1.10/helm/botkube/values.yaml#L937)string`""`Key passed as a `X-API-Key` header to the provider's endpoint. diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__source__keptn.md b/hack/assistant-setup/content/docs.botkube.io__configuration__source__keptn.md deleted file mode 100644 index f58a4d6..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__source__keptn.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Keptn | Botkube - -URL Source: https://docs.botkube.io/configuration/source/keptn - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__source__kubernetes.md b/hack/assistant-setup/content/docs.botkube.io__configuration__source__kubernetes.md deleted file mode 100644 index 776906c..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__source__kubernetes.md +++ /dev/null @@ -1,180 +0,0 @@ -Title: Kubernetes | Botkube - -URL Source: https://docs.botkube.io/configuration/source/kubernetes - -Markdown Content: -A `kubernetes` source plugin produces events for configured Kubernetes resources. These events can be sent to communication channels or actions. To learn how to bind sources to communication channels or actions, read the Communication and Action documents. - -Enabling plugin[​](#enabling-plugin "Direct link to Enabling plugin") ---------------------------------------------------------------------- - -### Self-hosted Botkube installation[​](#self-hosted-botkube-installation "Direct link to Self-hosted Botkube installation") - -The Kubernetes plugin is hosted by the official Botkube plugin repository. First, make sure that the `botkube` repository is defined under `plugins` in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. - - plugins: repositories: botkube: url: https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml - -To enable Kubernetes source, add `--set 'sources.{configuration-name}.botkube/kubernetes.enabled=true'` to a given Botkube [`install` command](https://docs.botkube.io/cli/commands/botkube_install). - -### Botkube Cloud[​](#botkube-cloud "Direct link to Botkube Cloud") - -You can enable the plugin as a part of Botkube instance configuration. - -1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. -2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. -3. Navigate to the platform tab which you want to configure. -4. Click **Add plugin** button. -5. Select the Kubernetes plugin. -6. Click **Save** button. - -Event and resource constraints[​](#event-and-resource-constraints "Direct link to Event and resource constraints") ------------------------------------------------------------------------------------------------------------------- - -Define constraints for Kubernetes events to narrow down the events you want to receive. - -You can define both global constraints, that are applied to all resources within a given source, and also resource-specific constraints, which override global constraints. See the [Syntax](#syntax) paragraph for more details. - -There are multiple types of constraints. Each constraint type is described in the following sections. - -### Namespaces[​](#namespaces "Direct link to Namespaces") - -Include and/or exclude namespaces to watch. You can use exact values or regex expressions to specify namespaces. - -Exclude takes precedence over include. If a given namespace is excluded, it will be ignored, even if it included. - -**Examples** - -To watch all namespaces except those with `testing-` prefix, use the following constraint: - - namespaces: include: - ".*" # include all... exclude: - "testing-.*" # ...except any namespace that has `testing-` prefix - -To watch only `dev` and `prod` namespaces, use the following constraint: - - namespaces: include: - "dev" - "prod" exclude: [] - -### Labels[​](#labels "Direct link to Labels") - -Specify exact match for resource labels. The watched resources must have all the specified labels. - -**Example** - - labels: # Match only the resources that have all the specified labels app: "my-app" environment: "production" - -### Annotations[​](#annotations "Direct link to Annotations") - -Specify exact match for resource annotations. The watched resources must have all the specified annotations. - -**Example** - - annotations: # Match only the resources that have all the specified annotations. app: "my-app" my-annotation: "true" - -### Resource name[​](#resource-name "Direct link to Resource name") - -Filter events based on the resource name. If not defined, all resource names are matched. Exclude takes precedence over include. If a given resource name is excluded, it will be ignored, even if it included. - -You can use both exact values and regex expressions to specify resource names. This constraint can be set per resource only. See the [Syntax](#syntax) paragraph for more details. - -**Examples** - -To match resource names that have `testing-` prefix, use the following constraint: - - name: include: - "testing-.*" # include only resource names that have `testing-` prefix exclude: [] - -To match all resources except those that have `testing-` prefix, use the following constraint: - - name: include: - ".*" # include all resource names... exclude: - "testing-.*" # ...except those that have `testing-` prefix - -### Event types[​](#event-types "Direct link to Event types") - -List the event types to watch. - -Possible values: - -* `create`, -* `update`, -* `delete`, -* `error`, -* `all`, which is equal to all of the above. - -**Example** - - event: types: # watch for create, delete and error events - create - delete - error - -### Event reason[​](#event-reason "Direct link to Event reason") - -Define exact values or regex expression to match the event reason. If not defined, all events are watched. Exclude takes precedence over include. If a given event reason is excluded, it will be ignored, even if it included. - -**Examples** - -To match events with reason equal to `BackOff`, use the following constraint: - - event: reason: include: - "^BackOff$" # match events with reason equal to `BackOff` exclude: [] - -To match all events except those with reason equal to `BackOff`, use the following constraint: - - event: reason: include: - ".*" # match all event reasons... exclude: - "^BackOff$" # ...except those equal to `BackOff` - -### Event message[​](#event-message "Direct link to Event message") - -Define regex expression to match the event message. If not defined, all event messages are matched. - -Exclude takes precedence over include. If a given event message is excluded, it will be ignored, even if it included. - -**Example** - -To match events with message starting with `Back-off`, use the following constraint: - - event: message: include: - "^Back-off.*" # match all events with message starting with `Back-off` exclude: [] - -To match all events except those with message starting with `Back-off`, use the following constraint: - - event: message: include: - ".*" # match all event messages... exclude: - "^Back-off.*" # ...except those starting with `Back-off` - -### Recommendations[​](#recommendations "Direct link to Recommendations") - -You can configure recommendations related to Kubernetes resources. Recommendations respect [namespaces](#namespaces) constraint regex patterns. - -Currently, Kubernetes source plugin can send recommendation about 2 resources: `Pods` and `Ingresses`. - -**Example** - -In order to send recommendation for the Pods that have containers with `latest` tag or the Pods without labels, use the following configuration. - - recommendations: # Recommendations for Pod Kubernetes resource. pod: # If true, notifies about Pod containers that use `latest` tag for images. noLatestImageTag: true # If true, notifies about Pod resources created without labels. labelsSet: true - -If you want to receive recommendations for Ingress that contains invalid backend service definition or TLS secret, use the following configuration. - - recommendations: # Recommendations for Ingress Kubernetes resource. ingress: # If true, notifies about Ingress resources with invalid backend service reference. backendServiceValid: true # If true, notifies about Ingress resources with invalid TLS secret reference. tlsSecretValid: true - -### Filters[​](#filters "Direct link to Filters") - -The filter configuration allows you to configure filters which are used for all processed Kubernetes events. - - # Filter settings for various sources.# Currently, all filters are globally enabled or disabled.# You can enable or disable filters with `@Botkube filters` commands.filters: kubernetes: # If true, enables support for `botkube.io/disable` resource annotations. objectAnnotationChecker: true # If true, filters out Node-related events that are not important. nodeEventsChecker: true - -Configuration Syntax[​](#configuration-syntax "Direct link to Configuration Syntax") ------------------------------------------------------------------------------------- - -This plugin supports the following configuration: - - # Describes configuration for various recommendation insights.recommendations: # Recommendations for Pod Kubernetes resource. pod: # If true, notifies about Pod containers that use `latest` tag for images. noLatestImageTag: true # If true, notifies about Pod resources created without labels. labelsSet: true # Recommendations for Ingress Kubernetes resource. ingress: # If true, notifies about Ingress resources with invalid backend service reference. backendServiceValid: true # If true, notifies about Ingress resources with invalid TLS secret reference. tlsSecretValid: true# Filter settings for various sources.filters: # If true, enables support for `botkube.io/disable` resource annotation. objectAnnotationChecker: true # If true, filters out Node-related events that are not important. nodeEventsChecker: true# 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.namespaces: &k8s-events-namespaces # Include contains a list of allowed Namespaces. # It can also contain regex expressions: # `- ".*"` - to specify all Namespaces. include: - ".*" # Exclude contains a list of Namespaces to be ignored even if allowed by Include. # It can also contain regex expressions: # `- "test-.*"` - to specif all Namespaces with `test-` prefix. # Exclude list is checked before the Include list. # exclude: []# 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.event: # Lists all event types to be watched. types: - create - delete - error # Optional list of exact values or regex patterns to filter events by event reason. # Skipped, if both include/exclude lists are empty. reason: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: [] # 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. message: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: []# Filters Kubernetes resources to watch by annotations. Each resource needs to have all the specified annotations.# Regex expressions are not supported.annotations: {}# Filters Kubernetes resources to watch by labels. Each resource needs to have all the specified labels.# Regex expressions are not supported.labels: {}# 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.resources: - type: v1/pods # namespaces: # Overrides 'source'.kubernetes.namespaces # include: # - ".*" # exclude: [] # annotations: {} # Overrides 'source'.kubernetes.annotations # labels: {} # Overrides 'source'.kubernetes.labels # # Optional resource name constraints. # name: # # Include contains a list of allowed values. It can also contain regex expressions. # include: [] # # 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. # exclude: [] # event: # # Overrides 'source'.kubernetes.event.reason # reason: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.message # message: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.types # types: # - create - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes event: message: exclude: - ".*nf_conntrack_buckets.*" # Ignore node related noisy messages from GKE clusters - type: v1/namespaces - type: v1/persistentvolumes - type: v1/persistentvolumeclaims - type: v1/configmaps - type: rbac.authorization.k8s.io/v1/roles - type: rbac.authorization.k8s.io/v1/rolebindings - type: rbac.authorization.k8s.io/v1/clusterrolebindings - type: rbac.authorization.k8s.io/v1/clusterroles - type: apps/v1/daemonsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.numberReady - type: batch/v1/jobs event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.conditions[*].type - type: apps/v1/deployments event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.availableReplicas - type: apps/v1/statefulsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.readyReplicascommands: # Configures which verbs are available in actionable items. verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] # Configure which resources are available in actionable items. resources: - "deployments" - "pods" - "namespaces" - "daemonsets" - "statefulsets" - "storageclasses" - "nodes" - "configmaps" - "services" - "ingresses"# Define extra buttons to be displayed beside the actionable notification message.extraButtons: - enabled: false trigger: type: ["error"] button: displayName: "Get Help" commandTpl: "doctor --resource={{ .Kind | lower }}/{{ .Name }} --namespace={{ .Namespace }} --error={{ .Reason }} --bk-cmd-header='AI assistance'"# Logger configurationlog: level: info disableColors: false - -Examples[​](#examples "Direct link to Examples") ------------------------------------------------- - -This section lists all examples for Kubernetes source plugin. They are based on the Botkube self-hosted installation but can be used with Botkube Cloud by extracting the `botkube/kubernetes.config` section. - - # 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.# See the `values.yaml` file for full object.### Format: sources.{alias}sources: "k8s-recommendation-events": displayName: "Kubernetes Recommendations" # Describes Kubernetes source configuration. # See the `values.yaml` file for full object. botkube/kubernetes: enabled: true config: # Describes configuration for various recommendation insights. recommendations: # Recommendations for Pod Kubernetes resource. pod: # If true, notifies about Pod containers that use `latest` tag for images. noLatestImageTag: true # If true, notifies about Pod resources created without labels. labelsSet: true # Recommendations for Ingress Kubernetes resource. ingress: # If true, notifies about Ingress resources with invalid backend service reference. backendServiceValid: true # If true, notifies about Ingress resources with invalid TLS secret reference. tlsSecretValid: true "k8s-all-events": displayName: "Kubernetes Info" # Describes Kubernetes source configuration. # See the `values.yaml` file for full object. botkube/kubernetes: enabled: true config: # Logging configuration log: # Log level level: info # 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. namespaces: &k8s-events-namespaces # Include contains a list of allowed Namespaces. # It can also contain regex expressions: # `- ".*"` - to specify all Namespaces. include: - ".*" # Exclude contains a list of Namespaces to be ignored even if allowed by Include. # It can also contain regex expressions: # `- "test-.*"` - to specif all Namespaces with `test-` prefix. # Exclude list is checked before the Include list. # exclude: [] # 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. event: # Lists all event types to be watched. types: - create - delete - error # Optional list of exact values or regex patterns to filter events by event reason. # Skipped, if both include/exclude lists are empty. reason: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: [] # 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. message: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: [] # Filters Kubernetes resources to watch by annotations. Each resource needs to have all the specified annotations. # Regex expressions are not supported. annotations: {} # Filters Kubernetes resources to watch by labels. Each resource needs to have all the specified labels. # Regex expressions are not supported. labels: {} # 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. # See the `values.yaml` file for full object. resources: - type: v1/pods # namespaces: # Overrides 'source'.kubernetes.namespaces # include: # - ".*" # exclude: [] # annotations: {} # Overrides 'source'.kubernetes.annotations # labels: {} # Overrides 'source'.kubernetes.labels # # Optional resource name constraints. # name: # # Include contains a list of allowed values. It can also contain regex expressions. # include: [] # # 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. # exclude: [] # event: # # Overrides 'source'.kubernetes.event.reason # reason: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.message # message: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.types # types: # - create - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes - type: v1/namespaces - type: v1/persistentvolumes - type: v1/persistentvolumeclaims - type: v1/configmaps - type: rbac.authorization.k8s.io/v1/roles - type: rbac.authorization.k8s.io/v1/rolebindings - type: rbac.authorization.k8s.io/v1/clusterrolebindings - type: rbac.authorization.k8s.io/v1/clusterroles - type: apps/v1/daemonsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.numberReady - type: batch/v1/jobs event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.conditions[*].type - type: apps/v1/deployments event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.availableReplicas - type: apps/v1/statefulsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.readyReplicas ## Custom resource example # - type: velero.io/v1/backups # namespaces: # include: # - ".*" # exclude: # - # event: # types: # - create # - update # - delete # - error # updateSetting: # includeDiff: true # fields: # - status.phase # List of available commands that can be used in actionable items under kubernetes events. commands: # Configures which verbs are available in actionable items. verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] # Configure which resources are available in actionable items. resources: [ "deployments", "pods", "namespaces", "daemonsets", "statefulsets", "storageclasses", "nodes", "configmaps", "services", "ingresses", ] # Filter settings for various sources. # Currently, all filters are globally enabled or disabled. # You can enable or disable filters with `@Botkube enable/disable filters` commands. filters: kubernetes: # If true, enables support for `botkube.io/disable` resource annotations. objectAnnotationChecker: true # If true, filters out Node-related events that are not important. nodeEventsChecker: true "k8s-err-events": displayName: "Kubernetes Errors" # Describes Kubernetes source configuration. # See the `values.yaml` file for full object. botkube/kubernetes: enabled: true config: # 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. namespaces: *k8s-events-namespaces # 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. event: # Lists all event types to be watched. types: - error # Describes the Kubernetes resources you want to watch. # See the `values.yaml` file for full object. resources: - type: v1/pods - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes - type: v1/namespaces - type: v1/persistentvolumes - type: v1/persistentvolumeclaims - type: v1/configmaps - type: rbac.authorization.k8s.io/v1/roles - type: rbac.authorization.k8s.io/v1/rolebindings - type: rbac.authorization.k8s.io/v1/clusterrolebindings - type: rbac.authorization.k8s.io/v1/clusterroles - type: apps/v1/deployments - type: apps/v1/statefulsets - type: apps/v1/daemonsets - type: batch/v1/jobs "k8s-err-with-logs-events": displayName: "Kubernetes Errors for resources with logs" # Describes Kubernetes source configuration. # See the `values.yaml` file for full object. botkube/kubernetes: enabled: true config: # 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. namespaces: *k8s-events-namespaces # 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. event: # Lists all event types to be watched. types: - error # Describes the Kubernetes resources you want to watch. # See the `values.yaml` file for full object. resources: - type: v1/pods - type: apps/v1/deployments - type: apps/v1/statefulsets - type: apps/v1/daemonsets - type: batch/v1/jobs # `apps/v1/replicasets` excluded on purpose - to not show logs twice for a given higher-level resource (e.g. Deployment) "k8s-create-events": displayName: "Kubernetes Resource Created Events" # Describes Kubernetes source configuration. # See the `values.yaml` file for full object. botkube/kubernetes: enabled: true config: # 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. namespaces: *k8s-events-namespaces # 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. event: # Lists all event types to be watched. types: - create # Describes the Kubernetes resources you want to watch. # See the `values.yaml` file for full object. resources: - type: v1/pods - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes - type: v1/namespaces - type: v1/configmaps - type: apps/v1/deployments - type: apps/v1/statefulsets - type: apps/v1/daemonsets - type: batch/v1/jobs - -The default configuration for Helm chart can be found in [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml). - -Implementation details[​](#implementation-details "Direct link to Implementation details") ------------------------------------------------------------------------------------------- - -Kubernetes source plugin uses [Kubernetes Informers](https://pkg.go.dev/k8s.io/client-go/informers) to get Kubernetes events in real-time. As the informer's synchronized data is cached in-memory and, in some cases, might take a significant amount of memory, Kubernetes plugin comes with memory usage optimization. - -During startup, the plugin loads all Kubernetes source configurations and groups them by different Kubeconfigs. For each group, the plugin creates shared informers (`SharedInformerFactory`) and starts them in parallel in goroutines. - -As there are less background processes than actual Kubernetes source configurations, the plugin takes the very first source configuration (sorted alphabetically) as the "system" one. Then, the `log` and `informerResyncPeriod` configuration properties are used for all background processes except actual event handling. - -For more details, see the [Kubernetes plugin source code](https://github.com/kubeshop/botkube/blob/main/cmd/source/kubernetes/main.go). diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__source__prometheus.md b/hack/assistant-setup/content/docs.botkube.io__configuration__source__prometheus.md deleted file mode 100644 index 3d9038b..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__source__prometheus.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Prometheus | Botkube - -URL Source: https://docs.botkube.io/configuration/source/prometheus - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__getstarted.md b/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__getstarted.md index 00af9e2..2513713 100644 --- a/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__getstarted.md +++ b/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__getstarted.md @@ -13,7 +13,7 @@ Welcome to Botkube! This guide will walk you through the process of setting up B Overview[​](#overview "Direct link to Overview") ------------------------------------------------ -Botkube is a Kubernetes Monitoring and Tool designed to optimize your K8s workflow by providing real-time alerts from and commands within your Kubernetes environment. With Botkube, you can receive alerts, execute commands, and stay informed about your cluster's health and status, all from your preferred communication platform. +Botkube is an AI-powered troubleshooting tool designed to optimize your K8s workflow by providing real-time alerts from and commands within your Kubernetes environment. With Botkube, you can receive alerts, execute commands, and stay informed about your cluster's health and status, all from your preferred communication platform. Step 1: Sign up for Botkube[​](#step-1-sign-up-for-botkube "Direct link to Step 1: Sign up for Botkube") -------------------------------------------------------------------------------------------------------- @@ -35,7 +35,7 @@ Step 2: Connect Your Kubernetes Cluster[​](#step-2-connect-your-kubernetes-clu Step 3: Connect to Your Preferred Communication Platform[​](#step-3-connect-to-your-preferred-communication-platform "Direct link to Step 3: Connect to Your Preferred Communication Platform") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Follow the instructions provided on the Botkube Cloud Dashboard to connect Botkube to your preferred communication platform, such as [Slack](https://docs.botkube.io/installation/slack/cloud-slack) or [Microsoft Teams](https://docs.botkube.io/installation/teams/). +Follow the instructions provided on the Botkube Cloud Dashboard to connect Botkube to your preferred communication platform, such as [Slack](https://docs.botkube.io/installation/slack/cloud-slack)or [Microsoft Teams](https://docs.botkube.io/installation/teams/). Step 4: Setting Up a Botkube Cloud Instance[​](#step-4-setting-up-a-botkube-cloud-instance "Direct link to Step 4: Setting Up a Botkube Cloud Instance") -------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__integrations.md b/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__integrations.md index 852b781..fc7d5fa 100644 --- a/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__integrations.md +++ b/hack/assistant-setup/content/docs.botkube.io__examples-and-tutorials__integrations.md @@ -1,4 +1,4 @@ -Title: Integrations | Botkube +Title: Botkube URL Source: https://docs.botkube.io/examples-and-tutorials/integrations/ diff --git a/hack/assistant-setup/content/docs.botkube.io__features__actions.md b/hack/assistant-setup/content/docs.botkube.io__features__actions.md new file mode 100644 index 0000000..44ebfa8 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__features__actions.md @@ -0,0 +1,84 @@ +Title: Automated Actions | Botkube + +URL Source: https://docs.botkube.io/features/actions + +Markdown Content: +The action configuration allows you to automate your workflow by defining commands that are executed on an incoming event. Similar to communication platforms, actions use source bindings to define the event sources (command triggers) and executor bindings to run a given command. + +The actions can be disabled and enabled using dedicated commands. + +Predefined actions[​](#predefined-actions "Direct link to Predefined actions") +------------------------------------------------------------------------------ + +There are two predefined actions available: + +* `describe-created-resource` - describes a newly created resource, +* `show-logs-on-error` - prints logs on Pod/StatefulSet/DaemonSet/Deployment error. + +Both of them are disabled by default. + +Action output[​](#action-output "Direct link to Action output") +--------------------------------------------------------------- + +The command output is sent to the communication platforms that define the same source bindings. If there is no communication platform defined with the same source bindings, the action is still executed, but the output is ignored. + +Command templates[​](#command-templates "Direct link to Command templates") +--------------------------------------------------------------------------- + +Each action defines the `command` property which defines a command to be executed. It supports [Go template](https://golang.org/pkg/text/template/) syntax. The command template is rendered before actual execution. + +The following variables are available: + +* `{{ .Event }}` - the event object that triggered the action. See all available event properties in the [`event.go`](https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go) file. + +There are multiple helper functions supported by the templating engine. To learn more, read the documentation on the [`slim-sprig`](https://go-task.github.io/slim-sprig/) library page. + +### Examples[​](#examples "Direct link to Examples") + +* Run `kubectl describe` for each event: + + kubectl describe {{ .Event.TypeMeta.Kind | lower }}{{ if .Event.Namespace }} -n {{ .Event.Namespace }}{{ end }} {{ .Event.Name }} + +* Run `kubectl logs` for each event for specific resources (`v1/pods`, `apps/v1/deployments`, `apps/v1/statefulsets`, `apps/v1/daemonsets`, `batch/v1/jobs`: + + kubectl logs {{ .Event.TypeMeta.Kind | lower }}/{{ .Event.Name }} -n {{ .Event.Namespace }} + + +RBAC[​](#rbac "Direct link to RBAC") +------------------------------------ + +The `ChannelName` RBAC policy is not supported for automated actions at this time. Use the `Static` RBAC policy instead. For more information read the [RBAC](https://docs.botkube.io/features/rbac) documentation. + +Manage Actions with Botkube commands[​](#manage-actions-with-botkube-commands "Direct link to Manage Actions with Botkube commands") +------------------------------------------------------------------------------------------------------------------------------------ + +Botkube allows you to manage actions using `@Botkube` commands. + +### List available actions[​](#list-available-actions "Direct link to List available actions") + +Run `@Botkube list actions` to get list of configured actions and their running status: + +![Image 1: List available actions](https://docs.botkube.io/assets/images/list-actions-e1d1d86e622d7a10077d5347958a3559.png) + +### Disable action[​](#disable-action "Direct link to Disable action") + +Run `@Botkube disable action {action-name}` to disable an action named `{action-name}`. The action settings are persisted across Botkube app restarts. + +![Image 2: Disable action](https://docs.botkube.io/assets/images/disable-action-414dd23e8a7bcb9efc1d52251f68999c.png) + +When you disable an action, changes are applied once the Botkube is restarted. It is an automated process which usually takes a few seconds. + +### Enable action[​](#enable-action "Direct link to Enable action") + +Run `@Botkube enable action {action-name}` to enable an action named `{action-name}`. The action settings are persisted across Botkube app restarts. + +![Image 3: Enable action](https://docs.botkube.io/assets/images/enable-action-08c9232d0d21939ec91201abdcb70a50.png) + +When you enable an action, changes are applied once the Botkube is restarted. It is an automated process which usually takes a few seconds. + +Self-hosted Configuration Syntax[​](#self-hosted-configuration-syntax "Direct link to Self-hosted Configuration Syntax") +------------------------------------------------------------------------------------------------------------------------ + +The following snippet contains an example configuration for self-hosted Botkube installation: + + # 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.## Format: actions.{alias}actions: "describe-created-resource": # If true, enables the action. enabled: false # Action display name posted in the channels bound to the same source bindings. displayName: "Describe created resource" # 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 event properties on https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go. command: "kubectl describe {{ .Event.TypeMeta.Kind | lower }}{{ if .Event.Namespace }} -n {{ .Event.Namespace }}{{ end }} {{ .Event.Name }}" # Bindings for a given action. bindings: # Event sources that trigger a given action. sources: - k8s-create-events # Executors configuration used to execute a configured command. executors: - k8s-default-tools "show-logs-on-error": # If true, enables the action. enabled: false # Action display name posted in the channels bound to the same source bindings. displayName: "Show logs on error" # 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 event properties on https://github.com/kubeshop/botkube/blob/main/pkg/event/event.go. command: "kubectl logs {{ .Event.TypeMeta.Kind | lower }}/{{ .Event.Name }} -n {{ .Event.Namespace }}" # Bindings for a given action. bindings: # Event sources that trigger a given action. sources: - k8s-err-with-logs-events # Executors configuration used to execute a configured command. executors: - k8s-default-tools diff --git a/hack/assistant-setup/content/docs.botkube.io__features__ai-assistant.md b/hack/assistant-setup/content/docs.botkube.io__features__ai-assistant.md new file mode 100644 index 0000000..ac49788 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__features__ai-assistant.md @@ -0,0 +1,79 @@ +Title: AI Assistant | Botkube + +URL Source: https://docs.botkube.io/features/ai-assistant + +Markdown Content: +info + +**This plugin is hosted by the [Botkube Cloud](https://app.botkube.io/) plugin repository and requires active Botkube Cloud account.** + +The AI Assistant plugin makes it easier than ever for teams to identify, diagnose, and troubleshoot issues in any Kubernetes cluster. It is powered by the OpenAI's `GPT-4o` large language model with additional Kubernetes-related capabilities. + +Features[​](#features "Direct link to Features") +------------------------------------------------ + +The plugin provides the following features: + +* "AI Help" button for Kubernetes event analysis. +* Answering arbitrary questions or instructions. +* Kubernetes cluster troubleshooting based on: + * `kubectl` commands, + * container logs, + * Kubernetes events, + * resource usage (CPU/memory). +* Answering Botkube questions or instructions based on: + * Agent status and configuration, + * the latest Botkube documentation and other Botkube content. +* Keeping conversation context in the message threads. + +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- + +Enable the plugin[​](#enable-the-plugin "Direct link to Enable the plugin") +--------------------------------------------------------------------------- + +You can enable the plugin as a part of Botkube instance configuration. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. +3. Navigate to the platform tab which you want to configure. +4. Click **Add plugin** button. +5. Select the AI plugin. +6. Click **Save** button. + +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +### Highlights[​](#highlights "Direct link to Highlights") + +To see the AI assistant in action, watch the video: + +### AI Help for Kubernetes events[​](#ai-help-for-kubernetes-events "Direct link to AI Help for Kubernetes events") + +Click on the **AI Help** button to get an analysis of the event. + +![Image 1: AI Help](https://docs.botkube.io/assets/images/ai-help-usage-f2d200f6e8233c8528366a07763f9aac.png) + +### AI questions and instructions[​](#ai-questions-and-instructions "Direct link to AI questions and instructions") + +To ask the Botkube AI Assistant any question, use the `@Botkube ai` command prefix. + +Here are a few examples to get you started: + +* `@Botkube ai are my pods in default namespace up and running?` +* `@Botkube ai how many nodes are there?` +* `@Botkube ai output a yaml for Kubernetes pod with nginx image` +* `@Botkube what's the current Botkube status?` +* `@Botkube ai what's the difference between Botkube sources and executors?` +* `@Botkube ai what Botkube plugins are available to install? List all of them with one sentence description and link to the docs.` +* `@Botkube ai who's the Botkube maintainer?` + +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +Currently, the AI plugin doesn't have any configuration options. + +Limitations[​](#limitations "Direct link to Limitations") +--------------------------------------------------------- + +* The conversation context is stored in-memory and will be cleared on Botkube Agent restart. diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__event-notifications.md b/hack/assistant-setup/content/docs.botkube.io__features__event-notifications.md similarity index 73% rename from hack/assistant-setup/content/docs.botkube.io__usage__event-notifications.md rename to hack/assistant-setup/content/docs.botkube.io__features__event-notifications.md index 7c7c622..38635d7 100644 --- a/hack/assistant-setup/content/docs.botkube.io__usage__event-notifications.md +++ b/hack/assistant-setup/content/docs.botkube.io__features__event-notifications.md @@ -1,14 +1,12 @@ Title: Event notifications | Botkube -URL Source: https://docs.botkube.io/usage/event-notifications +URL Source: https://docs.botkube.io/features/event-notifications Markdown Content: -Botkube sends notifications according to the [sources](https://docs.botkube.io/configuration/source/) configuration. - Actionable notifications[​](#actionable-notifications "Direct link to Actionable notifications") ------------------------------------------------------------------------------------------------ -If you have [`kubectl` executor enabled](https://docs.botkube.io/next/configuration/executor/kubectl) for a given channel, you can run commands related to a resource from the notification itself. Use the dropdown on the left to select and run a given command: +If you have [`kubectl` plugin enabled](https://docs.botkube.io/plugins/kubectl) for a given channel, you can run commands related to a resource from the notification itself. Use the dropdown on the left to select and run a given command: ![Image 1: Actionable notifications](https://docs.botkube.io/assets/images/actionable-notifications-ecd604b0208681c84ea907e404bdceed.png) @@ -18,17 +16,11 @@ info Actionable notifications are only available for the [Slack](https://docs.botkube.io/installation/slack/) and [Microsoft Teams](https://docs.botkube.io/installation/teams/) platforms that supports interactive messages. Currently, only a selected list of commands are supported, such as `describe`, `get`, or `logs`. -Managing notifications[​](#managing-notifications "Direct link to Managing notifications") ------------------------------------------------------------------------------------------- +Manage notifications with Botkube commands[​](#manage-notifications-with-botkube-commands "Direct link to Manage notifications with Botkube commands") +------------------------------------------------------------------------------------------------------------------------------------------------------ Depending upon your configuration, you will receive notifications about Kubernetes resources lifecycle events and their health. Botkube bot allows you to enable/disable notifications on each configured channel separately. Run `@Botkube help`, the bot will reply with the help message about the supported message formats. -### View Botkube configuration[​](#view-botkube-configuration "Direct link to View Botkube configuration") - -Run `@Botkube show config` message from the configured channel where Botkube is added. The bot will reply to you with the configuration with which the controller is running. - -To see how to update the configuration, see the [Updating the configuration](https://docs.botkube.io/configuration/#updating-the-configuration) section in the Configuration document. - ### Change notification sources[​](#change-notification-sources "Direct link to Change notification sources") To change the notification sources, you can: diff --git a/hack/assistant-setup/content/docs.botkube.io__features__executing-commands.md b/hack/assistant-setup/content/docs.botkube.io__features__executing-commands.md new file mode 100644 index 0000000..d014098 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__features__executing-commands.md @@ -0,0 +1,158 @@ +Title: Executing commands | Botkube + +URL Source: https://docs.botkube.io/features/executing-commands + +Markdown Content: +In Botkube you can specify [executor plugins](https://docs.botkube.io/plugins/) which allows you to run arbitrary commands via the configured chat platforms. To check which executors are enabled, and get the aliases configured for them, run `@Botkube list executors`. There are also built-in Botkube commands available, as well as other features, such as global flags and aliases. + +Command Aliases[​](#command-aliases "Direct link to Command Aliases") +--------------------------------------------------------------------- + +Botkube can define multiple aliases for arbitrary 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`. + +Aliases work for all commands, including [executor plugins](https://docs.botkube.io/plugins/) and Botkube built-in ones. + +Aliases are defined globally for the whole Botkube installation. + +### Botkube Cloud configuration[​](#botkube-cloud-configuration "Direct link to Botkube Cloud configuration") + +You can configure aliases in the Botkube Cloud dashboard. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. + +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click the **Aliases** link in the top right corner. + +3. Click **Create new** button. + +4. Provide display name, alias and command. + + For example, for `exec` plugin, you can provide display name as `Exec alias`, alias as `x`, and command as `exec`. + +5. Select instances for which you want to enable the alias. + +6. Click **Apply** button. + + +### Self-hosted Botkube configuration[​](#self-hosted-botkube-configuration "Direct link to Self-hosted Botkube configuration") + +To configure the aliases for the self-hosted Botkube installation, use the following syntax: + + # 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`.### Format: aliases.{alias}aliases: kc: command: kubectl displayName: "Kubectl alias" k: command: kubectl displayName: "Kubectl alias"## Multi-word alias example:# kgp:# command: kubectl get pods# displayName: "Get pods" + +The default configuration for Helm chart can be found in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. + +### Examples[​](#examples "Direct link to Examples") + +Alias is a shortcut for a longer command or just a part of it. It can be defined for all commands, including executor plugins and built-in Botkube commands. When you use an alias, the command is replaced with the underlying command before executing it. For example, `@Botkube k get pods` is replaced with `@Botkube kubectl get pods` before executing it. + +Once you configured aliases, you can use them interchangeably with a full command. For example: + +* `k` as `kubectl`, +* `kgp` as `kubectl get pods`, +* `kgpa` as `kubectl get pods -A`, +* `hh` as `helm history`, +* `a` as `list actions`, the built-in Botkube command, + +and so on. Your imagination is the limit! + +Aliases are defined globally for the whole Botkube installation. To see which aliases are available for current conversation, run `@Botkube list aliases`. + +Built-in Botkube commands[​](#built-in-botkube-commands "Direct link to Built-in Botkube commands") +--------------------------------------------------------------------------------------------------- + +### Get help[​](#get-help "Direct link to Get help") + +Run `@Botkube help` to find information about the supported commands. + +### Check Botkube status[​](#check-botkube-status "Direct link to Check Botkube status") + +Run `@Botkube ping` to the channel where Botkube is added. The Botkube will respond you with the **pong** message from all the configured clusters. + +For multi-cluster configuration, use the [`--cluster-name` flag](#specify-cluster-name) to get response from the cluster mentioned in the flag. + +### List Botkube executors[​](#list-botkube-executors "Direct link to List Botkube executors") + +To check which executors are enabled, run `@Botkube list executors`. + +### List Botkube sources[​](#list-botkube-sources "Direct link to List Botkube sources") + +To check which sources are enabled, run `@Botkube list sources`. + +### Botkube Cloud commands[​](#botkube-cloud-commands "Direct link to Botkube Cloud commands") + +The Botkube Cloud related commands are available for Cloud Slack and Microsoft Teams integrations. To see the list of Botkube Cloud commands, read the following sections: + +* [Using Botkube Cloud app for Slack](https://docs.botkube.io/installation/slack/cloud-slack#using-botkube-cloud-app-for-slack), +* [Using Botkube Cloud app for Microsoft Teams](https://docs.botkube.io/installation/teams/#using-botkube-app-for-microsoft-teams). + +### Notification-related commands[​](#notification-related-commands "Direct link to Notification-related commands") + +To learn about the commands related to Notifications, see the [Manage notifications with Botkube commands](https://docs.botkube.io/features/event-notifications#manage-notifications-with-botkube-commands) section. + +### Action-related commands[​](#action-related-commands "Direct link to Action-related commands") + +To learn about the commands related to Actions, see the [Manage actions with Botkube commands](https://docs.botkube.io/features/actions#manage-actions-with-botkube-commands) section. + +### View Botkube configuration[​](#view-botkube-configuration "Direct link to View Botkube configuration") + +Run `@Botkube show config` message from the configured channel where Botkube is added. The bot will reply to you with the configuration with which the controller is running. + +Global flags[​](#global-flags "Direct link to Global flags") +------------------------------------------------------------ + +There are global flags available for all commands, regardless of which executor is used. + +### Specify cluster name[​](#specify-cluster-name "Direct link to Specify cluster name") + +warning + +Multi-cluster approach is supported only for Cloud Slack, Microsoft Teams, Mattermost and Discord integrations. Socket Slack require separate Slack app for each Botkube installation. + +If you have installed Botkube backend on multiple clusters, you can pass `--cluster-name` flag to execute kubectl command on specific cluster. + +To get the list of all clusters configured in botkube, you can use the ping command. + +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 the [notification-related commands](#notification-related-commands) as they can be executed from the configured channel only. + +### Run commands on all clusters[​](#run-commands-on-all-clusters "Direct link to Run commands on all clusters") + +When using Cloud Slack or Microsoft Teams integration, you can use `--all-clusters` flag to execute a command on all the target clusters. + +### Filtering text output[​](#filtering-text-output "Direct link to Filtering text output") + +Use the `--filter` flag to filter the output of Botkube executor commands. This returns any lines matching the flag's provided value. + +The `--filter` flag uses simple string matching. And, only works for Botkube executor commands that return text output, e.g. `kubectl` or `list executors` commands. + +#### Interactive output filtering[​](#interactive-output-filtering "Direct link to Interactive output filtering") + +info + +Interactive output filtering is only available for the [Slack](https://docs.botkube.io/installation/slack/) and [Microsoft Teams](https://docs.botkube.io/installation/teams/) integrations that supports interactive messages. + +caution + +Using the interactive filter input field causes the command to be re-executed. Be careful when using it for read-write commands. This issue is tracked in [botkube#907](https://github.com/kubeshop/botkube/issues/907). + +Sometimes you can get long response from a certain command and you may want to filter that to see a subset of the actual result. For each communication platform, you can use the `--filter` flag at the end of your command. To learn more, see the [Filtering text output](#filtering-text-output) section. + +If you use the [Slack integration](https://docs.botkube.io/installation/slack/) that supports interactive messages, there is another option to handle that: interactive output filtering. Interactivity is achieved via an input action text box where you can add your filter criteria as text and press the **Enter** button. + +#### Long response filtering[​](#long-response-filtering "Direct link to Long response filtering") + +Output Filter input text box will be attached to your command response if response has more than 15 lines. Let's see an example for this situation. + +1. List pods with `@Botkube kubectl get pods -n kube-system` ![Image 1: metrics_pods](https://docs.botkube.io/assets/images/output-filtering-get-pods-metrics-18c746eb2031cc45bc74a63389340b03.png) +2. Let's check the logs of `metrics-server` with `@Botkube kubectl logs -f metrics-server-7cd5fcb6b7-hzvq8 -n kube-system` ![Image 2: metrics_logs](https://docs.botkube.io/assets/images/output-filtering-metrics-logs-b6007e41cbfcc6ef727f848a0cdd5808.png) +3. Notice that Filter Output is attached to response. Type `RequestHeaderAuthRequestController` to filter and press `Enter`. ![Image 3: metrics_filter_logs](https://docs.botkube.io/assets/images/output-filtering-metrics-logs-filter-a6e6cfc2918f182e1a29d16066d47198.png) + +#### Attachment response filtering[​](#attachment-response-filtering "Direct link to Attachment response filtering") + +Command response is uploaded as text file once the actual size of response message reaches the limit of messaging platform. Let's take a look how Filter Output behaves for this situation. + +1. List the pods with `@Botkube kubectlc get pods -n kube-system` ![Image 4: get_pods](https://docs.botkube.io/assets/images/output-filtering-get-pods-21073bfe8502243fe4b90b83b155b99a.png) +2. Let's check the logs of Traefik with command `@Botkube kubectl logs -f traefik-df4ff85d6-f2mkz -n kube-system`. Notice that, you might have different pod list, so please select a suitable one for your case. ![Image 5: pod_logs](https://docs.botkube.io/assets/images/output-filtering-get-pods-21073bfe8502243fe4b90b83b155b99a.png) +3. Since the response is big, it is uploaded as file and you can realize a reply thread. Please expand it to see filter output. +4. Assume we want to see log lines only containing `Configuration` word. Type `Configuration` in the Filter Output input box and click enter. You will see filtered result as a response. ![Image 6: filter_response](https://docs.botkube.io/assets/images/output-filtering-filter-response-5fed09008578a720a302892f2ab81293.png) diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__rbac.md b/hack/assistant-setup/content/docs.botkube.io__features__rbac.md similarity index 90% rename from hack/assistant-setup/content/docs.botkube.io__configuration__rbac.md rename to hack/assistant-setup/content/docs.botkube.io__features__rbac.md index 2ee32ec..7c4b4f6 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__rbac.md +++ b/hack/assistant-setup/content/docs.botkube.io__features__rbac.md @@ -1,11 +1,9 @@ Title: RBAC | Botkube -URL Source: https://docs.botkube.io/configuration/rbac +URL Source: https://docs.botkube.io/features/rbac Markdown Content: -Botkube allows plugins to access Kubernetes API by defining [RBAC](https://en.wikipedia.org/wiki/Role-based_access_control) rules as part of plugin `context.rbac` configuration. Kubeconfig generation needs to be requested by defining `context.rbac` property. - -Based on this configuration Botkube generates a temporary [kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) with user and/or group impersonation. This kubeconfig is available to plugins in the `Execute` and `Stream` contexts. +Botkube allows plugins to access Kubernetes API by defining [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac) rules. Based on this configuration Botkube generates a temporary [kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) with user and/or group impersonation. Architecture[​](#architecture "Direct link to Architecture") ------------------------------------------------------------ @@ -16,9 +14,19 @@ For source plugins, the kubeconfig is generated once - during plugin startup. Fo ![Image 1: diagram](https://docs.botkube.io/assets/images/botkube-read-only-717ed01cf9fa5e6621f2a09c7b29a32d.svg) +This kubeconfig is available to plugins in the `Execute` and `Stream` methods, as long as the plugin has the `context.rbac` property defined. + Configuration[​](#configuration "Direct link to Configuration") --------------------------------------------------------------- +### Botkube Cloud[​](#botkube-cloud "Direct link to Botkube Cloud") + +In Botkube Cloud, the RBAC is configured within the "Permissions" tab for each plugin. + +![Image 2: Cloud RBAC defaults](https://docs.botkube.io/assets/images/cloud-rbac-default-9ffb455fa5b9f7e43b81da8a4b91f868.png) + +### Self-hosted Botkube installation[​](#self-hosted-botkube-installation "Direct link to Self-hosted Botkube installation") + For each executor and source plugin, you can define a `context.rbac` configuration. This config is used to generate a dedicated kubeconfig. executors: "kubectl": botkube/kubectl@v1: enabled: true # ... context: rbac: user: type: Static # Static or ChannelName static: # applicable only for "Static" user mapping type value: botkube-internal-static-user prefix: "" # optional prefix for user name; useful especially for channel name mapping group: type: Static # Static or ChannelName static: # applicable only for "Static" group mapping type values: - "my-group1" - "my-group2" prefix: "" # optional prefix for all group names; useful especially for channel name mapping @@ -48,7 +56,7 @@ During Botkube installation, Botkube generates Kubernetes ClusterRole and Cluste rbac: # ... groups: "botkube-plugins-default": create: true rules: - apiGroups: ["*"] resources: ["*"] verbs: ["get", "watch", "list"] -See the [`values.yaml`](https://github.com/kubeshop/botkube/blob/v1.10.0/helm/botkube/values.yaml) for more details. +See the [`values.yaml`](https://github.com/kubeshop/botkube/blob/v1.11.0/helm/botkube/values.yaml) for more details. #### Defaults for user mapping when group mapping is used[​](#defaults-for-user-mapping-when-group-mapping-is-used "Direct link to Defaults for user mapping when group mapping is used") @@ -64,7 +72,7 @@ It is equivalent to: When configuring plugin on Botkube Cloud, the "Default" permissions mean that the `botkube-plugins-default` group will be used, which have read-only access to Kubernetes API and is configured during Botkube installation. See the [Default configuration](#default-configuration) section. -![Image 2: Cloud RBAC defaults](https://docs.botkube.io/assets/images/cloud-rbac-default-9ffb455fa5b9f7e43b81da8a4b91f868.png) +![Image 3: Cloud RBAC defaults](https://docs.botkube.io/assets/images/cloud-rbac-default-9ffb455fa5b9f7e43b81da8a4b91f868.png) Examples[​](#examples "Direct link to Examples") ------------------------------------------------ @@ -73,13 +81,13 @@ This paragraph contains examples of RBAC configuration for different use cases. tip -You can use `rbac.groups` or `extraObjects` overrides during Botkube installation to create custom RBAC resources. See the [`values.yaml`](https://github.com/kubeshop/botkube/blob/v1.10.0/helm/botkube/values.yaml) for more details. +You can use `rbac.groups` or `extraObjects` overrides during Botkube installation to create custom RBAC resources. See the [`values.yaml`](https://github.com/kubeshop/botkube/blob/v1.11.0/helm/botkube/values.yaml) for more details. ### Kubectl executor with read-only Pod access based on static group mapping[​](#kubectl-executor-with-read-only-pod-access-based-on-static-group-mapping "Direct link to Kubectl executor with read-only Pod access based on static group mapping") In this example an executor plugin is defined with static RBAC that maps to group `read-pods`. -1. Consider the following Botkube config: +1. Consider the following self-hosted Botkube config: # ...executors: "kubectl-read-only": botkube/kubectl@v1: enabled: true # ... context: rbac: group: type: Static static: values: [read-pods] @@ -97,7 +105,7 @@ In a result, when this executor plugin is invoked, Botkube generates a kubeconfi In this example a single source plugin is defined with static RBAC that maps to user `kubernetes-read-only`. -1. Consider the following Botkube config: +1. Consider the following self-hosted Botkube config: sources: "kubernetes": botkube/kubernetes@v1: enabled: true # ... context: rbac: user: type: Static static: value: kubernetes-read-only @@ -112,7 +120,7 @@ In a result, the source plugin can access all Kubernetes resources with read-onl In this example **kubectl** executor plugin is configured with channel name mapping and bound to two channels, `ch-1` and `ch-2`. In Kubernetes RBAC resources, group `ch-1` is given write access, while group `ch-2` is given only read access. -1. Consider the following Botkube config: +1. Consider the following self-hosted Botkube config: executors: "kubectl": botkube/kubectl@v1: # ... enabled: true context: rbac: group: type: ChannelNamecommunications: "default-group": socketSlack: enabled: true # ... channels: "ch-1": name: ch-1 bindings: executors: - kubectl "ch-2": name: ch-2 bindings: executors: - kubectl# ... @@ -134,20 +142,20 @@ Botkube runs plugin processes in the same container within the same Pod. Therefo If you're a plugin developer and decide to write kubeconfig to the file system, be aware that it can be accessible by all plugins in the container. -### RBAC configuration merging[​](#rbac-configuration-merging "Direct link to RBAC configuration merging") +### Supported RBAC mappings[​](#supported-rbac-mappings "Direct link to Supported RBAC mappings") -The same executor plugins with different RBAC configuration cannot be bound to the same channel. This is validated during Botkube startup and will result in an error. +While Executor plugins support multiple mapping types, there are the following limitations: -For example, the following configuration is invalid: +* Source plugins support only the `Static` mapping. +* [Automated actions](https://docs.botkube.io/features/actions) support only the `Static` mapping. - communications: "default-group": socketSlack: enabled: true # ... channels: "ch-1": name: ch-1 bindings: executors: - kubectl - kubectl-read-onlyexecutors: "kubectl": botkube/kubectl@v1: enabled: true # ... context: rbac: # Different RBAC configuration group: type: ChannelName "kubectl-read-only": botkube/kubectl@v1: enabled: true # ... context: rbac: # Different RBAC configuration user: type: Static static: value: kubectl-read-only +### RBAC configuration merging[​](#rbac-configuration-merging "Direct link to RBAC configuration merging") -### Supported RBAC mappings[​](#supported-rbac-mappings "Direct link to Supported RBAC mappings") +The same executor plugins with different RBAC configuration cannot be bound to the same channel. This is validated during Botkube startup and will result in an error. -While Executor plugins support multiple mapping types, there are the following limitations: +For example, the following self-hosted Botkube configuration is invalid: -* Source plugins support only the `Static` mapping. -* Automated [actions](https://docs.botkube.io/usage/automated-actions) support only the `Static` mapping. + communications: "default-group": socketSlack: enabled: true # ... channels: "ch-1": name: ch-1 bindings: executors: - kubectl - kubectl-read-onlyexecutors: "kubectl": botkube/kubectl@v1: enabled: true # ... context: rbac: # Different RBAC configuration group: type: ChannelName "kubectl-read-only": botkube/kubectl@v1: enabled: true # ... context: rbac: # Different RBAC configuration user: type: Static static: value: kubectl-read-only Troubleshooting[​](#troubleshooting "Direct link to Troubleshooting") --------------------------------------------------------------------- @@ -185,4 +193,4 @@ For example, to verify if user `botkube-internal-static-user` and group `private Plugin development[​](#plugin-development "Direct link to Plugin development") ------------------------------------------------------------------------------ -If you are a plugin developer and want to learn how to use generated kubeconfig in the plugin codebase, refer to [Using kubeconfig](https://docs.botkube.io/plugin/using-kubeconfig) document. +If you are a plugin developer and want to learn how to use generated kubeconfig in the plugin codebase, refer to [Using kubeconfig](https://docs.botkube.io/plugins/development/using-kubeconfig) document. diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__discord__self-hosted.md b/hack/assistant-setup/content/docs.botkube.io__installation__discord__self-hosted.md index 756c500..ba931db 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__discord__self-hosted.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__discord__self-hosted.md @@ -3,7 +3,7 @@ Title: Discord for self-hosted Botkube | Botkube URL Source: https://docs.botkube.io/installation/discord/self-hosted Markdown Content: -Version: 1.10 +Version: 1.11 Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- @@ -92,7 +92,7 @@ Follow the first 4 mins of this [Video Tutorial](https://youtu.be/8o25pRbXdFw) t To deploy Botkube agent in your cluster, run: - export CLUSTER_NAME={cluster_name}export ALLOW_KUBECTL={allow_kubectl}botkube install --version v1.10.0 \--set communications.default-group.discord.enabled=true \--set communications.default-group.discord.channels.default.id=${DISCORD_CHANNEL_ID} \--set communications.default-group.discord.botID=${DISCORD_BOT_ID} \--set communications.default-group.discord.token=${DISCORD_TOKEN} \--set settings.clusterName=${CLUSTER_NAME} \--set 'executors.k8s-default-tools.botkube/kubectl.enabled'=${ALLOW_KUBECTL} + export CLUSTER_NAME={cluster_name}export ALLOW_KUBECTL={allow_kubectl}botkube install --version v1.11.0 \--set communications.default-group.discord.enabled=true \--set communications.default-group.discord.channels.default.id=${DISCORD_CHANNEL_ID} \--set communications.default-group.discord.botID=${DISCORD_BOT_ID} \--set communications.default-group.discord.token=${DISCORD_TOKEN} \--set settings.clusterName=${CLUSTER_NAME} \--set 'executors.k8s-default-tools.botkube/kubectl.enabled'=${ALLOW_KUBECTL} where: @@ -102,7 +102,7 @@ where: * **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](https://docs.botkube.io/configuration). All possible installation parameters are documented [here](https://docs.botkube.io/configuration/helm-chart-parameters). +Configuration syntax is explained [here](https://docs.botkube.io/self-hosted-configuration). All possible installation parameters are documented [here](https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters). Send `@Botkube ping` in the channel to see if Botkube is running and responding. diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__cloud.md b/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__cloud.md index 0e10416..9cdacb2 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__cloud.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__cloud.md @@ -8,7 +8,7 @@ Markdown Content: * [Elasticsearch](https://docs.botkube.io/installation/elasticsearch/) * Elasticsearch for Botkube Cloud -Version: 1.10 +Version: 1.11 Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- @@ -67,4 +67,4 @@ Clean up[​](#clean-up "Direct link to Clean up") ![Image 7: Delete](https://docs.botkube.io/assets/images/els_instance_delete-27fe3622760a4cbbd7c92d13d7ddcd41.png) -[Previous Elasticsearch for self-hosted Botkube](https://docs.botkube.io/installation/elasticsearch/self-hosted)[Next Outgoing webhook](https://docs.botkube.io/installation/webhook/) +[Previous Elasticsearch for self-hosted Botkube](https://docs.botkube.io/installation/elasticsearch/self-hosted) diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__self-hosted.md b/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__self-hosted.md index 0416f50..098af65 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__self-hosted.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__elasticsearch__self-hosted.md @@ -3,8 +3,8 @@ Title: Elasticsearch for self-hosted Botkube | Botkube URL Source: https://docs.botkube.io/installation/elasticsearch/self-hosted Markdown Content: -export CLUSTER_NAME={cluster_name}export ELASTICSEARCH_ADDRESS={elasticsearch_address}export ELASTICSEARCH_USERNAME={elasticsearch_username}export ELASTICSEARCH_PASSWORD={elasticsearch_password}export ELASTICSEARCH_INDEX_NAME={elasticsearch_index_name}botkube install --version v1.10.0 \--set communications.default-group.elasticsearch.enabled=true \--set communications.default-group.elasticsearch.server=${ELASTICSEARCH_ADDRESS} \--set communications.default-group.elasticsearch.username=${ELASTICSEARCH_USERNAME} \--set communications.default-group.elasticsearch.password=${ELASTICSEARCH_PASSWORD} \--set communications.default-group.elasticsearch.indices.default.name=${ELASTICSEARCH_INDEX_NAME} \--set settings.clusterName=${CLUSTER_NAME} +export CLUSTER_NAME={cluster_name}export ELASTICSEARCH_ADDRESS={elasticsearch_address}export ELASTICSEARCH_USERNAME={elasticsearch_username}export ELASTICSEARCH_PASSWORD={elasticsearch_password}export ELASTICSEARCH_INDEX_NAME={elasticsearch_index_name}botkube install --version v1.11.0 \--set communications.default-group.elasticsearch.enabled=true \--set communications.default-group.elasticsearch.server=${ELASTICSEARCH_ADDRESS} \--set communications.default-group.elasticsearch.username=${ELASTICSEARCH_USERNAME} \--set communications.default-group.elasticsearch.password=${ELASTICSEARCH_PASSWORD} \--set communications.default-group.elasticsearch.indices.default.name=${ELASTICSEARCH_INDEX_NAME} \--set settings.clusterName=${CLUSTER_NAME} -Configuration syntax is explained [here](https://docs.botkube.io/configuration). All possible installation parameters are documented [here](https://docs.botkube.io/configuration/helm-chart-parameters). +Configuration syntax is explained [here](https://docs.botkube.io/self-hosted-configuration). All possible installation parameters are documented [here](https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters). Execute the following command to completely remove Botkube and related resources from your cluster: diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__cloud.md b/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__cloud.md index 07c6bf2..57a7046 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__cloud.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__cloud.md @@ -8,7 +8,7 @@ Markdown Content: * [Mattermost](https://docs.botkube.io/installation/mattermost/) * Mattermost for Botkube Cloud -Version: 1.10 +Version: 1.11 Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__self-hosted.md b/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__self-hosted.md index 4a517b3..cfa1ecc 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__self-hosted.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__mattermost__self-hosted.md @@ -52,7 +52,7 @@ Install Botkube in Kubernetes cluster[​](#install-botkube-in-kubernetes-cluste To deploy Botkube agent in your cluster, run: - export MATTERMOST_SERVER_URL={mattermost_server_url}export MATTERMOST_TEAM={mattermost_team_name}export CLUSTER_NAME={cluster_name}export ALLOW_KUBECTL={allow_kubectl}botkube install --version v1.10.0 \--set communications.default-group.mattermost.enabled=true \--set communications.default-group.mattermost.url=${MATTERMOST_SERVER_URL} \--set communications.default-group.mattermost.token=${MATTERMOST_TOKEN} \--set communications.default-group.mattermost.team=${MATTERMOST_TEAM} \--set communications.default-group.mattermost.channels.default.name=${MATTERMOST_CHANNEL} \--set communications.default-group.mattermost.botName=${MATTERMOST_BOT_NAME} \--set settings.clusterName=${CLUSTER_NAME} \--set 'executors.k8s-default-tools.botkube/kubectl.enabled'=${ALLOW_KUBECTL} + export MATTERMOST_SERVER_URL={mattermost_server_url}export MATTERMOST_TEAM={mattermost_team_name}export CLUSTER_NAME={cluster_name}export ALLOW_KUBECTL={allow_kubectl}botkube install --version v1.11.0 \--set communications.default-group.mattermost.enabled=true \--set communications.default-group.mattermost.url=${MATTERMOST_SERVER_URL} \--set communications.default-group.mattermost.token=${MATTERMOST_TOKEN} \--set communications.default-group.mattermost.team=${MATTERMOST_TEAM} \--set communications.default-group.mattermost.channels.default.name=${MATTERMOST_CHANNEL} \--set communications.default-group.mattermost.botName=${MATTERMOST_BOT_NAME} \--set settings.clusterName=${CLUSTER_NAME} \--set 'executors.k8s-default-tools.botkube/kubectl.enabled'=${ALLOW_KUBECTL} where: @@ -64,7 +64,7 @@ where: * **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](https://docs.botkube.io/configuration). All possible installation parameters are documented [here](https://docs.botkube.io/configuration/helm-chart-parameters). +Configuration syntax is explained [here](https://docs.botkube.io/self-hosted-configuration). All possible installation parameters are documented [here](https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters). Send `@Botkube ping` in the channel to see if Botkube is running and responding. diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__slack.md b/hack/assistant-setup/content/docs.botkube.io__installation__slack.md index 1c97a78..a3b9935 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__slack.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__slack.md @@ -3,29 +3,29 @@ Title: Slack | Botkube URL Source: https://docs.botkube.io/installation/slack/ Markdown Content: -Botkube Slack App Versions[​](#botkube-slack-app-versions "Direct link to Botkube Slack App Versions") ------------------------------------------------------------------------------------------------------- +Botkube App for Slack Versions[​](#botkube-app-for-slack-versions "Direct link to Botkube App for Slack Versions") +------------------------------------------------------------------------------------------------------------------ -In order to connect with Slack, Botkube requires a Slack application. There are two versions of the Botkube Slack App available: +In order to connect with Slack, Botkube requires an application for Slack. There are two versions of the Botkube App for Slack available: ### Botkube Cloud App for Slack[​](#botkube-cloud-app-for-slack "Direct link to Botkube Cloud App for Slack") The Botkube Cloud App for Slack offers several advanced features: * One-click installation into your Slack workspace -* Multi-cluster executor support with a single Slack App +* Multi-cluster executor support with a single App for Slack * Manage Slack channels directly from the Botkube web app and ensure the Botkube bot is invited to the correct channels The Botkube Cloud App for Slack uses Botkube's cloud services to manage channels and route executor commands. Events and alerts are sent directly from your cluster to your Slack workspace for reliable, fast notifications. -You can directly try Botkube Cloud App for Slack for free by creating an account in the [Botkube Web App](https://app.botkube.io/). Follow the [Cloud Slack app tutorial](https://docs.botkube.io/installation/slack/cloud-slack) to learn more. +You can directly try Botkube Cloud App for Slack for free by creating an account in the [Botkube Web App](https://app.botkube.io/). Follow the [Cloud app for Slack tutorial](https://docs.botkube.io/installation/slack/cloud-slack) to learn more. -### Botkube Socket Slack App[​](#botkube-socket-slack-app "Direct link to Botkube Socket Slack App") +### Botkube App for Socket Slack[​](#botkube-app-for-socket-slack "Direct link to Botkube App for Socket Slack") -The Socket-mode app works with the open-source Botkube Agent. The Botkube Socket-mode Slack App has the following caveats: +The Socket-mode app works with the open-source Botkube Agent. The Botkube App for Socket-mode Slack has the following caveats: * Must be installed manually into your Slack workspace using the provided configuration * Slack channels must be managed manually, and you need to ensure the Botkube bot is invited to any channel you want to use with Botkube -* When using executor plugins (e.g. kubectl) in a multi-cluster environment, each cluster needs to have a dedicated Botkube Slack bot in order to route commands to the correct cluster. +* When using executor plugins (e.g. kubectl) in a multi-cluster environment, each cluster needs to have a dedicated Botkube bot for Slack in order to route commands to the correct cluster. Follow the [instruction](https://docs.botkube.io/installation/slack/socket-slack) for more details. diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__slack__cloud-slack.md b/hack/assistant-setup/content/docs.botkube.io__installation__slack__cloud-slack.md index 1de0f7b..ccd3aed 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__slack__cloud-slack.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__slack__cloud-slack.md @@ -3,7 +3,7 @@ Title: Botkube Cloud App for Slack | Botkube URL Source: https://docs.botkube.io/installation/slack/cloud-slack Markdown Content: -The Botkube Cloud App for Slack uses Botkube Cloud services to manage channels and route executor commands. This allows multi-cluster support without a need to create a dedicated Slack application for each cluster. Events and alerts are sent directly from your cluster to your Slack workspace for reliable, fast notifications. +The Botkube Cloud App for Slack uses Botkube Cloud services to manage channels and route executor commands. This allows multi-cluster support without a need to create a dedicated application for Slack for each cluster. Events and alerts are sent directly from your cluster to your Slack workspace for reliable, fast notifications. Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- @@ -36,7 +36,7 @@ Create a Botkube Cloud Instance with Cloud Slack[​](#create-a-botkube-cloud-in ![Image 5: Cloud Slack Grant](https://docs.botkube.io/assets/images/cloud_slack_grant-891b3b884c149cc8285622770dbdb140.png) -6. Provide the Slack app details as described follows and click `Next` button. +6. Provide the app for Slack details as described follows and click `Next` button. * **Connected Slack Workspace:** Slack workspace that you granted permission in the previous step. * **Display Name:** Display name of the Cloud Slack configuration. diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__slack__socket-slack.md b/hack/assistant-setup/content/docs.botkube.io__installation__slack__socket-slack.md index 575b371..3c1f756 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__slack__socket-slack.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__slack__socket-slack.md @@ -1,4 +1,4 @@ -Title: Socket Slack App | Botkube +Title: App for Socket Slack | Botkube URL Source: https://docs.botkube.io/installation/slack/socket-slack @@ -12,22 +12,22 @@ Prerequisites[​](#prerequisites "Direct link to Prerequisites") * Access to Kubernetes cluster * Slack Workspace admin access -Install Socket Slack App in Your Slack workspace[​](#install-socket-slack-app-in-your-slack-workspace "Direct link to Install Socket Slack App in Your Slack workspace") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Install app for Socket Slack in Your Slack workspace[​](#install-app-for-socket-slack-in-your-slack-workspace "Direct link to Install app for Socket Slack in Your Slack workspace") +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -Botkube uses interactive messaging to provide better experience. Interactive messaging needs a Slack App with Socket Mode enabled and currently this is not suitable for Slack App Directory listing. For this reason, you need to create a Slack App in your own Slack workspace and use it for Botkube deployment. +Botkube uses interactive messaging to provide better experience. Interactive messaging needs an app for Slack with Socket Mode enabled and currently this is not suitable for Slack App Directory listing. For this reason, you need to create an app for Slack in your own Slack workspace and use it for Botkube deployment. -danger +warning -**Multi-cluster caveat:** The architecture of socket-based Slack apps has a limitation on the routing of executor commands. If you would like to use [Botkube executors](https://docs.botkube.io/configuration/executor/) (e.g. kubectl commands) and have multiple Kubernetes clusters, you need to create and install a Botkube Slack app for each cluster. This is required so that the Slack to Botkube connections go to the right place. We recommend you set the name of each app to reflect the cluster it will connect to in the next steps. +**Multi-cluster caveat:** The architecture of socket-based apps for Slack has a limitation on the routing of executor commands. If you would like to use [Botkube executors](https://docs.botkube.io/plugins/) (e.g. kubectl commands) and have multiple Kubernetes clusters, you need to create and install a Botkube App for Slack for each cluster. This is required so that the Slack to Botkube connections go to the right place. We recommend you set the name of each app to reflect the cluster it will connect to in the next steps. -To learn more about the Slack Socket API limitation, see the [comment](https://github.com/slackapi/bolt-js/issues/1263#issuecomment-1006372826) in the official Slack bot framework repository. +To learn more about the Slack Socket API limitation, see the [comment](https://github.com/slackapi/bolt-js/issues/1263#issuecomment-1006372826) in the official bot for Slack framework repository. -The [Botkube Cloud App for Slack](#botkube-cloud-slack-app) does not have this limitation. +The [Botkube Cloud App for Slack](https://docs.botkube.io/installation/slack/cloud-slack) does not have this limitation. -Follow the steps below to create and install Botkube Slack app to your Slack workspace. +Follow the steps below to create and install Botkube App for Slack to your Slack workspace. -### Create Slack app[​](#create-slack-app "Direct link to Create Slack app") +### Create app for Slack[​](#create-app-for-slack "Direct link to Create app for Slack") 1. Go to [Slack App console](https://api.slack.com/apps) to create an application. @@ -52,7 +52,7 @@ Follow the steps below to create and install Botkube Slack app to your Slack wor Once the application is created, you will be redirected to application details page. Press the **Install your app** button, select the workspace and click **Allow to finish installation**. -![Image 3: Install Slack App](https://docs.botkube.io/assets/images/slack_install_app-0c2fea83804d9a29ffe593d491d699c5.png) +![Image 3: Install App for Slack](https://docs.botkube.io/assets/images/slack_install_app-0c2fea83804d9a29ffe593d491d699c5.png) ### Obtain Bot Token[​](#obtain-bot-token "Direct link to Obtain Bot Token") @@ -60,16 +60,16 @@ Follow the steps to obtain the Bot Token: 1. Select **OAuth & Permissions** section on the left sidebar. On this page you can copy the bot token which starts with `xoxb...`. - ![Image 4: Retrieve Slack Bot Token](https://docs.botkube.io/assets/images/slack_retrieve_bot_token-98639453c7d18970dca8a4727a1c149e.png) + ![Image 4: Retrieve Bot for Slack Token](https://docs.botkube.io/assets/images/slack_retrieve_bot_token-98639453c7d18970dca8a4727a1c149e.png) -2. Export Slack Bot Token as follows: +2. Export Bot for Slack Token as follows: export SLACK_API_BOT_TOKEN="{botToken}" ### Generate and obtain App-Level Token[​](#generate-and-obtain-app-level-token "Direct link to Generate and obtain App-Level Token") -Slack App with Socket Mode requires an App-Level Token for the websocket connection. +App for Slack with Socket Mode requires an App-Level Token for the websocket connection. Follow the steps to generate an App-Level Token: @@ -95,7 +95,7 @@ Install Botkube in Kubernetes cluster[​](#install-botkube-in-kubernetes-cluste To deploy Botkube agent in your cluster, run: - export CLUSTER_NAME={cluster_name}export ALLOW_KUBECTL={allow_kubectl}export SLACK_CHANNEL_NAME={channel_name}botkube install --version v1.10.0 \--set communications.default-group.socketSlack.enabled=true \--set communications.default-group.socketSlack.channels.default.name=${SLACK_CHANNEL_NAME} \--set communications.default-group.socketSlack.appToken=${SLACK_API_APP_TOKEN} \--set communications.default-group.socketSlack.botToken=${SLACK_API_BOT_TOKEN} \--set settings.clusterName=${CLUSTER_NAME} \--set 'executors.k8s-default-tools.botkube/kubectl.enabled'=${ALLOW_KUBECTL} + export CLUSTER_NAME={cluster_name}export ALLOW_KUBECTL={allow_kubectl}export SLACK_CHANNEL_NAME={channel_name}botkube install --version v1.11.0 \--set communications.default-group.socketSlack.enabled=true \--set communications.default-group.socketSlack.channels.default.name=${SLACK_CHANNEL_NAME} \--set communications.default-group.socketSlack.appToken=${SLACK_API_APP_TOKEN} \--set communications.default-group.socketSlack.botToken=${SLACK_API_BOT_TOKEN} \--set settings.clusterName=${CLUSTER_NAME} \--set 'executors.k8s-default-tools.botkube/kubectl.enabled'=${ALLOW_KUBECTL} where: @@ -105,7 +105,7 @@ where: * **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](https://docs.botkube.io/configuration). All possible installation parameters are documented [here](https://docs.botkube.io/configuration/helm-chart-parameters). +Configuration syntax is explained [here](https://docs.botkube.io/self-hosted-configuration). All possible installation parameters are documented [here](https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters). Send `@Botkube ping` in the channel to see if Botkube is running and responding. diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__socketslack.md b/hack/assistant-setup/content/docs.botkube.io__installation__socketslack.md index 6b474c9..0270641 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__socketslack.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__socketslack.md @@ -1,31 +1,9 @@ -Title: Slack | Botkube +Title: Botkube URL Source: https://docs.botkube.io/installation/socketslack Markdown Content: -Botkube Slack App Versions[​](#botkube-slack-app-versions "Direct link to Botkube Slack App Versions") ------------------------------------------------------------------------------------------------------- +Slack +----- -In order to connect with Slack, Botkube requires a Slack application. There are two versions of the Botkube Slack App available: - -### Botkube Cloud App for Slack[​](#botkube-cloud-app-for-slack "Direct link to Botkube Cloud App for Slack") - -The Botkube Cloud App for Slack offers several advanced features: - -* One-click installation into your Slack workspace -* Multi-cluster executor support with a single Slack App -* Manage Slack channels directly from the Botkube web app and ensure the Botkube bot is invited to the correct channels - -The Botkube Cloud App for Slack uses Botkube's cloud services to manage channels and route executor commands. Events and alerts are sent directly from your cluster to your Slack workspace for reliable, fast notifications. - -You can directly try Botkube Cloud App for Slack for free by creating an account in the [Botkube Web App](https://app.botkube.io/). Follow the [Cloud Slack app tutorial](https://docs.botkube.io/installation/slack/cloud-slack) to learn more. - -### Botkube Socket Slack App[​](#botkube-socket-slack-app "Direct link to Botkube Socket Slack App") - -The Socket-mode app works with the open-source Botkube Agent. The Botkube Socket-mode Slack App has the following caveats: - -* Must be installed manually into your Slack workspace using the provided configuration -* Slack channels must be managed manually, and you need to ensure the Botkube bot is invited to any channel you want to use with Botkube -* When using executor plugins (e.g. kubectl) in a multi-cluster environment, each cluster needs to have a dedicated Botkube Slack bot in order to route commands to the correct cluster. - -Follow the [instruction](https://docs.botkube.io/installation/slack/socket-slack) for more details. +Redirecting to the new location of Slack installation... If you are not redirected in a few seconds, please click [here](https://docs.botkube.io/installation/slack/). diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__teams.md b/hack/assistant-setup/content/docs.botkube.io__installation__teams.md index ca61dc9..d36f093 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__teams.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__teams.md @@ -3,29 +3,25 @@ Title: Microsoft Teams | Botkube URL Source: https://docs.botkube.io/installation/teams/ Markdown Content: -info - -The previous Microsoft Teams integration has been deprecated. If you need to use the legacy Microsoft Teams integration, see the [Botkube 1.5 Documentation](https://docs.botkube.io/1.5/installation/teams/). It is recommended to migrate to the new Microsoft Teams app per the below instructions. - -Botkube Cloud Microsoft Teams App[​](#botkube-cloud-microsoft-teams-app "Direct link to Botkube Cloud Microsoft Teams App") ---------------------------------------------------------------------------------------------------------------------------- +Botkube app for Microsoft Teams[​](#botkube-app-for-microsoft-teams "Direct link to Botkube app for Microsoft Teams") +--------------------------------------------------------------------------------------------------------------------- -The Botkube Cloud Microsoft Teams app offers several advanced features: +The Botkube app for Microsoft Teams offers several advanced features: * Simplified installation into your Microsoft Teams workspace * Multi-cluster executor support with a single Microsoft Teams app * Manage Teams channels directly from the Botkube web app and ensure the Botkube bot is invited to the correct channels -The Botkube Cloud Microsoft Teams app uses Botkube's cloud services to manage channels and route source events and executor commands. Currently, it requires a manual side-loading of the app, but we are working on getting it listed in Microsoft AppSource. +The Botkube app for Microsoft Teams uses Botkube's cloud services to manage channels and route source events and executor commands. Currently, it requires a manual side-loading of the app, but we are working on getting it listed in Microsoft AppSource. -You can directly try Botkube Cloud Microsoft Teams app for free by creating an account in the [Botkube Web App](https://app.botkube.io/). Follow the steps below to install the app. +You can directly try Botkube app for Microsoft Teams for free by creating an account in the [Botkube Web App](https://app.botkube.io/). Follow the steps below to install the app. Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- * A Botkube Cloud account. - You can try out the Botkube Cloud Microsoft Teams app for free by creating an account in the [Botkube Cloud app](https://app.botkube.io/). + You can try out the Botkube app for Microsoft Teams for free by creating an account in the [Botkube Cloud app](https://app.botkube.io/). Create a Botkube Cloud Instance with Microsoft Teams[​](#create-a-botkube-cloud-instance-with-microsoft-teams "Direct link to Create a Botkube Cloud Instance with Microsoft Teams") @@ -35,11 +31,11 @@ Create a Botkube Cloud Instance with Microsoft Teams[​](#create-a-botkube-clou 1. Go to Botkube Cloud [Web App](https://app.botkube.io/) and click on `New Instance` button. - ![Image 1: New Instance](https://docs.botkube.io/assets/images/cloud_teams_new_instance-65f57c9b6c2e30c7b6250b1ebebf306c.png) + ![Image 1: New Instance](https://docs.botkube.io/assets/images/cloud_new_instance-65f57c9b6c2e30c7b6250b1ebebf306c.png) 2. Install Botkube Agent on your Kubernetes cluster by following the instructions on the page. - ![Image 2: Install Agent](https://docs.botkube.io/assets/images/cloud_teams_install-c457bdc2758930b79f90849e72f6ebf2.png) + ![Image 2: Install Agent](https://docs.botkube.io/assets/images/cloud_install-c457bdc2758930b79f90849e72f6ebf2.png) 3. Click `Add platform` dropdown, and select `Teams` option. @@ -48,46 +44,32 @@ Create a Botkube Cloud Instance with Microsoft Teams[​](#create-a-botkube-clou Proceed with the next section. -### Install Botkube app to your Microsoft Teams organization and add it to your team[​](#install-botkube-app-to-your-microsoft-teams-organization-and-add-it-to-your-team "Direct link to Install Botkube app to your Microsoft Teams organization and add it to your team") +### Install Botkube app to your team[​](#install-botkube-app-to-your-team "Direct link to Install Botkube app to your team") -1. Download the Botkube Cloud Microsoft Teams app by clicking the `Download Botkube App for Teams` button. - - ![Image 4: Download Teams App](https://docs.botkube.io/assets/images/cloud_teams_download_app-d7196c1a1d06c798599e6d798558823b.png) - -2. Sideload the Botkube app to your Microsoft Teams organization via Teams Admin Center, following the [official documentation](https://learn.microsoft.com/en-us/microsoftteams/teams-custom-app-policies-and-settings#upload-a-custom-app-using-teams-admin-center). +1. Install Botkube app for Microsoft Teams from the official app catalog by clicking the `Install Botkube App for Teams` button. - info + ![Image 4: Install Botkube App for Microsoft Teams](https://docs.botkube.io/assets/images/cloud_teams_download_app-ea7e70df0d9de4e294ab0aa8c85f6a4a.png) - This step requires administrator permissions on your Microsoft Teams organization. Sideloading app is needed only once for the whole organization. + Alternatively, you can search for the "Botkube" app in the Microsoft Teams app catalog and click the **Add** button. - * Ensure the Botkube app is allowed for the organization in the [Teams Admin Center](https://admin.teams.microsoft.com/policies/manage-apps) + ![Image 5: Add Botkube App](https://docs.botkube.io/assets/images/cloud_teams_add_app-64ae4b65439c1e95757ff7e23c9456e6.png) - ![Image 5: Teams Admin Center](https://docs.botkube.io/assets/images/cloud_teams_admin_center-8b857abd2f5aef5416b820878bbaa2a7.png) +2. Add the Botkube app to your team. -3. Add the Botkube app to your team. - - 1. In your Microsoft Teams application, navigate to the **Apps** tab. - - 2. Select the **Built for your organization** tab. - - 3. On the Botkube app card, click on the **Add** button. - - ![Image 6: Add Botkube App](https://docs.botkube.io/assets/images/cloud_teams_add_app-559531c09a0c06d3c0af4f70dc6f741b.png) - - 4. Click the **Add to a team** button. + 1. Click the **Add to a team** button. - ![Image 7: Add app to team](https://docs.botkube.io/assets/images/cloud_teams_botkube_app_add-472d56ad47f55d7f7782a09eeacf2552.png) + ![Image 6: Add app to team](https://docs.botkube.io/assets/images/cloud_teams_botkube_app_add-ab8ab0dc3113336a67d31d5c5bcb7d4a.png) - 5. Select the team and default channel, where you'll get the welcome message. + 2. Select the team and default channel, where you'll get the welcome message. - ![Image 8: Select a team](https://docs.botkube.io/assets/images/cloud_teams_select_team-3df2e3153f0d02101671bf04dc1376b2.png) + ![Image 7: Select a team](https://docs.botkube.io/assets/images/cloud_teams_select_team-3df2e3153f0d02101671bf04dc1376b2.png) - 6. Click the **Set up a bot** button. + 3. Click the **Set up a bot** button. Once the Botkube app is added to your team, you'll receive a welcome message. -![Image 9: Botkube Cloud Microsoft Teams Welcome Message](https://docs.botkube.io/assets/images/cloud_teams_welcome_msg-ff190292b2cd49e74dc49c4ba286c6bb.png) +![Image 8: Botkube Cloud Microsoft Teams Welcome Message](https://docs.botkube.io/assets/images/cloud_teams_welcome_msg-8adcff99243ea8fd517a4588ba85695b.png) Proceed with the next section. @@ -101,15 +83,15 @@ This step requires administrator permissions on your Microsoft Teams organizatio 2. Select your Microsoft account. - ![Image 10: Select account](https://docs.botkube.io/assets/images/cloud_teams_permissions_select_account-9d17c4cfaa2eb163cd114030675293c5.png) + ![Image 9: Select account](https://docs.botkube.io/assets/images/cloud_teams_permissions_select_account-9d17c4cfaa2eb163cd114030675293c5.png) 3. Click the **Accept** button. - ![Image 11: Grant access](https://docs.botkube.io/assets/images/cloud_teams_permissions_accept-9579403a6317274d931ab5fb5b37e8a0.png) + ![Image 10: Grant access](https://docs.botkube.io/assets/images/cloud_teams_permissions_accept-ff8f1bcdada86ac6a58ed9ffcad78880.png) 4. You will be redirected to the confirmation page. - ![Image 12: Confirmation page](https://docs.botkube.io/assets/images/cloud_teams_permissions_success-05aa285e1c8e448c475932925a9ffb02.png) + ![Image 11: Confirmation page](https://docs.botkube.io/assets/images/cloud_teams_permissions_success-74cacd791e1d052fd96ac1dd1ae9dae1.png) Close the page and proceed with the next section. @@ -124,11 +106,11 @@ Go back to the Microsoft Teams app channel, where you received the welcome messa 3. Click the **Connect** button. - ![Image 13: Connect to Botkube Cloud](https://docs.botkube.io/assets/images/cloud_teams_team_connect-46d7192e61f8dcd220f7dd333e8cbaa3.png) + ![Image 12: Connect to Botkube Cloud](https://docs.botkube.io/assets/images/cloud_teams_team_connect-26c492023cb739b0734ba7b9b9d9dba9.png) 4. You will see a confirmation page. - ![Image 14: Confirmation page](https://docs.botkube.io/assets/images/cloud_teams_team_connect_success-2121d79ce97a8f66bd660bf852a32cff.png) + ![Image 13: Confirmation page](https://docs.botkube.io/assets/images/cloud_teams_team_connect_success-255cd1a9e0f6ccd8cd869d76295ae713.png) Close the page and proceed with the next section. @@ -143,46 +125,46 @@ Go back to the Botkube Cloud instance creation. * **Display Name:** Display name of the Microsoft Teams team configuration. * **Channels:** Teams channels where you can execute Botkube commands and receive notification. - ![Image 15: Botkube Cloud Instance Configuration](https://docs.botkube.io/assets/images/cloud_teams_config-c996765f7ed399d6ddd263bfd463a140.png) + ![Image 14: Botkube Cloud Instance Configuration](https://docs.botkube.io/assets/images/cloud_teams_config-c996765f7ed399d6ddd263bfd463a140.png) 2. Add plugins you want to enable in your Botkube instance and click `Next` button. - ![Image 16: Microsoft Teams Plugins](https://docs.botkube.io/assets/images/cloud_teams_add_plugins-0236355cf8424353758934a96ca81112.png) + ![Image 15: Microsoft Teams Plugins](https://docs.botkube.io/assets/images/cloud_teams_add_plugins-0236355cf8424353758934a96ca81112.png) 3. Include optional default command aliases and actions and click `Apply Changes` button to update Botkube Cloud instance. - ![Image 17: Microsoft Teams Create](https://docs.botkube.io/assets/images/cloud_teams_create-c3ff681023bb64d1c92ecf2c85f112a3.png) + ![Image 16: Microsoft Teams Create](https://docs.botkube.io/assets/images/cloud_teams_create-c3ff681023bb64d1c92ecf2c85f112a3.png) -Using Botkube Cloud Microsoft Teams App[​](#using-botkube-cloud-microsoft-teams-app "Direct link to Using Botkube Cloud Microsoft Teams App") ---------------------------------------------------------------------------------------------------------------------------------------------- +Using Botkube app for Microsoft Teams[​](#using-botkube-app-for-microsoft-teams "Direct link to Using Botkube app for Microsoft Teams") +--------------------------------------------------------------------------------------------------------------------------------------- You can start using Botkube Cloud Microsoft Teams by typing `@Botkube cloud help` in one of the channels in the team you configured in one of the previous steps. -![Image 18: Botkube Cloud Microsoft Teams Command Help](https://docs.botkube.io/assets/images/cloud_teams_command_help-7b1a978b74f7bb08c7062b6a80bbea07.png) +![Image 17: Botkube Cloud Microsoft Teams Command Help](https://docs.botkube.io/assets/images/cloud_teams_command_help-7b1a978b74f7bb08c7062b6a80bbea07.png) ### Listing Cloud Instances[​](#listing-cloud-instances "Direct link to Listing Cloud Instances") You can list all your Botkube Cloud instances by typing `@Botkube cloud list` in the Microsoft Teams channel, or click the button `List connected instances` in the help command response. Besides the instance `name`, `ID`, and `status` in the list response, you can also click the `Get details` button to go to instance details on Botkube Cloud Dashboard. -![Image 19: Botkube Cloud Microsoft Teams List Instances](https://docs.botkube.io/assets/images/cloud_teams_list_instances-0079ca8c5f306a230342b447ef8f31cb.png) +![Image 18: Botkube Cloud Microsoft Teams List Instances](https://docs.botkube.io/assets/images/cloud_teams_list_instances-0079ca8c5f306a230342b447ef8f31cb.png) ### Setting Default Instance[​](#setting-default-instance "Direct link to Setting Default Instance") Once a Botkube command is executed, it will be handled on target Kubernetes cluster specified with `--cluster-name` flag. This is an optional flag, where if you have not specified it, Botkube Cloud will select the first instance. However, you can also achieve setting default instance with command `@Botkube cloud set default-instance`. -![Image 20: Cloud Microsoft Teams Set Default Instances](https://docs.botkube.io/assets/images/cloud_teams_command_set_default-3b37b0496c660bc70a102c910234456e.png) +![Image 19: Cloud Microsoft Teams Set Default Instances](https://docs.botkube.io/assets/images/cloud_teams_command_set_default-3b37b0496c660bc70a102c910234456e.png) After this point, all of your commands will be executed on the default instance. Moreover, if you want to execute a command on all the target clusters, you can use `--all-clusters` flag. -![Image 21: Cloud Microsoft Teams All Clusters](https://docs.botkube.io/assets/images/cloud_teams_command_all_clusters-a5c8c474816eb96d277a3dec873d8351.png) +![Image 20: Cloud Microsoft Teams All Clusters](https://docs.botkube.io/assets/images/cloud_teams_command_all_clusters-a5c8c474816eb96d277a3dec873d8351.png) Cleanup[​](#cleanup "Direct link to Cleanup") --------------------------------------------- 1. Go to Botkube Cloud instances page and click `Manage` button of the instance you want to remove. - ![Image 22: Cloud Teams Instance Manage](https://docs.botkube.io/assets/images/cloud_teams_instance_list_manage-e7ccd6d8aaabb01576a4ba21cd2f722d.png) + ![Image 21: Cloud Teams Instance Manage](https://docs.botkube.io/assets/images/cloud_teams_instance_list_manage-e7ccd6d8aaabb01576a4ba21cd2f722d.png) 2. Click `Delete instance` button, type instance name in the popup and click `Delete instance`. @@ -190,7 +172,7 @@ Cleanup[​](#cleanup "Direct link to Cleanup") Remember to execute the displayed command to completely remove Botkube and related resources from your cluster. - ![Image 23: Cloud Teams Instance Delete](https://docs.botkube.io/assets/images/cloud_teams_instance_delete-27fe3622760a4cbbd7c92d13d7ddcd41.png) + ![Image 22: Cloud Teams Instance Delete](https://docs.botkube.io/assets/images/cloud_instance_delete-27fe3622760a4cbbd7c92d13d7ddcd41.png) Caveats[​](#caveats "Direct link to Caveats") @@ -198,12 +180,12 @@ Caveats[​](#caveats "Direct link to Caveats") ### RBAC `ChannelName` mapping[​](#rbac-channelname-mapping "Direct link to rbac-channelname-mapping") -Same as other communication platforms, Botkube Cloud Microsoft Teams app supports RBAC along with [all mappings](https://docs.botkube.io/configuration/rbac#mapping-types). However, because of the Microsoft Teams API limitation, for the default team channel the `ChannelName` is always `General`, regardless of the actual localized channel name. +Same as other communication platforms, Botkube app for Microsoft Teams supports RBAC along with [all mappings](https://docs.botkube.io/features/rbac#mapping-types). However, because of the Microsoft Teams API limitation, for the default team channel the `ChannelName` is always `General`, regardless of the actual localized channel name. Limitations[​](#limitations "Direct link to Limitations") --------------------------------------------------------- -Botkube Cloud Microsoft Teams App currently doesn't support the following features yet: +Botkube app for Microsoft Teams currently doesn't support the following features yet: * Processing states from selected dropdowns, e.g., used for the `kubectl` command builder. In a result, the command builder is not available. diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__webhook.md b/hack/assistant-setup/content/docs.botkube.io__installation__webhook.md index f9410b9..c71b11f 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__webhook.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__webhook.md @@ -3,10 +3,4 @@ Title: Outgoing webhook | Botkube URL Source: https://docs.botkube.io/installation/webhook/ Markdown Content: -Previous - -Elasticsearch for Botkube Cloud - -Next - -Outgoing webhook for self-hosted Botkube +**New to Botkube?** Get started fast (and free!) with the [Botkube Cloud Web App](https://app.botkube.io/). diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__webhook__cloud.md b/hack/assistant-setup/content/docs.botkube.io__installation__webhook__cloud.md index 899495c..fefce38 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__webhook__cloud.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__webhook__cloud.md @@ -8,7 +8,7 @@ Markdown Content: * [Outgoing webhook](https://docs.botkube.io/installation/webhook/) * Outgoing webhook for Botkube Cloud -Version: 1.10 +Version: 1.11 Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- diff --git a/hack/assistant-setup/content/docs.botkube.io__installation__webhook__self-hosted.md b/hack/assistant-setup/content/docs.botkube.io__installation__webhook__self-hosted.md index 011ea1a..e5294e1 100644 --- a/hack/assistant-setup/content/docs.botkube.io__installation__webhook__self-hosted.md +++ b/hack/assistant-setup/content/docs.botkube.io__installation__webhook__self-hosted.md @@ -5,8 +5,8 @@ URL Source: https://docs.botkube.io/installation/webhook/self-hosted Markdown Content: Botkube can be integrated with external apps via Webhooks. A webhook is essentially a POST request sent to a callback URL. So you can configure Botkube to send events on specified URL. - export CLUSTER_NAME={cluster_name}export WEBHOOK_URL={url}botkube install --version v1.10.0 \--set communications.default-group.webhook.enabled=true \--set communications.default-group.webhook.url=${WEBHOOK_URL} \--set settings.clusterName=${CLUSTER_NAME} + export CLUSTER_NAME={cluster_name}export WEBHOOK_URL={url}botkube install --version v1.11.0 \--set communications.default-group.webhook.enabled=true \--set communications.default-group.webhook.url=${WEBHOOK_URL} \--set settings.clusterName=${CLUSTER_NAME} -Configuration syntax is explained [here](https://docs.botkube.io/configuration). All possible installation parameters are documented [here](https://docs.botkube.io/configuration/helm-chart-parameters). +Configuration syntax is explained [here](https://docs.botkube.io/self-hosted-configuration). All possible installation parameters are documented [here](https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters). Execute the following command to completely remove Botkube and related resources from your cluster: diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__dependencies.md b/hack/assistant-setup/content/docs.botkube.io__plugin__dependencies.md deleted file mode 100644 index 0dbc0fe..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__dependencies.md +++ /dev/null @@ -1,24 +0,0 @@ -Title: Dependencies | Botkube - -URL Source: https://docs.botkube.io/plugin/dependencies - -Markdown Content: -Plugins can depend on other binaries, which are then downloaded by Botkube along with a given plugin. This is supported for both executor and source plugins. - -As a part of the `Metadata` method, define the `Dependencies` property. The key is the name of the dependency, and the value is a structure with links to binaries for each platform. - -info - -For downloading plugins and theirs dependencies, Botkube uses `go-getter` library. It supports multiple URL formats (such as HTTP, Git repositories or S3), and is able to unpack archives and extract binaries from them. For more details, see the documentation on the [`go-getter`](https://github.com/hashicorp/go-getter) GitHub repository. - - const ( kubectlVersion = "v1.28.1")// Metadata returns details about kubectl plugin.func (e *Executor) Metadata(context.Context) (api.MetadataOutput, error) { return api.MetadataOutput{ // ... Dependencies: map[string]api.Dependency{ "kubectl": { URLs: map[string]string{ "windows/amd64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/windows/amd64/kubectl.exe", kubectlVersion), "darwin/amd64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/darwin/amd64/kubectl", kubectlVersion), "darwin/arm64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/darwin/arm64/kubectl", kubectlVersion), "linux/amd64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/amd64/kubectl", kubectlVersion), "linux/s390x": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/s390x/kubectl", kubectlVersion), "linux/ppc64le": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/ppc64le/kubectl", kubectlVersion), "linux/arm64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/arm64/kubectl", kubectlVersion), "linux/386": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/386/kubectl", kubectlVersion), } }, }, }, nil} - -Such a definition will result in the following `dependencies` section in the plugin index: - -During Botkube startup, Botkube plugin manager fetches the plugin binaries along with all dependencies. Each dependency binary is named exactly as specified in the [plugin index](#define-dependencies-for-plugin-index-generation). The dependency is fetched to a directory specified in the `PLUGIN_DEPENDENCY_DIR` environment variable passed to the plugin. - -To make it easier, there's a helper function `plugin.ExecuteCommand` in the `github.com/kubeshop/botkube/pkg/plugin` package, which does all of the above. For example, the kubectl plugin uses the following code: - - // set additional env variablesenvs := map[string]string{ "KUBECONFIG": kubeConfigPath,}// runCmd is e.g. "kubectl get pods --all-namespaces"// plugin.ExecuteCommand will replace kubectl with full path to the kubectl binary dependencyout, err := plugin.ExecuteCommand(ctx, runCmd, plugin.ExecuteCommandEnvs(envs)) - -To get familiar with the full example, see the [kubectl plugin](https://github.com/kubeshop/botkube/tree/main/cmd/executor/kubectl) in the Botkube repository. The Kubectl plugin depends on the official [kubectl CLI](https://kubernetes.io/docs/tasks/tools/#kubectl) binary, which is defined as a part of the `Metadata` method. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__using-kubeconfig.md b/hack/assistant-setup/content/docs.botkube.io__plugin__using-kubeconfig.md deleted file mode 100644 index b72bea1..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__using-kubeconfig.md +++ /dev/null @@ -1,12 +0,0 @@ -Title: Using kubeconfig | Botkube - -URL Source: https://docs.botkube.io/plugin/using-kubeconfig - -Markdown Content: -You can request Botkube to generate and pass kubeconfig file to your plugin by adding RBAC section to your plugin configuration. The following example requests a kubeconfig that impersonates user **User.rbac.authorization.k8s.io** `read-only-user`. For more information refer to the [RBAC section](https://docs.botkube.io/configuration/rbac). The example is for executor plugins, source plugins can access kubeconfig in their `Stream()` function in `source.StreamInput`. - -The kubeconfig is available in `executor.ExecuteInput` as a slice of bytes. There are two options to instantiate a Kubernetes Go client with this config. - - import ( "context" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/kubernetes" "github.com/kubeshop/botkube/pkg/api/executor" "github.com/kubeshop/botkube/pkg/pluginx")func (ReaderExecutor) Execute(_ context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { config, err := clientcmd.RESTConfigFromKubeConfig(in.Context.KubeConfig) if err != nil { return executor.ExecuteOutput{}, err } clientset, err := kubernetes.NewForConfig(config) if err != nil { return executor.ExecuteOutput{}, err } ...} - - import ( "context" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/kubernetes" "github.com/kubeshop/botkube/pkg/api/executor" "github.com/kubeshop/botkube/pkg/pluginx")func (ReaderExecutor) Execute(ctx context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { kubeConfigPath, deleteFn, err := pluginx.PersistKubeConfig(ctx, in.Context.KubeConfig) if err != nil { return executor.ExecuteOutput{}, fmt.Errorf("while writing kubeconfig file: %w", err) } defer func() { if deleteErr := deleteFn(ctx); deleteErr != nil { fmt.Fprintf(os.Stderr, "failed to delete kubeconfig file %s: %v", kubeConfigPath, deleteErr) } }() config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath) if err != nil { return executor.ExecuteOutput{}, err } clientset, err := kubernetes.NewForConfig(config) if err != nil { return executor.ExecuteOutput{}, err } ...} diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins.md b/hack/assistant-setup/content/docs.botkube.io__plugins.md new file mode 100644 index 0000000..02b6dae --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins.md @@ -0,0 +1,13 @@ +Title: Plugins | Botkube + +URL Source: https://docs.botkube.io/plugins/ + +Markdown Content: +This section aggregates all officially maintained Botkube plugins. Some of them require active [Botkube Cloud](https://app.botkube.io/) account. + +There are two types of the plugins: + +* **Source plugins**, which emit events to the communication platforms, +* **Executor plugins**, responsible for handling commands from the supported chat platforms. + +To learn how to build your own plugin, see the [Plugin development](https://docs.botkube.io/plugins/development/) section. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__ai-assistant.md b/hack/assistant-setup/content/docs.botkube.io__plugins__ai-assistant.md new file mode 100644 index 0000000..9a602c7 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__ai-assistant.md @@ -0,0 +1,82 @@ +Title: Botkube + +URL Source: https://docs.botkube.io/plugins/ai-assistant + +Markdown Content: +AI Assistant +------------ + +info + +**This plugin is hosted by the [Botkube Cloud](https://app.botkube.io/) plugin repository and requires active Botkube Cloud account.** + +The AI Assistant plugin makes it easier than ever for teams to identify, diagnose, and troubleshoot issues in any Kubernetes cluster. It is powered by the OpenAI's `GPT-4o` large language model with additional Kubernetes-related capabilities. + +Features[​](#features "Direct link to Features") +------------------------------------------------ + +The plugin provides the following features: + +* "AI Help" button for Kubernetes event analysis. +* Answering arbitrary questions or instructions. +* Kubernetes cluster troubleshooting based on: + * `kubectl` commands, + * container logs, + * Kubernetes events, + * resource usage (CPU/memory). +* Answering Botkube questions or instructions based on: + * Agent status and configuration, + * the latest Botkube documentation and other Botkube content. +* Keeping conversation context in the message threads. + +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- + +Enable the plugin[​](#enable-the-plugin "Direct link to Enable the plugin") +--------------------------------------------------------------------------- + +You can enable the plugin as a part of Botkube instance configuration. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. +3. Navigate to the platform tab which you want to configure. +4. Click **Add plugin** button. +5. Select the AI plugin. +6. Click **Save** button. + +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +### Highlights[​](#highlights "Direct link to Highlights") + +To see the AI assistant in action, watch the video: + +### AI Help for Kubernetes events[​](#ai-help-for-kubernetes-events "Direct link to AI Help for Kubernetes events") + +Click on the **AI Help** button to get an analysis of the event. + +![Image 1: AI Help](https://docs.botkube.io/assets/images/ai-help-usage-f2d200f6e8233c8528366a07763f9aac.png) + +### AI questions and instructions[​](#ai-questions-and-instructions "Direct link to AI questions and instructions") + +To ask the Botkube AI Assistant any question, use the `@Botkube ai` command prefix. + +Here are a few examples to get you started: + +* `@Botkube ai are my pods in default namespace up and running?` +* `@Botkube ai how many nodes are there?` +* `@Botkube ai output a yaml for Kubernetes pod with nginx image` +* `@Botkube what's the current Botkube status?` +* `@Botkube ai what's the difference between Botkube sources and executors?` +* `@Botkube ai what Botkube plugins are available to install? List all of them with one sentence description and link to the docs.` +* `@Botkube ai who's the Botkube maintainer?` + +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +Currently, the AI plugin doesn't have any configuration options. + +Limitations[​](#limitations "Direct link to Limitations") +--------------------------------------------------------- + +* The conversation context is stored in-memory and will be cleared on Botkube Agent restart. diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__source__argocd.md b/hack/assistant-setup/content/docs.botkube.io__plugins__argocd.md similarity index 90% rename from hack/assistant-setup/content/docs.botkube.io__configuration__source__argocd.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__argocd.md index 5556425..738e574 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__source__argocd.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__argocd.md @@ -1,22 +1,20 @@ Title: ArgoCD | Botkube -URL Source: https://docs.botkube.io/configuration/source/argocd +URL Source: https://docs.botkube.io/plugins/argocd Markdown Content: info -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). +**This plugin is hosted by the [Botkube Cloud](https://app.botkube.io/) plugin repository and requires active Botkube Cloud account.** ArgoCD source plugin sends events from ArgoCD to configured communication platforms. During startup, the plugin configures ArgoCD webhooks, triggers, templates and subscriptions based on the [ArgoCD Notification Catalog](https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/catalog/). It uses native [ArgoCD notifications](https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/) configuration to send the events to Botkube communication platforms. The ArgoCD source plugin is hosted by the Botkube Cloud plugin repository and requires active Botkube Cloud account. -Prerequisite elevated RBAC permissions[​](#prerequisite-elevated-rbac-permissions "Direct link to Prerequisite elevated RBAC permissions") ------------------------------------------------------------------------------------------------------------------------------------------- +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- + +### 1\. Prepare elevated RBAC permissions[​](#1-prepare-elevated-rbac-permissions "Direct link to 1. Prepare elevated RBAC permissions") ArgoCD plugin requires specific RBAC permissions. First, create RBAC resources on your cluster: @@ -26,14 +24,13 @@ Next, use the `argocd` static group name in the plugin RBAC configuration: ![Image 1: ArgoCD RBAC](https://docs.botkube.io/assets/images/argocd-rbac-71831f5dfa99aade0bbccbcb140488fd.png) -Enabling plugin[​](#enabling-plugin "Direct link to Enabling plugin") ---------------------------------------------------------------------- +### 2\. Enable the plugin[​](#2-enable-the-plugin "Direct link to 2. Enable the plugin") note In order to enable the plugin, ArgoCD has to be already installed on the cluster and all watched Applications need to be created. -Also, remember to create RBAC resources for the plugin. See the [Elevated RBAC permissions required](#elevated-rbac-permissions-required)) section. +Also, remember to create RBAC resources for the plugin. See the [Prepare elevated RBAC permissions](#1-prepare-elevated-rbac-permissions) section. You can enable the plugin as a part of Botkube instance configuration. @@ -42,8 +39,8 @@ You can enable the plugin as a part of Botkube instance configuration. 3. Navigate to the platform tab which you want to configure. 4. Click **Add plugin** button. 5. Select the ArgoCD plugin. -6. Click **Save** button. -7. Provide at least one ArgoCD application name and namespace in the configuration. +6. Provide at least one ArgoCD application name and namespace in the configuration. +7. Click **Save** button. defaultSubscriptions: applications: - name: guestbook namespace: argocd @@ -53,6 +50,28 @@ You can watch multiple ArgoCD Applications at the same time, for example: 1. Click **Save**. +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +Botkube allows you to consume ArgoCD events on your Kubernetes cluster. + +Once it is enabled, the ArgoCD plugin will configure ArgoCD notifications so that Botkube receives them on its incoming webhook. Then, Botkube will send them to configured platforms as shown below. + +![Image 2: ArgoCD events](https://docs.botkube.io/assets/images/argocd-events-e6eabb1f581e9822020d55461539bfcd.png) + +Interactive events[​](#interactive-events "Direct link to Interactive events") +------------------------------------------------------------------------------ + +For platforms that support interactivity, such as Slack and Microsoft Teams, Botkube sends interactive messages for ArgoCD events, that allow you to perform actions on the event. By default, the following actions are supported: + +* Run commands on the Application: + * `get` + * `describe` +* View the Application in the ArgoCD UI +* Open the source repository in the browser + +Interactive buttons and commands can be configured. See the [Configuration](#configuration-syntax) section for more details. + Cleanup[​](#cleanup "Direct link to Cleanup") --------------------------------------------- diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development.md similarity index 57% rename from hack/assistant-setup/content/docs.botkube.io__plugin.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development.md index 22b14df..7d1d9bf 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development.md @@ -1,6 +1,6 @@ -Title: Plugin Development | Botkube +Title: Plugin development | Botkube -URL Source: https://docs.botkube.io/plugin/ +URL Source: https://docs.botkube.io/plugins/development/ Markdown Content: The Botkube plugin system allows you to extend the Botkube core with custom logic. For example, call or receive events from third-party services. @@ -8,9 +8,9 @@ The Botkube plugin system allows you to extend the Botkube core with custom logi To learn more about the Botkube plugin system, follow the recommended steps: * Get familiar with the Botkube [architecture](https://docs.botkube.io/architecture). -* Enable and configure the [Helm](https://docs.botkube.io/configuration/executor/helm) executor. -* Use the [template repository](https://docs.botkube.io/plugin/quick-start). -* Learn how to develop a custom [executor](https://docs.botkube.io/plugin/custom-executor) or [source](https://docs.botkube.io/plugin/custom-source) plugin. -* [Distribute the plugins](https://docs.botkube.io/plugin/repo) that you built. +* Enable and configure the [Helm](https://docs.botkube.io/plugins/helm) executor. +* Use the [template repository](https://docs.botkube.io/plugins/development/quick-start). +* Learn how to develop a custom [executor](https://docs.botkube.io/plugins/development/custom-executor) or [source](https://docs.botkube.io/plugins/development/custom-source) plugin. +* [Distribute the plugins](https://docs.botkube.io/plugins/development/repo) that you built. Share feedback with us via [Slack](https://join.botkube.io/) or [GitHub](https://github.com/kubeshop/botkube/issues)! diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__custom-executor.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__custom-executor.md similarity index 84% rename from hack/assistant-setup/content/docs.botkube.io__plugin__custom-executor.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__custom-executor.md index 4dc29d0..bb8fe8f 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__custom-executor.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__custom-executor.md @@ -1,6 +1,6 @@ Title: Custom executor | Botkube -URL Source: https://docs.botkube.io/plugin/custom-executor +URL Source: https://docs.botkube.io/plugins/development/custom-executor Markdown Content: You can extend Botkube functionality by writing custom executor plugin. An executor allows you to run a given command, such as `kubectl`, directly in the chat window of each communication platform For example. @@ -14,7 +14,7 @@ This tutorial shows you how to build a custom `echo` executor that responds with ![Image 1: echo-demo](https://docs.botkube.io/assets/images/echo-demo-ff35ba0e3555968d781b9a2ac6961311.gif) -For a final implementation, see the [Botkube template repository](https://docs.botkube.io/plugin/quick-start). +For a final implementation, see the [Botkube template repository](https://docs.botkube.io/plugins/development/quick-start). Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- @@ -48,19 +48,19 @@ Prerequisites[​](#prerequisites "Direct link to Prerequisites") The `Metadata` method returns basic information about your plugin. This data is used when the plugin index is generated in an automated way. You will learn more about that in the next steps. - Ąs a part of the `Metadata` method, you can define the plugin dependencies. To learn more about them, see the [Dependencies](https://docs.botkube.io/plugin/dependencies) document. + Ąs a part of the `Metadata` method, you can define the plugin dependencies. To learn more about them, see the [Dependencies](https://docs.botkube.io/plugins/development/dependencies) document. 6. Add the required `Execute` method: - // Execute returns a given command as a response.func (*EchoExecutor) Execute(_ context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { return executor.ExecuteOutput{ Message: api.NewCodeBlockMessage(response, true), }, nil} + // Execute returns a given command as a response.func (*EchoExecutor) Execute(_ context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { return executor.ExecuteOutput{ Message: api.NewCodeBlockMessage(response, true), }, nil} - The `Execute` method is the heart of your executor plugin. This method runs your business logic and returns the execution output. Next, the Botkube core sends back the response to a given communication platform. If the communication platform supports interactivity, you can construct and return interactive messages containing buttons, dropdowns, input text, and more complex formatting. To learn more about it, see the [Interactive Messages](https://docs.botkube.io/plugin/interactive-messages) guide. + The `Execute` method is the heart of your executor plugin. This method runs your business logic and returns the execution output. Next, the Botkube core sends back the response to a given communication platform. If the communication platform supports interactivity, you can construct and return interactive messages containing buttons, dropdowns, input text, and more complex formatting. To learn more about it, see the [Interactive Messages](https://docs.botkube.io/plugins/development/interactive-messages) guide. For each `Execute` method call, Botkube attaches the list of associated configurations. You will learn more about that in the [**Passing configuration to your plugin**](#passing-configuration-to-your-plugin) section. 7. Add the required `Help` method: - // Help returns help messagefunc (EchoExecutor) Help(context.Context) (api.Message, error) { btnBuilder := api.NewMessageButtonBuilder() return api.Message{ Sections: []api.Section{ { Base: api.Base{ Header: "Run `echo` commands", Description: description, }, Buttons: []api.Button{ btnBuilder.ForCommandWithDescCmd("Run", "echo 'hello world'"), }, }, }, }, nil} + // Help returns help messagefunc (EchoExecutor) Help(context.Context) (api.Message, error) { btnBuilder := api.NewMessageButtonBuilder() return api.Message{ Sections: []api.Section{ { Base: api.Base{ Header: "Run `echo` commands", Description: description, }, Buttons: []api.Button{ btnBuilder.ForCommandWithDescCmd("Run", "echo 'hello world'"), }, }, }, }, nil} You can use `api.NewCodeBlockMessage` or `api.NewPlaintextMessage` helper functions, or construct your own message. @@ -85,7 +85,7 @@ Instead of GoReleaser, you can use another tool of your choice. Congrats! You just created your first Botkube executor plugin! 🎉 -Now it's time to [test it locally with Botkube](https://docs.botkube.io/plugin/local-testing). Once you're done testing, see how to [distribute it](https://docs.botkube.io/plugin/repo). +Now it's time to [test it locally with Botkube](https://docs.botkube.io/plugins/development/local-testing). Once you're done testing, see how to [distribute it](https://docs.botkube.io/plugins/development/repo). Passing configuration to your plugin[​](#passing-configuration-to-your-plugin "Direct link to Passing configuration to your plugin") ------------------------------------------------------------------------------------------------------------------------------------ @@ -96,7 +96,7 @@ Sometimes your executor plugin requires a configuration specified by the end-use This means that two different `botkube/echo` plugin configurations were bound to the `all-teams` Slack channel. Under `executor.ExecuteInput{}.Configs`, you will find the list of configurations in the YAML format as specified under the `config` property for each bound and enabled executor. The order of the configuration is the same as specified under the `bindings.executors` property. It's up to the plugin author to merge the passed configurations. You can use our helper function from the plugin extension package (`pluginx`). - import ( "context" "github.com/kubeshop/botkube/pkg/api/executor" "github.com/kubeshop/botkube/pkg/pluginx")// Config holds the executor configuration.type Config struct { FormatOptions []string `yaml:"options,omitempty"`}func (EchoExecutor) Execute(_ context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { var cfg Config err := pluginx.MergeExecutorConfigs(in.Configs, &cfg) if err != nil { return executor.ExecuteOutput{}, err } // rest logic} + import ( "context" "github.com/kubeshop/botkube/pkg/api/executor" "github.com/kubeshop/botkube/pkg/pluginx")// Config holds the executor configuration.type Config struct { FormatOptions []string `yaml:"options,omitempty"`}func (EchoExecutor) Execute(_ context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { var cfg Config err := pluginx.MergeExecutorConfigs(in.Configs, &cfg) if err != nil { return executor.ExecuteOutput{}, err } // rest logic} caution diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__custom-source.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__custom-source.md similarity index 76% rename from hack/assistant-setup/content/docs.botkube.io__plugin__custom-source.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__custom-source.md index 1497da6..1bdd7b8 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__custom-source.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__custom-source.md @@ -1,6 +1,6 @@ Title: Custom source | Botkube -URL Source: https://docs.botkube.io/plugin/custom-source +URL Source: https://docs.botkube.io/plugins/development/custom-source Markdown Content: You can extend Botkube functionality by writing custom source plugin. A source allows you to get asynchronous streaming of domain-specific events. For example, streaming Kubernetes or Prometheus events . @@ -14,7 +14,7 @@ This tutorial shows you how to build a custom `ticker` source that emits an even ![Image 1: ticker-demo](https://docs.botkube.io/assets/images/ticker-demo-5f751c91c53d518e62975d56a6be5011.gif) -For a final implementation, see the [Botkube template repository](https://docs.botkube.io/plugin/quick-start). +For a final implementation, see the [Botkube template repository](https://docs.botkube.io/plugins/development/quick-start). Prerequisites[​](#prerequisites "Direct link to Prerequisites") --------------------------------------------------------------- @@ -36,7 +36,7 @@ Prerequisites[​](#prerequisites "Direct link to Prerequisites") 3. Create the `main.go` file for the `ticker` source with the following template: - cat << EOF > main.gopackage mainimport ( "context" "fmt" "time" "github.com/hashicorp/go-plugin" "github.com/kubeshop/botkube/pkg/api" "github.com/kubeshop/botkube/pkg/api/source" "gopkg.in/yaml.v3")// Config holds source configuration.type Config struct { Interval time.Duration}// Ticker implements the Botkube source plugin interface.type Ticker struct{}func main() { source.Serve(map[string]plugin.Plugin{ "ticker": &source.Plugin{ Source: &Ticker{}, }, })}EOF + cat << EOF > main.gopackage mainimport ( "context" "fmt" "time" "github.com/hashicorp/go-plugin" "github.com/kubeshop/botkube/pkg/api" "github.com/kubeshop/botkube/pkg/api/source" "gopkg.in/yaml.v3")// Config holds source configuration.type Config struct { Interval time.Duration}// Ticker implements the Botkube source plugin interface.type Ticker struct{}func main() { source.Serve(map[string]plugin.Plugin{ "ticker": &source.Plugin{ Source: &Ticker{}, }, })}EOF This template code imports required packages and registers `Ticker` as the gRPC plugin. At this stage, the `Ticker` service doesn't implement the required [Protocol Buffers](https://github.com/kubeshop/botkube/blob/main/proto/source.proto) contract. We will add the required methods in the next steps. @@ -44,15 +44,15 @@ Prerequisites[​](#prerequisites "Direct link to Prerequisites") 5. Add the required `Metadata` method: - // Metadata returns details about the Ticker plugin.func (Ticker) Metadata(_ context.Context) (api.MetadataOutput, error) { return api.MetadataOutput{ Version: "0.1.0", Description: "Emits an event at a specified interval.", }, nil} + // Metadata returns details about the Ticker plugin.func (Ticker) Metadata(_ context.Context) (api.MetadataOutput, error) { return api.MetadataOutput{ Version: "0.1.0", Description: "Emits an event at a specified interval.", }, nil} The `Metadata` method returns basic information about your plugin. This data is used when the plugin index is generated in an automated way. You will learn more about that in the next steps. - Ąs a part of the `Metadata` method, you can define the plugin dependencies. To learn more about them, see the [Dependencies](https://docs.botkube.io/plugin/dependencies) document. + Ąs a part of the `Metadata` method, you can define the plugin dependencies. To learn more about them, see the [Dependencies](https://docs.botkube.io/plugins/development/dependencies) document. 6. Add the required `Stream` method: - // Stream sends an event after configured time duration.func (Ticker) Stream(ctx context.Context, in source.StreamInput) (source.StreamOutput, error) { cfg, err := mergeConfigs(in.Configs) if err != nil { return source.StreamOutput{}, err } ticker := time.NewTicker(cfg.Interval) out := source.StreamOutput{ Event: make(chan source.Event), } go func() { for { select { case <-ctx.Done(): ticker.Stop() case <-ticker.C: out.Event <- source.Event{ Message: api.NewPlaintextMessage("Ticker Event", true), } } } }() return out, nil}// mergeConfigs merges all input configuration. In our case we don't have complex merge strategy,// the last one that was specified wins :)func mergeConfigs(configs []*source.Config) (Config, error) { // default config finalCfg := Config{ Interval: time.Minute, } for _, inputCfg := range configs { var cfg Config err := yaml.Unmarshal(inputCfg.RawYAML, &cfg) if err != nil { return Config{}, fmt.Errorf("while unmarshalling YAML config: %w", err) } if cfg.Interval != 0 { finalCfg.Interval = cfg.Interval } } return finalCfg, nil} + // Stream sends an event after configured time duration.func (Ticker) Stream(ctx context.Context, in source.StreamInput) (source.StreamOutput, error) { cfg, err := mergeConfigs(in.Configs) if err != nil { return source.StreamOutput{}, err } ticker := time.NewTicker(cfg.Interval) out := source.StreamOutput{ Event: make(chan source.Event), } go func() { for { select { case <-ctx.Done(): ticker.Stop() case <-ticker.C: out.Event <- source.Event{ Message: api.NewPlaintextMessage("Ticker Event", true), } } } }() return out, nil}// mergeConfigs merges all input configuration. In our case we don't have complex merge strategy,// the last one that was specified wins :)func mergeConfigs(configs []*source.Config) (Config, error) { // default config finalCfg := Config{ Interval: time.Minute, } for _, inputCfg := range configs { var cfg Config err := yaml.Unmarshal(inputCfg.RawYAML, &cfg) if err != nil { return Config{}, fmt.Errorf("while unmarshalling YAML config: %w", err) } if cfg.Interval != 0 { finalCfg.Interval = cfg.Interval } } return finalCfg, nil} The `Stream` method is the heart of your source plugin. This method runs your business logic and push events into the `out.Output` channel. Next, the Botkube core sends the event to a given communication platform. @@ -92,7 +92,7 @@ Instead of GoReleaser, you can use another tool of your choice. The important th Congrats! You just created your first Botkube source plugin! 🎉 -Now it's time to [test it locally with Botkube](https://docs.botkube.io/plugin/local-testing). Once you're done testing, see how to [distribute it](https://docs.botkube.io/plugin/repo). +Now it's time to [test it locally with Botkube](https://docs.botkube.io/plugins/development/local-testing). Once you're done testing, see how to [distribute it](https://docs.botkube.io/plugins/development/repo). Passing configuration to your plugin[​](#passing-configuration-to-your-plugin "Direct link to Passing configuration to your plugin") ------------------------------------------------------------------------------------------------------------------------------------ diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__debugging.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__debugging.md similarity index 93% rename from hack/assistant-setup/content/docs.botkube.io__plugin__debugging.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__debugging.md index 94c6ef2..4f28292 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__debugging.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__debugging.md @@ -1,6 +1,6 @@ Title: Debugging | Botkube -URL Source: https://docs.botkube.io/plugin/debugging +URL Source: https://docs.botkube.io/plugins/development/debugging Markdown Content: Embedded logging allows you to access more information about the runtime operations of Botkube plugins. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__development__dependencies.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__dependencies.md new file mode 100644 index 0000000..47b0a0c --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__dependencies.md @@ -0,0 +1,24 @@ +Title: Dependencies | Botkube + +URL Source: https://docs.botkube.io/plugins/development/dependencies + +Markdown Content: +Plugins can depend on other binaries, which are then downloaded by Botkube along with a given plugin. This is supported for both executor and source plugins. + +As a part of the `Metadata` method, define the `Dependencies` property. The key is the name of the dependency, and the value is a structure with links to binaries for each platform. + +info + +For downloading plugins and theirs dependencies, Botkube uses `go-getter` library. It supports multiple URL formats (such as HTTP, Git repositories or S3), and is able to unpack archives and extract binaries from them. For more details, see the documentation on the [`go-getter`](https://github.com/hashicorp/go-getter) GitHub repository. + + const ( kubectlVersion = "v1.28.1")// Metadata returns details about kubectl plugin.func (e *Executor) Metadata(context.Context) (api.MetadataOutput, error) { return api.MetadataOutput{ // ... Dependencies: map[string]api.Dependency{ "kubectl": { URLs: map[string]string{ "windows/amd64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/windows/amd64/kubectl.exe", kubectlVersion), "darwin/amd64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/darwin/amd64/kubectl", kubectlVersion), "darwin/arm64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/darwin/arm64/kubectl", kubectlVersion), "linux/amd64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/amd64/kubectl", kubectlVersion), "linux/s390x": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/s390x/kubectl", kubectlVersion), "linux/ppc64le": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/ppc64le/kubectl", kubectlVersion), "linux/arm64": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/arm64/kubectl", kubectlVersion), "linux/386": fmt.Sprintf("https://dl.k8s.io/release/%s/bin/linux/386/kubectl", kubectlVersion), } }, }, }, nil} + +Such a definition will result in the following `dependencies` section in the plugin index: + +During Botkube startup, Botkube plugin manager fetches the plugin binaries along with all dependencies. Each dependency binary is named exactly as specified in the [plugin index](#define-dependencies-for-plugin-index-generation). The dependency is fetched to a directory specified in the `PLUGIN_DEPENDENCY_DIR` environment variable passed to the plugin. + +To make it easier, there's a helper function `plugin.ExecuteCommand` in the `github.com/kubeshop/botkube/pkg/plugin` package, which does all of the above. For example, the kubectl plugin uses the following code: + + // set additional env variablesenvs := map[string]string{ "KUBECONFIG": kubeConfigPath,}// runCmd is e.g. "kubectl get pods --all-namespaces"// plugin.ExecuteCommand will replace kubectl with full path to the kubectl binary dependencyout, err := plugin.ExecuteCommand(ctx, runCmd, plugin.ExecuteCommandEnvs(envs)) + +To get familiar with the full example, see the [kubectl plugin](https://github.com/kubeshop/botkube/tree/main/cmd/executor/kubectl) in the Botkube repository. The Kubectl plugin depends on the official [kubectl CLI](https://kubernetes.io/docs/tasks/tools/#kubectl) binary, which is defined as a part of the `Metadata` method. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__interactive-messages.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__interactive-messages.md similarity index 63% rename from hack/assistant-setup/content/docs.botkube.io__plugin__interactive-messages.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__interactive-messages.md index 4b4ef44..454afb9 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__interactive-messages.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__interactive-messages.md @@ -1,6 +1,6 @@ Title: Interactive messages | Botkube -URL Source: https://docs.botkube.io/plugin/interactive-messages +URL Source: https://docs.botkube.io/plugins/development/interactive-messages Markdown Content: Some of our communication platforms support interactive messages. If interactivity is supported the `IsInteractivitySupported` property under source or execution context is set to **true**. @@ -30,7 +30,7 @@ The `` and `` should be replaced based on your needs. You rep You can define a list of buttons under `Section` object. To construct a given button you can use our helper `api.NewMessageButtonBuilder` builder. For example: - const pluginName = "msg"btnBuilder := api.NewMessageButtonBuilder()msg := api.Message{ Sections: []api.Section{ { Buttons: []api.Button{ btnBuilder.ForCommandWithDescCmd("Run act1", fmt.Sprintf("%s buttons act1", pluginName)), btnBuilder.ForCommandWithDescCmd("Run act2", fmt.Sprintf("%s buttons act2", pluginName), api.ButtonStylePrimary), btnBuilder.ForCommandWithDescCmd("Run act3", fmt.Sprintf("%s buttons act3", pluginName), api.ButtonStyleDanger), }, }, },} + const pluginName = "msg"btnBuilder := api.NewMessageButtonBuilder()msg := api.Message{ Sections: []api.Section{ { Buttons: []api.Button{ btnBuilder.ForCommandWithDescCmd("Run act1", fmt.Sprintf("%s buttons act1", pluginName)), btnBuilder.ForCommandWithDescCmd("Run act2", fmt.Sprintf("%s buttons act2", pluginName), api.ButtonStylePrimary), btnBuilder.ForCommandWithDescCmd("Run act3", fmt.Sprintf("%s buttons act3", pluginName), api.ButtonStyleDanger), }, }, },} When a button is clicked, Botkube runs an associated command. For **Run act1** it's `msg buttons act1`. If there is a plugin named `msg` and it is enabled on a given channel, it will be called by Botkube with a given command string. As a result, you can parse input command and return proper output. @@ -42,13 +42,13 @@ Otherwise, each button is rendered in new line with the description on the left You can define dropdowns under `Section` object. You can split options into groups. Optionally, you can define the initial option. It must be included also under `OptionsGroups`. - cmdPrefix := func(cmd string) string { return fmt.Sprintf("%s %s %s", api.MessageBotNamePlaceholder, pluginName, cmd)}msg := api.Message{ Sections: []api.Section{ { Selects: api.Selects{ ID: "select-id", Items: []api.Select{ { Name: "two-groups", Command: cmdPrefix("selects two-groups"), OptionGroups: []api.OptionGroup{ { Name: cmdPrefix("selects two-groups/1"), Options: []api.OptionItem{ {Name: "BAR", Value: "BAR"}, {Name: "BAZ", Value: "BAZ"}, {Name: "XYZ", Value: "XYZ"}, }, }, { Name: cmdPrefix("selects two-groups/2"), Options: []api.OptionItem{ {Name: "123", Value: "123"}, {Name: "456", Value: "456"}, {Name: "789", Value: "789"}, }, }, }, // MUST be defined also under OptionGroups.Options slice. InitialOption: &api.OptionItem{ Name: "789", Value: "789", }, }, }, }, }, },} + cmdPrefix := func(cmd string) string { return fmt.Sprintf("%s %s %s", api.MessageBotNamePlaceholder, pluginName, cmd)}msg := api.Message{ Sections: []api.Section{ { Selects: api.Selects{ ID: "select-id", Items: []api.Select{ { Name: "two-groups", Command: cmdPrefix("selects two-groups"), OptionGroups: []api.OptionGroup{ { Name: cmdPrefix("selects two-groups/1"), Options: []api.OptionItem{ {Name: "BAR", Value: "BAR"}, {Name: "BAZ", Value: "BAZ"}, {Name: "XYZ", Value: "XYZ"}, }, }, { Name: cmdPrefix("selects two-groups/2"), Options: []api.OptionItem{ {Name: "123", Value: "123"}, {Name: "456", Value: "456"}, {Name: "789", Value: "789"}, }, }, }, // MUST be defined also under OptionGroups.Options slice. InitialOption: &api.OptionItem{ Name: "789", Value: "789", }, }, }, }, }, },} When user select a given option, Botkube runs an associated command and appends selected option at the end. For **BAR** it's `msg selects two-gropus BAR`. If there is a plugin named `msg` and it is enabled on a given channel, it will be called by Botkube with a given command string. As a result, you can parse input command and return proper output. ### Input text fields[​](#input-text-fields "Direct link to Input text fields") - msg := api.Message{ PlaintextInputs: []api.LabelInput{ { Command: fmt.Sprintf("%s %s input-text", api.MessageBotNamePlaceholder, pluginName), DispatchedAction: api.DispatchInputActionOnEnter, Placeholder: "String pattern to filter by", Text: "Filter output", }, },} + msg := api.Message{ PlaintextInputs: []api.LabelInput{ { Command: fmt.Sprintf("%s %s input-text", api.MessageBotNamePlaceholder, pluginName), DispatchedAction: api.DispatchInputActionOnEnter, Placeholder: "String pattern to filter by", Text: "Filter output", }, },} When user types an input string and clicks enter, Botkube runs an associated command and appends input text in quotes. For example, for input **"text"** it's `msg input-text "test"`. If there is a plugin named `msg` and it is enabled on a given channel, it will be called by Botkube with a given command string. As a result, you can parse input command and return proper output. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__local-testing.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__local-testing.md similarity index 97% rename from hack/assistant-setup/content/docs.botkube.io__plugin__local-testing.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__local-testing.md index d664165..d2f698f 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__local-testing.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__local-testing.md @@ -1,6 +1,6 @@ Title: Local testing | Botkube -URL Source: https://docs.botkube.io/plugin/local-testing +URL Source: https://docs.botkube.io/plugins/development/local-testing Markdown Content: This document describes steps for running Botkube core locally together with a local file server for serving your plugins during development phase. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__quick-start.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__quick-start.md similarity index 90% rename from hack/assistant-setup/content/docs.botkube.io__plugin__quick-start.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__quick-start.md index 26bc66d..dac07e0 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__quick-start.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__quick-start.md @@ -1,13 +1,14 @@ Title: Quick start | Botkube -URL Source: https://docs.botkube.io/plugin/quick-start +URL Source: https://docs.botkube.io/plugins/development/quick-start Markdown Content: * [](https://docs.botkube.io/) -* [Plugin Development](https://docs.botkube.io/plugin/) +* [Plugins](https://docs.botkube.io/plugins/) +* [Plugin development](https://docs.botkube.io/plugins/development/) * Quick start -Version: 1.10 +Version: 1.11 Botkube provides a quick start repository to start developing Botkube [source](https://docs.botkube.io/architecture/#source) and [executor](https://docs.botkube.io/architecture/#executor) plugins in Go. It has all batteries included; example plugins: @@ -57,4 +58,4 @@ Use template[​](#use-template "Direct link to Use template") 5. Add LICENSE file and update the README.md file to describe the plugins that you created. -[Previous Plugin Development](https://docs.botkube.io/plugin/)[Next Custom executor](https://docs.botkube.io/plugin/custom-executor) +[Previous Plugin development](https://docs.botkube.io/plugins/development/)[Next Custom executor](https://docs.botkube.io/plugins/development/custom-executor) diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__repo.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__repo.md similarity index 85% rename from hack/assistant-setup/content/docs.botkube.io__plugin__repo.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__repo.md index 54d1b78..b03f860 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__repo.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__repo.md @@ -1,14 +1,14 @@ Title: Repository | Botkube -URL Source: https://docs.botkube.io/plugin/repo +URL Source: https://docs.botkube.io/plugins/development/repo Markdown Content: A plugin repository is a place where you store your plugin binaries. This repository must be publicly available and supports downloading assets via HTTP(s). This document explains how to create Botkube plugin repositories by providing examples based on GitHub functionality. However, any static file server can be used, for instance: `s3`, `gcs`, etc. -This document describes how to set up such repository. If you use or plan to use GitHub you can adapt the [template repository](https://docs.botkube.io/plugin/quick-start) that has batteries included to start developing and hosting Botkube plugins right away. +This document describes how to set up such repository. If you use or plan to use GitHub you can adapt the [template repository](https://docs.botkube.io/plugins/development/quick-start) that has batteries included to start developing and hosting Botkube plugins right away. -Index file ----------- +Index file[​](#index-file "Direct link to Index file") +------------------------------------------------------ Your plugin repository must contain at least one index file and one plugin binary. Depending on your needs and preferences, you can create one or more index files to categorize your plugins. You can host both the executor and source plugins in a single repository. You can also include them in the same index file. @@ -18,8 +18,7 @@ In the index file, provide an entry for every plugin from your plugin repository It is not required to host a plugin or dependency binary on the same server as the index file. -Generate index file[​](#generate-index-file "Direct link to Generate index file") ---------------------------------------------------------------------------------- +### Generate index file[​](#generate-index-file "Direct link to Generate index file") You can create the index file by yourself our use our tool to generate it automatically based on the directory with plugins binaries. The binaries must be named according to the following pattern: @@ -30,11 +29,11 @@ You can create the index file by yourself our use our tool to generate it automa 1. In your plugin repository, add `tools.go`: - cat << EOF > tools.go//go:build toolspackage toolsimport ( _ "github.com/kubeshop/botkube/hack")EOF + cat << EOF > tools.go//go:build toolspackage toolsimport ( _ "github.com/kubeshop/botkube/hack")EOF 2. Refresh dependencies: -3. Build all your plugins. See [**Build plugin binaries**](https://docs.botkube.io/plugin/custom-executor). +3. Build all your plugins. See [**Build plugin binaries**](https://docs.botkube.io/plugins/development/custom-executor). 4. Generate an index file: @@ -42,16 +41,15 @@ You can create the index file by yourself our use our tool to generate it automa info - Replace the `-url-base-path` flag with the base path of your HTTP server. See [**Hosting plugins**](#host-plugins) for some examples. + Replace the `-url-base-path` flag with the base path of your HTTP server. See [Hosting plugins](#host-plugins) for some examples. -Host plugins ------------- +Host plugins[​](#host-plugins "Direct link to Host plugins") +------------------------------------------------------------ This section describes example ways for serving Botkube plugins. -GitHub releases[​](#github-releases "Direct link to GitHub releases") ---------------------------------------------------------------------- +### GitHub releases[​](#github-releases "Direct link to GitHub releases") A GitHub release allows you to upload additional assets that are later accessible with a predictable URL. When you generate the index file, specify the `-url-base-path` flag as `https://github.com/{owner}/{repo}/releases/download/{release_tag}`, for example, `https://github.com/kubeshop/botkube/releases/download/v1.0.0`. @@ -59,12 +57,11 @@ Once the plugin binaries are built and the index file is generated, you can crea gh release create v1.0.0 \ ./dist/source_* \ ./dist/executor_* \ ./plugins-index.yaml -### Automation[​](#automation "Direct link to Automation") +#### Automation[​](#automation "Direct link to Automation") You can use [GitHub Actions](https://docs.github.com/en/actions) to publish Botkube plugins automatically each time a new tag is pushed. See the [`release` workflow](https://github.com/kubeshop/botkube-plugins-template/blob/main/.github/workflows/release.yml) on the `botkube-plugins-template` repository for the out-of-the-box solution, which you can use and modify if needed. -GitHub pages[​](#github-pages "Direct link to GitHub pages") ------------------------------------------------------------- +### GitHub pages[​](#github-pages "Direct link to GitHub pages") GitHub allows you to serve static pages via GitHub Pages. When you generate the index file, specify the `-url-base-path` flag as `https://{user}.github.io/{repository}`, for example, `https://kubeshop.github.io/botkube-plugins`. @@ -100,12 +97,11 @@ GitHub allows you to serve static pages via GitHub Pages. When you generate the In such setup, you can use your default branch to store your plugins code, and the `gh-pages` branch as a plugin repository. -### Automation[​](#automation-1 "Direct link to Automation") +#### Automation[​](#automation-1 "Direct link to Automation") You can use [GitHub Actions](https://docs.github.com/en/actions) to publish Botkube plugins automatically each time a new tag is pushed. See the [`pages-release` workflow](https://github.com/kubeshop/botkube-plugins-template/blob/main/.github/workflows/pages-release.yml) on the `botkube-plugins-template` repository for the out-of-the-box solution, which you can use and modify if needed. -Use hosted plugins[​](#use-hosted-plugins "Direct link to Use hosted plugins") ------------------------------------------------------------------------------- +### Use hosted plugins[​](#use-hosted-plugins "Direct link to Use hosted plugins") To use the plugins that you published, add your repository under `plugins` in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file for a given Botkube deployment. For example: diff --git a/hack/assistant-setup/content/docs.botkube.io__plugin__troubleshooting.md.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__troubleshooting.md similarity index 89% rename from hack/assistant-setup/content/docs.botkube.io__plugin__troubleshooting.md.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__development__troubleshooting.md index c16e171..e61612c 100644 --- a/hack/assistant-setup/content/docs.botkube.io__plugin__troubleshooting.md.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__troubleshooting.md @@ -1,11 +1,9 @@ Title: Troubleshooting | Botkube -URL Source: https://docs.botkube.io/plugin/troubleshooting.md +URL Source: https://docs.botkube.io/plugins/development/troubleshooting Markdown Content: -Version: 1.10 - -This document describes how to identify and resolve issues that might occur. +This document describes how to identify and resolve issues that might occur during plugin development. ### Missing source events[​](#missing-source-events "Direct link to Missing source events") @@ -15,7 +13,7 @@ You don't get event message on a given communication platform even though the ev **Debugging steps** -* [Enable debugging mode for a given plugin](https://docs.botkube.io/plugin/debugging). Once enabled, check the Botkube logs. You can filter them by your plugin name. You should see information about downloading and starting your source. For example: +* [Enable debugging mode for a given plugin](https://docs.botkube.io/plugins/development/debugging). Once enabled, check the Botkube logs. You can filter them by your plugin name. You should see information about downloading and starting your source. For example: INFO[2023-01-09T21:21:24+01:00] Starting Plugin Manager for all enabled plugins component="Plugin Manager" enabledSources=botkube/cm-watcherINFO[2023-01-09T21:21:24+01:00] Downloading plugin. binPath=/tmp/plugins/botkube/source_v0.13.0_cm-watcher component="Plugin Manager" url="http://host.k3d.internal:3000/static/source_cm-watcher_darwin_amd64"INFO[2023-01-09T21:21:24+01:00] source plugin registered successfully. binPath=/tmp/plugins/botkube/source_v0.13.0_cm-watcher component="Plugin Manager" plugin=botkube/cm-watcher version=v0.13.0INFO[2023-01-09T21:21:25+01:00] Start source streaming... pluginName=botkube/cm-watcher sources="[plugin-based]" @@ -37,7 +35,7 @@ You run a given executor command in a chat window, but you don't get any respons **Debugging steps** -* [Enable debugging mode for a given plugin](https://docs.botkube.io/plugin/debugging). Once enabled, run a given executor command once again, and check the Botkube logs. You can filter them by your plugin name. You should see information about downloading and registering your executor. For example: +* [Enable debugging mode for a given plugin](https://docs.botkube.io/plugins/development/debugging). Once enabled, run a given executor command once again, and check the Botkube logs. You can filter them by your plugin name. You should see information about downloading and registering your executor. For example: INFO[2023-01-09T21:21:24+01:00] Starting Plugin Manager for all enabled plugins component="Plugin Manager" enabledExecutors=botkube/echoINFO[2023-01-09T21:21:24+01:00] Downloading plugin. binPath=/tmp/plugins/botkube/executor_v0.13.0_echo component="Plugin Manager" url="http://host.k3d.internal:3000/static/executor_echo_darwin_amd64"INFO[2023-01-09T21:21:24+01:00] executor plugin registered successfully. binPath=/tmp/plugins/botkube/executor_v0.13.0_echo component="Plugin Manager" plugin=botkube/echo version=v0.13.0 @@ -61,7 +59,7 @@ In Botkube logs, you see an error similar to: **Solution** -It means that your plugin exited once it was started by Botkube [plugin manager](https://docs.botkube.io/architecture/#plugin-manager). To start your plugin again, you need to restart the Botkube core process, as crashed plugins aren't restarted automatically. This issue is tracked in [botkube#878](https://github.com/kubeshop/botkube/issues/878). You need to make sure that our plugin doesn't exit once it's started. You should return each error on Botkube plugin interface, instead of crashing your application. To see your plugin standard output [set the `debug` for a given plugin](https://docs.botkube.io/plugin/debugging). +It means that your plugin exited once it was started by Botkube [plugin manager](https://docs.botkube.io/architecture/#plugin-manager). To start your plugin again, you need to restart the Botkube core process, as crashed plugins aren't restarted automatically. This issue is tracked in [botkube#878](https://github.com/kubeshop/botkube/issues/878). You need to make sure that our plugin doesn't exit once it's started. You should return each error on Botkube plugin interface, instead of crashing your application. To see your plugin standard output [set the `debug` for a given plugin](https://docs.botkube.io/plugins/development/debugging). ### Plugin not found error[​](#plugin-not-found-error "Direct link to Plugin not found error") diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__development__using-kubeconfig.md b/hack/assistant-setup/content/docs.botkube.io__plugins__development__using-kubeconfig.md new file mode 100644 index 0000000..48cfbb7 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__development__using-kubeconfig.md @@ -0,0 +1,12 @@ +Title: Using kubeconfig | Botkube + +URL Source: https://docs.botkube.io/plugins/development/using-kubeconfig + +Markdown Content: +You can request Botkube to generate and pass kubeconfig file to your plugin by adding RBAC section to your plugin configuration. The following example requests a kubeconfig that impersonates user **User.rbac.authorization.k8s.io** `read-only-user`. For more information refer to the [RBAC section](https://docs.botkube.io/features/rbac). The example is for executor plugins, source plugins can access kubeconfig in their `Stream()` function in `source.StreamInput`. + +The kubeconfig is available in `executor.ExecuteInput` as a slice of bytes. There are two options to instantiate a Kubernetes Go client with this config. + + import ( "context" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/kubernetes" "github.com/kubeshop/botkube/pkg/api/executor" "github.com/kubeshop/botkube/pkg/pluginx")func (ReaderExecutor) Execute(_ context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { config, err := clientcmd.RESTConfigFromKubeConfig(in.Context.KubeConfig) if err != nil { return executor.ExecuteOutput{}, err } clientset, err := kubernetes.NewForConfig(config) if err != nil { return executor.ExecuteOutput{}, err } ...} + + import ( "context" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/kubernetes" "github.com/kubeshop/botkube/pkg/api/executor" "github.com/kubeshop/botkube/pkg/pluginx")func (ReaderExecutor) Execute(ctx context.Context, in executor.ExecuteInput) (executor.ExecuteOutput, error) { kubeConfigPath, deleteFn, err := pluginx.PersistKubeConfig(ctx, in.Context.KubeConfig) if err != nil { return executor.ExecuteOutput{}, fmt.Errorf("while writing kubeconfig file: %w", err) } defer func() { if deleteErr := deleteFn(ctx); deleteErr != nil { fmt.Fprintf(os.Stderr, "failed to delete kubeconfig file %s: %v", kubeConfigPath, deleteErr) } }() config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath) if err != nil { return executor.ExecuteOutput{}, err } clientset, err := kubernetes.NewForConfig(config) if err != nil { return executor.ExecuteOutput{}, err } ...} diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__executor__exec.md b/hack/assistant-setup/content/docs.botkube.io__plugins__exec.md similarity index 56% rename from hack/assistant-setup/content/docs.botkube.io__usage__executor__exec.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__exec.md index 90c84e9..16daa8f 100644 --- a/hack/assistant-setup/content/docs.botkube.io__usage__executor__exec.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__exec.md @@ -1,15 +1,11 @@ Title: Exec | Botkube -URL Source: https://docs.botkube.io/usage/executor/exec +URL Source: https://docs.botkube.io/plugins/exec Markdown Content: info -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). +**This plugin is hosted by the [Botkube Cloud](https://app.botkube.io/) plugin repository and requires active Botkube Cloud account.** The `exec` executor plugin allows you to install and run CLI applications directly from chat (e.g., Slack, Microsoft Teams, Discord, or Mattermost) without any hassle. @@ -19,48 +15,71 @@ It supports interactivity in the form of buttons and dropdowns. You can easily u note -To shorten the command, the `x` alias is used in all examples. Make sure you have it configured for your Botkube installation according to [Alias configuration](https://docs.botkube.io/configuration/alias) document. +To shorten the command, the `x` alias is used in all examples. Make sure you have it configured for your Botkube installation according to [Alias configuration](https://docs.botkube.io/features/executing-commands#command-aliases) section. In this context, the `x` stands for `extension` or `execution`. -Usage ------ - -Install CLI[​](#install-cli "Direct link to Install CLI") +Get started[​](#get-started "Direct link to Get started") --------------------------------------------------------- +By default, the read-only `KUBECONFIG` is assigned. For enabling commands that require create, update or delete rules, you need to create specific (Cluster)Role and (Cluster)RoleBinding and reference it from plugin's RBAC configuration. To learn more refer to the [RBAC section](https://docs.botkube.io/features/rbac). + +Enable the plugin[​](#enable-the-plugin "Direct link to Enable the plugin") +--------------------------------------------------------------------------- + +You can enable the plugin as a part of Botkube instance configuration. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. +3. Navigate to the platform tab which you want to configure. +4. Click **Add plugin** button. +5. Select the `exec` plugin. +6. Click **Save** button. + +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +### 1\. Install CLI[​](#1-install-cli "Direct link to 1. Install CLI") + To install a given CLI binary directly from a chat window, run: @Botkube x install {source} For downloading binaries, the `eget` library is used. It supports multiple URL formats and is able to unpack archives and extract binaries from them. For more details, see the documentation on the [`eget`](https://github.com/zyedidia/eget) GitHub repository. -### Examples[​](#examples "Direct link to Examples") +#### Examples[​](#examples "Direct link to Examples") * `@Botkube x install https://get.helm.sh/helm-v3.10.3-linux-amd64.tar.gz --file helm` * `@Botkube x install github.com/fluxcd/flux2` * `@Botkube x install https://github.com/rikatz/kubepug --asset kubepug_darwin_amd64.tar.gz` -Execute CLI[​](#execute-cli "Direct link to Execute CLI") ---------------------------------------------------------- +### 2\. Execute CLI[​](#2-execute-cli "Direct link to 2. Execute CLI") To execute a CLI command, run: -### Examples[​](#examples-1 "Direct link to Examples") +#### Examples[​](#examples-1 "Direct link to Examples") * `@Botkube x run helm list -A` * `@Botkube x run flux get sources git` tip -For convenience, you can configure a Botkube alias to simplify running `flux` commands, according to the [Alias configuration](https://docs.botkube.io/configuration/alias) document. Later, you can simply type `@Botkube flux get sources git`. +For convenience, you can configure a Botkube alias to simplify running `flux` commands, according to the [Alias configuration](https://docs.botkube.io/features/executing-commands#command-aliases) document. Later, you can simply type `@Botkube flux get sources git`. + +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +### Basic Syntax[​](#basic-syntax "Direct link to Basic Syntax") + +This plugin supports the following configuration: + + # An array of templates that define how to convert the command output into an interactive message.templates: # Link to templates source # It uses the go-getter library, which supports multiple URL formats (such as HTTP, Git repositories, or S3) and is able to unpack archives. # For more details, see the documentation at https://github.com/hashicorp/go-getter. - ref: github.com/kubeshop/botkube//cmd/executor/exec/templates?ref=release-1.11 -Templates ---------- +### Templates[​](#templates "Direct link to Templates") The `exec` plugin supports defining templates for executed commands. As a result, you can specify how to process the CLI output or define your own message response. - # An array of templates that define how to convert the command output into an interactive message.templates: - trigger: command: # Specifies the prefix of the command that triggers the template and the parser used to parse the output. # If specified, it has higher priority than the regex field. prefix: "helm list" # Specifies the regex that should match a given command # If specified, it has lower priority than the prefix field. regex: "regex: '^helm list(?:\s+(-A|-a))*\s?$'" # Specifies the message template type. type: "" # Message template depending on the selected type. message: { } + # An array of templates that define how to convert the command output into an interactive message.templates: # Link to templates source # It uses the go-getter library, which supports multiple URL formats (such as HTTP, Git repositories, or S3) and is able to unpack archives. # For more details, see the documentation at https://github.com/hashicorp/go-getter. - ref: github.com/kubeshop/botkube//cmd/executor/exec/templates?ref=release-1.11 - trigger: command: # Specifies the prefix of the command that triggers the template and the parser used to parse the output. # If specified, it has higher priority than the regex field. prefix: "helm list" # Specifies the regex that should match a given command # If specified, it has lower priority than the prefix field. regex: "regex: '^helm list(?:\s+(-A|-a))*\s?$'" # Specifies the message template type. type: "" # Message template depending on the selected type. message: { } Supported template types: @@ -70,18 +89,17 @@ Supported template types: Navigate to the [`exec`](https://github.com/kubeshop/botkube/tree/main/cmd/executor/x/templates) plugin directory to see official examples. -Table parser[​](#table-parser "Direct link to Table parser") ------------------------------------------------------------- +### Table parser[​](#table-parser "Direct link to Table parser") The `parser:table:space` template knows how to convert space-separated tables into an interactive message. This allows you to select a single item from a dropdown and perform additional actions in the context of the selected item without typing anything. For example, such a table: - NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONpsql default 1 2023-04-27 19:30:48.042056 +0200 CEST deployed postgresql-12.2.7 15.2.0traefik kube-system 1 2023-04-19 20:58:57.709052559 +0000 UTC deployed traefik-10.19.300 2.6.2traefik-crd kube-system 1 2023-04-19 20:58:56.564578223 +0000 UTC deployed traefik-crd-10.19.300 + NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONpsql default 1 2023-04-27 19:30:48.042056 +0200 CEST deployed postgresql-12.2.7 15.2.0traefik kube-system 1 2023-04-19 20:58:57.709052559 +0000 UTC deployed traefik-10.19.300 2.6.2traefik-crd kube-system 1 2023-04-19 20:58:56.564578223 +0000 UTC deployed traefik-crd-10.19.300 is displayed as: -![Image 2](https://docs.botkube.io/assets/images/parsed-space-table-06a88b31df0278fe1d0add0a533cad39.png) +![Image 2: parsed space table](https://docs.botkube.io/assets/images/parsed-space-table-06a88b31df0278fe1d0add0a533cad39.png) The table output is parsed with the following rules: @@ -95,31 +113,29 @@ The table output is parsed with the following rules: By default, the first row is selected and displayed in the message. The `actions` and `preview` properties are rendered in the context of the selected row. -### Syntax[​](#syntax "Direct link to Syntax") +#### Syntax[​](#syntax "Direct link to Syntax") Here is an example syntax that converts the `helm list -A` command into an interactive message: type: "parser:table:space"message: # Creates a dropdown menu with a given name, where the items are generated using the `keyTpl` parameter. selects: - name: "Release" keyTpl: "{{ .Namespace }}/{{ .Name }}" # Defines additional actions that can be performed in the context of the selected item. In this example, the user can view notes, values, or delete the selected release. # optional actions: notes: "helm get notes {{ .Name }} -n {{ .Namespace }}" values: "helm get values {{ .Name }} -n {{ .Namespace }}" delete: "helm delete {{ .Name }} -n {{ .Namespace }}" # Displays a preview of the selected item. Fields `Name`, `Namespace`, `Status`, and `Chart` are generated using the output of the command. It's useful to display only important context. # optional preview: | Name: {{ .Name }} Namespace: {{ .Namespace }} Status: {{ .Status }} Chart: {{ .Chart }} -Wrapper[​](#wrapper "Direct link to Wrapper") ---------------------------------------------- +### Wrapper[​](#wrapper "Direct link to Wrapper") The wrapper template allows adding extra buttons to the CLI output without modifying the output itself. It's useful to attach some pre-defined commands. -### Syntax[​](#syntax-1 "Direct link to Syntax") +#### Syntax[​](#syntax-1 "Direct link to Syntax") Here is an example syntax to add two predefined buttons to a given output message: type: "wrapper"message: buttons: - # Button name name: "Get Help" # URL to open on click. url: "https://example.com/help" - # Button name name: "Initialize" # Button command to run. Use `{{BotName}}` placeholder for commands that should be executed by Botkube command: "{{BotName}} x run flux install" # Button style, supported values: primary, danger style: "primary" -Tutorial[​](#tutorial "Direct link to Tutorial") ------------------------------------------------- +### Tutorial[​](#tutorial "Direct link to Tutorial") The tutorial template allows you to define a custom response for a given command. For example, when the trigger command is set to `trigger.comand.prefix: "quickstart helm"` and a user types `@Botkube x run quickstart helm`, the command itself is not executed. Instead, a defined tutorial message is returned. ![Image 3: quickstart](https://docs.botkube.io/assets/images/x-quickstart-86393ed0336f9822d31c6ad970d586ce.png) -### Syntax[​](#syntax-2 "Direct link to Syntax") +#### Syntax[​](#syntax-2 "Direct link to Syntax") Here is an example syntax to return tutorial with two predefined buttons: diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__flux.md b/hack/assistant-setup/content/docs.botkube.io__plugins__flux.md new file mode 100644 index 0000000..4ffa46d --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__flux.md @@ -0,0 +1,100 @@ +Title: Flux | Botkube + +URL Source: https://docs.botkube.io/plugins/flux + +Markdown Content: +info + +**This plugin is hosted by the [Botkube Cloud](https://app.botkube.io/) plugin repository and requires active Botkube Cloud account.** + +The Botkube Flux executor plugin allows you to run the [`flux`](https://fluxcd.io/) CLI commands directly within the chat window of your chosen communication platform. + +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- + +### 1\. Prepare elevated RBAC permissions[​](#1-prepare-elevated-rbac-permissions "Direct link to 1. Prepare elevated RBAC permissions") + +One of the plugin capabilities is the `flux diff` command. To use it, you need to update the Flux plugin RBAC configuration. This is necessary because the command performs a server-side dry run that requires patch permissions, as specified in the [Kubernetes documentation](https://kubernetes.io/docs/reference/using-api/api-concepts/#dry-run-authorization). + +First, create RBAC resources on your cluster: + + cat > /tmp/flux-rbac.yaml << ENDOFFILE---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: name: fluxrules: - apiGroups: ["*"] resources: ["*"] verbs: ["get", "watch", "list", "patch"]---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: fluxroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: fluxsubjects:- kind: Group name: flux apiGroup: rbac.authorization.k8s.ioENDOFFILEkubectl apply -f /tmp/flux-rbac.yaml + +Next, use the `flux` group in the plugin RBAC configuration: + +![Image 1: Flux RBAC](https://docs.botkube.io/assets/images/flux-rbac-bfe6d7c972bcfd611669afd75a3bab20.png) + +### 2\. Enable the plugin[​](#2-enable-the-plugin "Direct link to 2. Enable the plugin") + +You can enable the plugin as a part of Botkube instance configuration. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. + +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. + +3. Navigate to the platform tab which you want to configure. + +4. Click **Add plugin** button. + +5. Select the Flux plugin. + +6. Click **Configure** button and then **Configuration as Code** tab. + +7. Configure optional GitHub access token. + + The Flux plugin comes with integrated GitHub support. To enable it, you'll need a valid [GitHub token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token). Set the token with the following configuration: + + github: auth: accessToken: "" # your GitHub access token + +8. Click **Save** button. + + +By default, the Flux plugin has read-only access. To perform actions like creating or deleting Flux-related sources, you'll need to customize the [RBAC](https://docs.botkube.io/features/rbac). + +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +To execute the `flux` CLI commands, send a message in the channel where Botkube is present. For example: + +### Interactive Usage[​](#interactive-usage "Direct link to Interactive Usage") + +The Flux plugin supports interactivity (tables, etc.) to simplify running Flux CLI commands e.g. from mobile devices. + +![Image 2: flux-interactivity](https://docs.botkube.io/assets/images/flux-interactivity-36eaec2696dd56fe8924ef36f42a7ac1.gif) + +### Simplified Kustomization Diffing Flow[​](#simplified-kustomization-diffing-flow "Direct link to Simplified Kustomization Diffing Flow") + +With the Botkube Flux executor, you can execute a single command to perform a diff between a specific pull request and the cluster state. For instance: + + @Botkube flux diff kustomization podinfo --path ./kustomize --github-ref [PR Number| URL | Branch] + +![Image 3: flux-diff](https://docs.botkube.io/assets/images/flux-diff-abdd97d5a1b5dd3b64ecf2c1712fa14d.gif) + +This command automates several tasks: + +* Automatically discovering the associated GitHub repository for the given kustomization. +* Cloning the repository. +* Checking out a given pull request. +* Comparing pull request changes with the current cluster state. +* Sharing the diff report. + +The diff results are posted on the Slack channel, making it easy for team members to review and discuss the changes. Additionally, the returned message provides additional contextual actions: + +* Posting the diff report as a GitHub comment on the corresponding pull request. +* Approving the pull request. +* Viewing the pull request. + +### GitHub automation[​](#github-automation "Direct link to GitHub automation") + +To enhance your workflow's efficiency, you can use the [GitHub Events](https://docs.botkube.io/plugins/github-events) source for automatic notification of pull request events, complete with an integrated `flux diff` button. + + github: auth: accessToken: "ghp_" # GitHub PATrepositories: - name: { owner }/{name} on: pullRequests: - types: [ "open" ] paths: # Patterns for included file changes in pull requests. include: [ 'kustomize/.*' ] notificationTemplate: extraButtons: - displayName: "Flux Diff" commandTpl: "flux diff ks podinfo --path ./kustomize --github-ref {{ .HTMLURL }} " + +Don't forget to bind the plugin to one of the channels. + +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +The plugin supports the following configuration: + + github: auth: # GitHub access token. # Instructions for token creation: https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token. # Lack of token may limit functionality, e.g., adding comments to pull requests or approving them. accessToken: ""log: level: "info" diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__source__github-events.md b/hack/assistant-setup/content/docs.botkube.io__plugins__github-events.md similarity index 85% rename from hack/assistant-setup/content/docs.botkube.io__configuration__source__github-events.md rename to hack/assistant-setup/content/docs.botkube.io__plugins__github-events.md index 313d7c9..d8fad09 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__source__github-events.md +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__github-events.md @@ -1,22 +1,18 @@ Title: GitHub Events | Botkube -URL Source: https://docs.botkube.io/configuration/source/github-events +URL Source: https://docs.botkube.io/plugins/github-events Markdown Content: info -**This plugin is available as a part of the Botkube Cloud offering.** +**This plugin is hosted by the [Botkube Cloud](https://app.botkube.io/) plugin repository and requires active Botkube Cloud account.** -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. +The GitHub Events source sends events for configured GitHub repositories. These events can be sent to communication channels or actions. -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- -The GitHub Events source sends events for configured GitHub repositories. These events can be sent to communication channels or actions. To learn how to bind sources to communication channels or actions, refer to the [Communication](https://docs.botkube.io/configuration/communication/) and [Action](https://docs.botkube.io/configuration/action) documents. - -The GitHub Events plugin is hosted by the Botkube Cloud plugin repository and requires active Botkube Cloud account. - -Enabling plugin[​](#enabling-plugin "Direct link to Enabling plugin") ---------------------------------------------------------------------- +### Enable the plugin[​](#enable-the-plugin "Direct link to Enable the plugin") You can enable the plugin as a part of Botkube instance configuration. @@ -27,20 +23,24 @@ You can enable the plugin as a part of Botkube instance configuration. 5. Select the GitHub Events plugin. 6. Click **Save** button. -Configuration Syntax[​](#configuration-syntax "Direct link to Configuration Syntax") ------------------------------------------------------------------------------------- +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +### Syntax[​](#syntax "Direct link to Syntax") This plugin supports the following configuration: # Logger configuration settings.log: level: info format: json# GitHub client configuration settings.github: # Auth allows you to set either PAT or APP credentials. # If none provided then watch functionality could not work properly, e.g. you can reach the API calls quota or if you are setting GitHub Enterprise base URL then an unauthorized error can occur. auth: # The GitHub access token. # Instruction for creating a token can be found here: https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token. accessToken: your-github-token # AppConfig represents the GitHub App configuration. # This replaces the AccessToken. app: # GitHub App ID for authentication. id: "" # GitHub App Installation ID. installationId: "" # GitHub App private key in PEM format. privateKey: "" # The GitHub base URL for API requests. Defaults to the public GitHub API, but can be set to a domain endpoint to use with GitHub Enterprise. # Default: https://api.github.com/ baseUrl: "" # The GitHub upload URL for uploading files. It is taken into account only when the BaseURL is also set. If only the BaseURL is provided then this parameter defaults to the BaseURL value. # Default: https://uploads.github.com/ uploadUrl: ""# refreshDuration defines how often we should call GitHub REST API to check repository events.# It's the same for all configured repositories. For example, if you configure 5s refresh time, and you have 3 repositories registered,# we will execute maximum 2160 calls which easily fits into PAT rate limits.# You can create multiple plugins configuration with dedicated tokens to have the rate limits increased.## NOTE:# - we use conditional requests (https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#conditional-requests), so if there are no events the call doesn't count against your rate limits.\# - if you configure file pattern matcher for merged pull request events we execute one more additional call to check which files were changed in the context of a given pull request## Rate limiting: https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#rate-limitingrefreshDuration: 10srepositories: - name: owner/repo1 on: pullRequests: - types: [open, merged] # Allowed pull request types (open, closed, merged). paths: # Included file patterns for pull request changes. include: ["kustomize/.*"] # Excluded file patterns for pull request changes. # exclude: [ '.*\.js' ] labels: # Included labels for pull requests. include: ["bug"] # Excluded labels for pull requests. # exclude: [ 'enhancement' ] notificationTemplate: extraButtons: - displayName: "Flux Diff" commandTpl: "flux diff ks podinfo --path ./kustomize --github-ref {{ .HTMLURL }} " - name: owner/repo2 on: # EventsAPI watches for /events API containing events triggered by activity on GitHub. # This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h. # source: https://docs.github.com/en/rest/activity/events?apiVersion=2022-11-28#list-repository-events events: # WatchEvent for now emitted only when someone stars a repository. # https://docs.github.com/en/webhooks-and-events/events/github-event-types#watchevent - type: "WatchEvent" # IssuesEvent with json path filter - type: "IssuesEvent" # The JSONPath expression to filter events jsonPath: ".action" # The value to match in the JSONPath result value: "opened" notificationTemplate: previewTpl: |- Issue Opened #{{ .Issue.Number }} {{ .Issue.Title }} State: {{ .Issue.State }} extraButtons: - displayName: Open url: "{{ .Issue.HTMLURL }}" style: primary +### Authentication[​](#authentication "Direct link to Authentication") + You can use either a [personal access token](#github-personal-access-token) or a [GitHub App](#github-app) for authentication. By using GitHub Apps, you can increase your maximum rate limits because multiple GitHub Apps are independent and do not share the rate limits. However, using multiple Personal Access Tokens (PATs) for the same account will result in sharing the same rate limit. -### GitHub personal access token[​](#github-personal-access-token "Direct link to GitHub personal access token") +#### GitHub personal access token[​](#github-personal-access-token "Direct link to GitHub personal access token") Follow the instructions [here](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/#creating-a-token) to create a token. The required scope differs for public and private repositories. -### GitHub App[​](#github-app "Direct link to GitHub App") +#### GitHub App[​](#github-app "Direct link to GitHub App") To use a GitHub App: @@ -59,8 +59,7 @@ To use a GitHub App: | GitHub App Installation ID | Found in the URL your organization's app install page (Organization settings -> Github Apps -> Configure button on your app). It's the last number in the URL, ex: `https://github.com/organizations/{my-org}/settings/installations/1234567890`. | -Subscriptions[​](#subscriptions "Direct link to Subscriptions") ---------------------------------------------------------------- +### Subscriptions[​](#subscriptions "Direct link to Subscriptions") The GitHub Events source plugin uses polling instead of Webhook endpoint for retrieving GitHub events. It calls two types of GitHub REST API endpoints with a configured refresh time window: @@ -69,12 +68,10 @@ The GitHub Events source plugin uses polling instead of Webhook endpoint for ret By default, we use [conditional requests](https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#conditional-requests) to prevent excessive API calls. As a result, from `on.pullRequests` triggers may have up to a 60-second delay due to caching. -### Pull requests[​](#pull-requests "Direct link to Pull requests") +#### Pull requests[​](#pull-requests "Direct link to Pull requests") For a configured `refreshDuration` we call the [`/repos/{owner}/{repo}/pulls`](https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#list-pull-requests) endpoint for all registered repositories. It's configured to fetch 100 pull requests that were recently modified. We ignore all events that were already processed. -#### Matching criteria[​](#matching-criteria "Direct link to Matching criteria") - If no matching criteria are specified, all pull requests will be reported. For example: repositories: - name: owner/repo1 on: pullRequests: [] @@ -92,7 +89,7 @@ To narrow down emitted events, you can specify at least one of the available cri * `labels.exclude`: This is a list of label patterns for which the event should not be triggered. It supports [Go regular expressions](https://github.com/google/re2/wiki/Syntax). For example: `['bug']`. This exclusion criteria takes precedence over `labels.include`. -#### Templating[​](#templating "Direct link to Templating") +### Notification Template[​](#notification-template "Direct link to Notification Template") You can customize the notification template with additional buttons: @@ -110,7 +107,7 @@ This API is not built to serve real-time use cases. Depending on the time of day The Events API covers various event types. Refer to the [GitHub event types](https://docs.github.com/en/webhooks-and-events/events/github-event-types) page for more information. -#### Matching criteria[​](#matching-criteria-1 "Direct link to Matching criteria") +#### Matching criteria[​](#matching-criteria "Direct link to Matching criteria") To retrieve relevant events, you must define at least one entry within the `events` property. For instance: @@ -118,7 +115,7 @@ To retrieve relevant events, you must define at least one entry within the `even If you provide an empty list `events: []`, no events will be emitted. For more precise filtering of events, you can optionally use JSONPath along with the event type to filter based on specific criteria within the event payload. -#### Templating[​](#templating-1 "Direct link to Templating") +#### Templating[​](#templating "Direct link to Templating") The available fields for templating differ based on the event type. Refer to the [google/go-github](https://github.com/google/go-github/tree/899235e0a9d750d6fecf9048a676046d50f9d4a3/github) repository for dedicated event types. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__helm.md b/hack/assistant-setup/content/docs.botkube.io__plugins__helm.md new file mode 100644 index 0000000..0f5b32d --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__helm.md @@ -0,0 +1,81 @@ +Title: Helm | Botkube + +URL Source: https://docs.botkube.io/plugins/helm + +Markdown Content: +info + +**This plugin is hosted by the [Botkube Cloud](https://app.botkube.io/) plugin repository and requires active Botkube Cloud account.** + +The Helm executor plugin allows you to run the `helm` command directly in the chat platform. + +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- + +By default, just the read-only `helm` commands are supported. For enabling commands that require create, update or delete rules, you need to create specific (Cluster)Role and (Cluster)RoleBinding and reference it in the RBAC configuration. To learn more, refer to the [RBAC section](https://docs.botkube.io/features/rbac). + +### Enable the plugin[​](#enable-the-plugin "Direct link to Enable the plugin") + +You can enable the plugin as a part of Botkube instance configuration. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. +3. Navigate to the platform tab which you want to configure. +4. Click **Add plugin** button. +5. Select the Helm plugin. +6. Click **Save** button. + +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +To execute `helm` commands, send message in the following format in the channel where Botkube is already added: + + @Botkube helm [command] [flags] + +Supported commands[​](#supported-commands "Direct link to Supported commands") +------------------------------------------------------------------------------ + +The Helm executor plugin has the exact same syntax as the Helm CLI. However, not all commands and flags are supported. If an unsupported flag is specified, you will get a dedicated error, e.g: + + The "--wait" flag is not supported by the Botkube Helm plugin. Please remove it. + +Additionally, the following flag syntax is not supported: + +* No whitespace between short flag name and its value. Instead of `-oyaml`, use `-o yaml`. +* Merging multiple short flags together. Instead of `-Aa`, use `-A -a`. + +### Read-only commands[​](#read-only-commands "Direct link to Read-only commands") + +List of the read-only commands: + +* `@Botkube helm help` - shows the general Helm plugin help message. +* `@Botkube helm list` - lists all releases on cluster where Botkube is installed. + * The `--filter` flag is reserved by Botkube. As a result, to use the Helm filter functionality use `-f` instead, e.g. `helm list -f 'ara[a-z]+'`. +* `@Botkube helm status` - displays the status of the named release. +* `@Botkube helm version` - shows the version of the Helm CLI used by this Botkube plugin. + +### Read-write commands[​](#read-write-commands "Direct link to Read-write commands") + +For the read-write commands the Botkube RBAC needs to be adjusted. For more information, see the [Get started](#get-started) section. + +List of the read-write commands: + +* `@Botkube helm rollback` - rolls back a given release to a previous revision. +* `@Botkube helm test` - runs tests for a given release. +* `@Botkube helm uninstall` - uninstalls a given release. +* `@Botkube helm upgrade` - upgrades a given release. +* `@Botkube helm install` - installs a given chart to cluster where Botkube is installed. There are two different ways you to install a Helm chart: + * By absolute URL: `helm install mynginx https://example.com/charts/nginx-1.2.3.tgz` + * By chart reference and repository URL: `helm install --repo https://example.com/charts/ mynginx nginx` + +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +The plugin supports the following configuration: + + # Configures the default Namespace for executing Botkube `helm` commands. If not set, uses 'default'.defaultNamespace: "default"# Allowed values are configmap, secret, memory.helmDriver: "secret"# Location for storing Helm configuration.helmConfigDir: "/tmp/helm/"# Location for storing Helm cache.helmCacheDir: "/tmp/helm/.cache" + +Merging strategy[​](#merging-strategy "Direct link to Merging strategy") +------------------------------------------------------------------------ + +For all collected `helm` executors bindings, configuration properties are overridden based on the order of the binding list for a given channel. The priority is given to the last binding specified on the list. Empty properties are omitted. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__keptn.md b/hack/assistant-setup/content/docs.botkube.io__plugins__keptn.md new file mode 100644 index 0000000..a5966be --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__keptn.md @@ -0,0 +1,12 @@ +Title: Keptn | Botkube + +URL Source: https://docs.botkube.io/plugins/keptn + +Markdown Content: +The Botkube Keptn source plugin allows you to consume events from Keptn deployment and notify in configured platforms. + +You can enable the plugin as a part of Botkube instance configuration. + +Once it is enabled, Botkube Keptn plugin will consume Keptn events and send them to configured platforms as shown below. + + # Keptn API Gateway URL.url: "http://api-gateway-nginx.keptn.svc.cluster.local/api"# Keptn API Token to access events through API Gateway.token: ""# Optional Keptn project.project: ""# Optional Keptn Service name under the project.service: ""# Logging configurationlog: # Log level level: info diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__kubectl.md b/hack/assistant-setup/content/docs.botkube.io__plugins__kubectl.md new file mode 100644 index 0000000..dac5b65 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__kubectl.md @@ -0,0 +1,103 @@ +Title: Kubectl | Botkube + +URL Source: https://docs.botkube.io/plugins/kubectl + +Markdown Content: +The Kubectl executor plugin allows you to run the `kubectl` command directly in the communication platform. + +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- + +By default, just the read-only `kubectl` commands are supported. For enabling commands that require create, update or delete rules, you need to create specific (Cluster)Role and (Cluster)RoleBinding and reference it in the RBAC configuration. To learn more, refer to the [RBAC section](https://docs.botkube.io/features/rbac). + +### Enable the plugin[​](#enable-the-plugin "Direct link to Enable the plugin") + +#### Botkube Cloud[​](#botkube-cloud "Direct link to Botkube Cloud") + +You can enable the plugin as a part of Botkube instance configuration. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. +3. Navigate to the platform tab which you want to configure. +4. Click **Add plugin** button. +5. Select the Kubectl plugin. +6. Click **Save** button. + +#### Self-hosted Botkube installation[​](#self-hosted-botkube-installation "Direct link to Self-hosted Botkube installation") + +The Kubectl plugin is hosted by the official Botkube plugin repository. First, make sure that the `botkube` repository is defined under `plugins` in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. + + plugins: repositories: botkube: url: https://github.com/kubeshop/botkube/releases/download/v1.11.0/plugins-index.yaml + +To enable Kubectl executor, add \`\`--set 'executors.k8s-default-tools.botkube/kubectl.enabled=true' `to a given Botkube [`install\` command\](/cli/commands/botkube\_install). + +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +To execute the `kubectl` commands, send message in following format in the channel where Botkube is already added: + + @Botkube kubectl [verb] [resource] [flags] + +### Aliases[​](#aliases "Direct link to Aliases") + +By default, `k` and `kc` are configured as aliases for the `kubectl` command, for both Botkube Cloud and self-hosted Botkube installations. You can use them on par with the `kubectl` command. To read more about aliases configuration, see the [Alias](https://docs.botkube.io/features/executing-commands#command-aliases) section. + +### Interactive kubectl commands builder[​](#interactive-kubectl-commands-builder "Direct link to Interactive kubectl commands builder") + +Use the interactive `kubectl` command builder to construct a `kubectl` command just by selecting items from dropdowns. This is especially useful on mobile when typing the command is harder. + +The builder includes a resource name dropdown list. This is pre-populated with all the relevant resource names. It's great for discovering resources with the option to select them. E.g. Just grab a Pod name without needing to type or copy-and-paste. + +To start the interactive `kubectl` command builder, run `@Botkube kubectl` from the configured channel where Botkube is added. You can also use any of the [configured aliases](https://docs.botkube.io/features/executing-commands#command-aliases) - for example, the default `k` one, as illustrated below: + +![Image 1: kubectl command builder](https://docs.botkube.io/assets/images/kc-cmd-builder-90ea740becbf2c0f126436c4a6c013bd.gif) + +Limitations[​](#limitations "Direct link to Limitations") +--------------------------------------------------------- + +Keep in mind that the interactive command builder may not support all the commands that you can run just by typing them directly in a chat window. The following policies are applied: + +* Under verbs' dropdown, we display verbs that are defined under the `interactiveBuilder.allowed.verbs` configuration. + + tip + + The default verbs for the `kubectl` plugin found in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. If you ServiceAccount allow running other actions such as `delete`, you can add them directly under [`interactiveBuilder.allowed.verbs`](#configuration). + +* Under resources' dropdown, we display resources that are defined under the `interactiveBuilder.allowed.resources` configuration and are allowed for already selected verb. For example, for the `logs` verb we display only `pods`, `statefulsets`, `deployments`, and `daemonsets`. + + tip + + The default resources for the `kubectl` plugin found in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. + + If you ServiceAccount allow access to more resources, you can add them directly under [`interactiveBuilder.allowed.resources`](#configuration). + +* For resources that are namespace-scoped, under namespaces' dropdown, we display `interactiveBuilder.allowed.namespaces` if defined. If static namespaces are not specified, plugin needs to have access to fetch all Namespaces, otherwise Namespace dropdown won't be visible at all. + +* The `kubectl` command preview is displayed only if the command that you built is valid, and you have permission to run it. + + +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +This plugin supports the following configuration: + + # Configures the default Namespace for executing Botkube `kubectl` commands. If not set, uses the 'default'.defaultNamespace: "default"# Configures the interactive kubectl command builder.interactiveBuilder: allowed: # Configures which K8s namespace are displayed in namespace dropdown. # If not specified, plugin needs to have access to fetch all Namespaces, otherwise Namespace dropdown won't be visible at all. namespaces: ["default"] # Configures which `kubectl` methods are displayed in commands dropdown. verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] # Configures which K8s resource are displayed in resources dropdown. resources: ["deployments", "pods", "namespaces"] + +The default configuration for Helm chart can be found in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. + +Merging strategy[​](#merging-strategy "Direct link to Merging strategy") +------------------------------------------------------------------------ + +For all collected `kubectl` executors bindings, configuration properties are overridden based on the order of the binding list for a given channel. The priority is given to the last binding specified on the list. Empty properties are omitted. + +### Example[​](#example "Direct link to Example") + +Consider such configuration in the Botkube self-hosted installation: + + communications: "default-group": socketSlack: channels: "default": name: "random" bindings: executors: - kubectl-one - kubectl-two - kubectl-threeexecutors: "kubectl-one": kubectl: enabled: true config: defaultNamespace: "default" interactiveBuilder: allowed: verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] resources: ["deployments", "pods", "namespaces"] "kubectl-two": kubectl: enabled: true config: interactiveBuilder: allowed: namespaces: ["default"] verbs: ["api-resources", "top"] "kubectl-three": kubectl: enabled: false config: interactiveBuilder: allowed: namespaces: ["kube-system"] + +We can see that: + +* Only the `default` namespace is displayed in the interactive command builder. This is a result of merging `kubectl-one` and `kubectl-two`. The `kubectl-three` binding is not taken into account as it's disabled. +* Only the `api-resources` and `top` verbs are displayed in the interactive command builder as they are overridden by the `kubectl-two`. +* All resources defined in `kubectl-one` are displayed in the interactive command builder as other enabled bindings don't override this property. diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__kubernetes.md b/hack/assistant-setup/content/docs.botkube.io__plugins__kubernetes.md new file mode 100644 index 0000000..df2b074 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__kubernetes.md @@ -0,0 +1,205 @@ +Title: Kubernetes | Botkube + +URL Source: https://docs.botkube.io/plugins/kubernetes + +Markdown Content: +The Kubernetes source plugin produces events for configured Kubernetes resources. These events can be sent to communication channels or actions. + +Get started[​](#get-started "Direct link to Get started") +--------------------------------------------------------- + +### Enable the plugin[​](#enable-the-plugin "Direct link to Enable the plugin") + +#### Botkube Cloud[​](#botkube-cloud "Direct link to Botkube Cloud") + +You can enable the plugin as a part of Botkube instance configuration. + +1. If you don't have an existing Botkube instance, create a new one, according to the [Installation](https://docs.botkube.io/) docs. +2. From the [Botkube Cloud homepage](https://app.botkube.io/), click on a card of a given Botkube instance. +3. Navigate to the platform tab which you want to configure. +4. Click **Add plugin** button. +5. Select the Kubernetes plugin. +6. Configure the plugin according to the [Configuration](#configuration) section. 7Click **Save** button. + +#### Self-hosted Botkube installation[​](#self-hosted-botkube-installation "Direct link to Self-hosted Botkube installation") + +The Kubernetes plugin is hosted by the official Botkube plugin repository. First, make sure that the `botkube` repository is defined under `plugins` in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. + + plugins: repositories: botkube: url: https://github.com/kubeshop/botkube/releases/download/v1.11.0/plugins-index.yaml + +To enable Kubernetes source, add `--set 'sources.{configuration-name}.botkube/kubernetes.enabled=true'` to a given Botkube [`install` command](https://docs.botkube.io/cli/commands/botkube_install). + +Usage[​](#usage "Direct link to Usage") +--------------------------------------- + +Once the plugin is enabled, the Kubernetes plugin starts consuming Kubernetes events and send them to configured platforms. + +Configuration[​](#configuration "Direct link to Configuration") +--------------------------------------------------------------- + +### Event and resource constraints[​](#event-and-resource-constraints "Direct link to Event and resource constraints") + +Define constraints for Kubernetes events to narrow down the events you want to receive. + +You can define both global constraints, that are applied to all resources within a given source, and also resource-specific constraints, which override global constraints. See the [Syntax](#syntax) paragraph for more details. + +There are multiple types of constraints. Each constraint type is described in the following sections. + +#### Namespaces[​](#namespaces "Direct link to Namespaces") + +Include and/or exclude namespaces to watch. You can use exact values or regex expressions to specify namespaces. + +Exclude takes precedence over include. If a given namespace is excluded, it will be ignored, even if it included. + +**Examples** + +To watch all namespaces except those with `testing-` prefix, use the following constraint: + + namespaces: include: - ".*" # include all... exclude: - "testing-.*" # ...except any namespace that has `testing-` prefix + +To watch only `dev` and `prod` namespaces, use the following constraint: + + namespaces: include: - "dev" - "prod" exclude: [] + +#### Labels[​](#labels "Direct link to Labels") + +Specify exact match for resource labels. The watched resources must have all the specified labels. + +**Example** + + labels: # Match only the resources that have all the specified labels app: "my-app" environment: "production" + +#### Annotations[​](#annotations "Direct link to Annotations") + +Specify exact match for resource annotations. The watched resources must have all the specified annotations. + +**Example** + + annotations: # Match only the resources that have all the specified annotations. app: "my-app" my-annotation: "true" + +#### Resource name[​](#resource-name "Direct link to Resource name") + +Filter events based on the resource name. If not defined, all resource names are matched. Exclude takes precedence over include. If a given resource name is excluded, it will be ignored, even if it included. + +You can use both exact values and regex expressions to specify resource names. This constraint can be set per resource only. See the [Syntax](#syntax) paragraph for more details. + +**Examples** + +To match resource names that have `testing-` prefix, use the following constraint: + + name: include: - "testing-.*" # include only resource names that have `testing-` prefix exclude: [] + +To match all resources except those that have `testing-` prefix, use the following constraint: + + name: include: - ".*" # include all resource names... exclude: - "testing-.*" # ...except those that have `testing-` prefix + +#### Event types[​](#event-types "Direct link to Event types") + +List the event types to watch. + +Possible values: + +* `create`, +* `update`, +* `delete`, +* `error`, +* `all`, which is equal to all of the above. + +**Example** + + event: types: # watch for create, delete and error events - create - delete - error + +#### Event reason[​](#event-reason "Direct link to Event reason") + +Define exact values or regex expression to match the event reason. If not defined, all events are watched. Exclude takes precedence over include. If a given event reason is excluded, it will be ignored, even if it included. + +**Examples** + +To match events with reason equal to `BackOff`, use the following constraint: + + event: reason: include: - "^BackOff$" # match events with reason equal to `BackOff` exclude: [] + +To match all events except those with reason equal to `BackOff`, use the following constraint: + + event: reason: include: - ".*" # match all event reasons... exclude: - "^BackOff$" # ...except those equal to `BackOff` + +#### Event message[​](#event-message "Direct link to Event message") + +Define regex expression to match the event message. If not defined, all event messages are matched. + +Exclude takes precedence over include. If a given event message is excluded, it will be ignored, even if it included. + +**Example** + +To match events with message starting with `Back-off`, use the following constraint: + + event: message: include: - "^Back-off.*" # match all events with message starting with `Back-off` exclude: [] + +To match all events except those with message starting with `Back-off`, use the following constraint: + + event: message: include: - ".*" # match all event messages... exclude: - "^Back-off.*" # ...except those starting with `Back-off` + +#### Recommendations[​](#recommendations "Direct link to Recommendations") + +You can configure recommendations related to Kubernetes resources. Recommendations respect [namespaces](#namespaces) constraint regex patterns. + +Currently, Kubernetes source plugin can send recommendation about 2 resources: `Pods` and `Ingresses`. + +**Example** + +In order to send recommendation for the Pods that have containers with `latest` tag or the Pods without labels, use the following configuration. + + recommendations: # Recommendations for Pod Kubernetes resource. pod: # If true, notifies about Pod containers that use `latest` tag for images. noLatestImageTag: true # If true, notifies about Pod resources created without labels. labelsSet: true + +If you want to receive recommendations for Ingress that contains invalid backend service definition or TLS secret, use the following configuration. + + recommendations: # Recommendations for Ingress Kubernetes resource. ingress: # If true, notifies about Ingress resources with invalid backend service reference. backendServiceValid: true # If true, notifies about Ingress resources with invalid TLS secret reference. tlsSecretValid: true + +#### Filters[​](#filters "Direct link to Filters") + +The filter configuration allows you to configure filters which are used for all processed Kubernetes events. + + # Filter settings for various sources.# Currently, all filters are globally enabled or disabled.# You can enable or disable filters with `@Botkube filters` commands.filters: kubernetes: # If true, enables support for `botkube.io/disable` resource annotations. objectAnnotationChecker: true # If true, filters out Node-related events that are not important. nodeEventsChecker: true + +### Syntax[​](#syntax "Direct link to Syntax") + +This plugin supports the following configuration: + + # Describes configuration for various recommendation insights.recommendations: # Recommendations for Pod Kubernetes resource. pod: # If true, notifies about Pod containers that use `latest` tag for images. noLatestImageTag: true # If true, notifies about Pod resources created without labels. labelsSet: true # Recommendations for Ingress Kubernetes resource. ingress: # If true, notifies about Ingress resources with invalid backend service reference. backendServiceValid: true # If true, notifies about Ingress resources with invalid TLS secret reference. tlsSecretValid: true# Filter settings for various sources.filters: # If true, enables support for `botkube.io/disable` resource annotation. objectAnnotationChecker: true # If true, filters out Node-related events that are not important. nodeEventsChecker: true# 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.namespaces: &k8s-events-namespaces # Include contains a list of allowed Namespaces. # It can also contain regex expressions: # `- ".*"` - to specify all Namespaces. include: - ".*" # Exclude contains a list of Namespaces to be ignored even if allowed by Include. # It can also contain regex expressions: # `- "test-.*"` - to specif all Namespaces with `test-` prefix. # Exclude list is checked before the Include list. # exclude: []# 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.event: # Lists all event types to be watched. types: - create - delete - error # Optional list of exact values or regex patterns to filter events by event reason. # Skipped, if both include/exclude lists are empty. reason: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: [] # 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. message: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: []# Filters Kubernetes resources to watch by annotations. Each resource needs to have all the specified annotations.# Regex expressions are not supported.annotations: {}# Filters Kubernetes resources to watch by labels. Each resource needs to have all the specified labels.# Regex expressions are not supported.labels: {}# 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.resources: - type: v1/pods # namespaces: # Overrides 'source'.kubernetes.namespaces # include: # - ".*" # exclude: [] # annotations: {} # Overrides 'source'.kubernetes.annotations # labels: {} # Overrides 'source'.kubernetes.labels # # Optional resource name constraints. # name: # # Include contains a list of allowed values. It can also contain regex expressions. # include: [] # # 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. # exclude: [] # event: # # Overrides 'source'.kubernetes.event.reason # reason: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.message # message: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.types # types: # - create - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes event: message: exclude: - ".*nf_conntrack_buckets.*" # Ignore node related noisy messages from GKE clusters - type: v1/namespaces - type: v1/persistentvolumes - type: v1/persistentvolumeclaims - type: v1/configmaps - type: rbac.authorization.k8s.io/v1/roles - type: rbac.authorization.k8s.io/v1/rolebindings - type: rbac.authorization.k8s.io/v1/clusterrolebindings - type: rbac.authorization.k8s.io/v1/clusterroles - type: apps/v1/daemonsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.numberReady - type: batch/v1/jobs event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.conditions[*].type - type: apps/v1/deployments event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.availableReplicas - type: apps/v1/statefulsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.readyReplicascommands: # Configures which verbs are available in actionable items. verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] # Configure which resources are available in actionable items. resources: - "deployments" - "pods" - "namespaces" - "daemonsets" - "statefulsets" - "storageclasses" - "nodes" - "configmaps" - "services" - "ingresses"# Define extra buttons to be displayed beside the actionable notification message.extraButtons: - enabled: false trigger: type: ["error"] button: displayName: "Describe" commandTpl: "kubectl describe {{ Kind | lower }}{{ if .Namespace }} -n {{ .Namespace }}{{ end }} {{ .Name }}"# Logger configurationlog: level: info disableColors: false + +### Examples[​](#examples "Direct link to Examples") + +This section lists all examples for Kubernetes source plugin. + +#### Recommendation events only[​](#recommendation-events-only "Direct link to Recommendation events only") + + # Describes configuration for various recommendation insights.recommendations: # Recommendations for Pod Kubernetes resource. pod: # If true, notifies about Pod containers that use `latest` tag for images. noLatestImageTag: true # If true, notifies about Pod resources created without labels. labelsSet: true # Recommendations for Ingress Kubernetes resource. ingress: # If true, notifies about Ingress resources with invalid backend service reference. backendServiceValid: true # If true, notifies about Ingress resources with invalid TLS secret reference. tlsSecretValid: true + +#### All events[​](#all-events "Direct link to All events") + + # Logging configurationlog: # Log level level: info# 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.namespaces: # Include contains a list of allowed Namespaces. # It can also contain regex expressions: # `- ".*"` - to specify all Namespaces. include: - ".*" # Exclude contains a list of Namespaces to be ignored even if allowed by Include. # It can also contain regex expressions: # `- "test-.*"` - to specif all Namespaces with `test-` prefix. # Exclude list is checked before the Include list. # exclude: []# 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.event: # Lists all event types to be watched. types: - create - delete - error # Optional list of exact values or regex patterns to filter events by event reason. # Skipped, if both include/exclude lists are empty. reason: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: [] # 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. message: # Include contains a list of allowed values. It can also contain regex expressions. include: [] # 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. exclude: []# Filters Kubernetes resources to watch by annotations. Each resource needs to have all the specified annotations.# Regex expressions are not supported.annotations: {}# Filters Kubernetes resources to watch by labels. Each resource needs to have all the specified labels.# Regex expressions are not supported.labels: {}# 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.# See the `values.yaml` file for full object.resources: - type: v1/pods # namespaces: # Overrides 'source'.kubernetes.namespaces # include: # - ".*" # exclude: [] # annotations: {} # Overrides 'source'.kubernetes.annotations # labels: {} # Overrides 'source'.kubernetes.labels # # Optional resource name constraints. # name: # # Include contains a list of allowed values. It can also contain regex expressions. # include: [] # # 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. # exclude: [] # event: # # Overrides 'source'.kubernetes.event.reason # reason: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.message # message: # include: [] # exclude: [] # # Overrides 'source'.kubernetes.event.types # types: # - create - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes - type: v1/namespaces - type: v1/persistentvolumes - type: v1/persistentvolumeclaims - type: v1/configmaps - type: rbac.authorization.k8s.io/v1/roles - type: rbac.authorization.k8s.io/v1/rolebindings - type: rbac.authorization.k8s.io/v1/clusterrolebindings - type: rbac.authorization.k8s.io/v1/clusterroles - type: apps/v1/daemonsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.numberReady - type: batch/v1/jobs event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.conditions[*].type - type: apps/v1/deployments event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.availableReplicas - type: apps/v1/statefulsets event: # Overrides 'source'.kubernetes.event types: - create - update - delete - error updateSetting: includeDiff: true fields: - spec.template.spec.containers[*].image - status.readyReplicas ## Custom resource example # - type: velero.io/v1/backups # namespaces: # include: # - ".*" # exclude: # - # event: # types: # - create # - update # - delete # - error # updateSetting: # includeDiff: true # fields: # - status.phase# List of available commands that can be used in actionable items under kubernetes events.commands: # Configures which verbs are available in actionable items. verbs: ["api-resources", "api-versions", "cluster-info", "describe", "explain", "get", "logs", "top"] # Configure which resources are available in actionable items. resources: [ "deployments", "pods", "namespaces", "daemonsets", "statefulsets", "storageclasses", "nodes", "configmaps", "services", "ingresses", ]# Filter settings for various sources.# Currently, all filters are globally enabled or disabled.# You can enable or disable filters with `@Botkube enable/disable filters` commands.filters: kubernetes: # If true, enables support for `botkube.io/disable` resource annotations. objectAnnotationChecker: true # If true, filters out Node-related events that are not important. nodeEventsChecker: true + +#### Error events[​](#error-events "Direct link to Error events") + + # 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.namespaces: # Include contains a list of allowed Namespaces. # It can also contain regex expressions: # `- ".*"` - to specify all Namespaces. include: - ".*" # Exclude contains a list of Namespaces to be ignored even if allowed by Include. # It can also contain regex expressions: # `- "test-.*"` - to specif all Namespaces with `test-` prefix. # Exclude list is checked before the Include list. # exclude: []# 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.event: # Lists all event types to be watched. types: - error# Describes the Kubernetes resources you want to watch.# See the `values.yaml` file for full object.resources: - type: v1/pods - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes - type: v1/namespaces - type: v1/persistentvolumes - type: v1/persistentvolumeclaims - type: v1/configmaps - type: rbac.authorization.k8s.io/v1/roles - type: rbac.authorization.k8s.io/v1/rolebindings - type: rbac.authorization.k8s.io/v1/clusterrolebindings - type: rbac.authorization.k8s.io/v1/clusterroles - type: apps/v1/deployments - type: apps/v1/statefulsets - type: apps/v1/daemonsets - type: batch/v1/jobs + +#### Error events for resources with logs[​](#error-events-for-resources-with-logs "Direct link to Error events for resources with logs") + +Useful together with the [logs automated action](https://docs.botkube.io/features/actions#predefined-actions). + + # 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.namespaces: # Include contains a list of allowed Namespaces. # It can also contain regex expressions: # `- ".*"` - to specify all Namespaces. include: - ".*" # Exclude contains a list of Namespaces to be ignored even if allowed by Include. # It can also contain regex expressions: # `- "test-.*"` - to specif all Namespaces with `test-` prefix. # Exclude list is checked before the Include list. # exclude: []# 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.event: # Lists all event types to be watched. types: - error# Describes the Kubernetes resources you want to watch.# See the `values.yaml` file for full object.resources: - type: v1/pods - type: apps/v1/deployments - type: apps/v1/statefulsets - type: apps/v1/daemonsets - type: batch/v1/jobs # `apps/v1/replicasets` excluded on purpose - to not show logs twice for a given higher-level resource (e.g. Deployment) + +#### Create events[​](#create-events "Direct link to Create events") + + # 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.namespaces: # Include contains a list of allowed Namespaces. # It can also contain regex expressions: # `- ".*"` - to specify all Namespaces. include: - ".*" # Exclude contains a list of Namespaces to be ignored even if allowed by Include. # It can also contain regex expressions: # `- "test-.*"` - to specif all Namespaces with `test-` prefix. # Exclude list is checked before the Include list. # exclude: []# 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.event:# Lists all event types to be watched.types: - create# Describes the Kubernetes resources you want to watch.# See the `values.yaml` file for full object.resources: - type: v1/pods - type: v1/services - type: networking.k8s.io/v1/ingresses - type: v1/nodes - type: v1/namespaces - type: v1/configmaps - type: apps/v1/deployments - type: apps/v1/statefulsets - type: apps/v1/daemonsets - type: batch/v1/jobs + +Implementation details[​](#implementation-details "Direct link to Implementation details") +------------------------------------------------------------------------------------------ + +Kubernetes source plugin uses [Kubernetes Informers](https://pkg.go.dev/k8s.io/client-go/informers) to get Kubernetes events in real-time. As the informer's synchronized data is cached in-memory and, in some cases, might take a significant amount of memory, Kubernetes plugin comes with memory usage optimization. + +During startup, the plugin loads all Kubernetes source configurations and groups them by different Kubeconfigs. For each group, the plugin creates shared informers (`SharedInformerFactory`) and starts them in parallel in goroutines. + +As there are less background processes than actual Kubernetes source configurations, the plugin takes the very first source configuration (sorted alphabetically) as the "system" one. Then, the `log` and `informerResyncPeriod` configuration properties are used for all background processes except actual event handling. + +For more details, see the [Kubernetes plugin source code](https://github.com/kubeshop/botkube/blob/main/cmd/source/kubernetes/main.go). diff --git a/hack/assistant-setup/content/docs.botkube.io__plugins__prometheus.md b/hack/assistant-setup/content/docs.botkube.io__plugins__prometheus.md new file mode 100644 index 0000000..501058e --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__plugins__prometheus.md @@ -0,0 +1,14 @@ +Title: Prometheus | Botkube + +URL Source: https://docs.botkube.io/plugins/prometheus + +Markdown Content: +The Botkube Prometheus source plugin allows you to fetch alerts from AlertManager of Prometheus deployment and notify in configured platforms. + +You can enable the plugin as a part of Botkube instance configuration. + +Once it is enabled, Botkube Prometheus plugin will consume Prometheus alerts and send them to configured platforms as shown below. + + # Prometheus endpoint without api version and resource.url: "http://localhost:9090"# If set as true, Prometheus source plugin will not send alerts that is created before plugin start time.ignoreOldAlerts: true# Only the alerts that have state provided in this config will be sent as notification. https://pkg.go.dev/github.com/prometheus/prometheus/rules#AlertStatealertStates: ["firing", "pending", "inactive"]# Logging configurationlog: # Log level level: info + +For all collected `prometheus` sources bindings, configuration properties are overridden based on the order of the binding list for a given channel. The priority is given to the last binding specified on the list. Empty properties are omitted. diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration.md b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration.md similarity index 80% rename from hack/assistant-setup/content/docs.botkube.io__configuration.md rename to hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration.md index adb479f..3615ecd 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration.md +++ b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration.md @@ -1,9 +1,19 @@ -Title: Configuration | Botkube +Title: Self-hosted Configuration | Botkube -URL Source: https://docs.botkube.io/configuration/ +URL Source: https://docs.botkube.io/self-hosted-configuration/ Markdown Content: -Botkube backend allows you to specify [source](https://docs.botkube.io/configuration/source), [executor](https://docs.botkube.io/configuration/executor), [communication](https://docs.botkube.io/configuration/communication), and [general](https://docs.botkube.io/configuration/general) Botkube settings. Check the related documents for more detailed explanation. +info + +This document is applicable only for self-hosted installations. For Botkube Cloud installations, the Botkube Agent configuration is managed via the [Botkube Cloud dashboard](https://app.botkube.io/). + +Overview[​](#overview "Direct link to Overview") +------------------------------------------------ + +Botkube self-hosted installation allows you to specify [source](https://docs.botkube.io/self-hosted-configuration/source), [executor](https://docs.botkube.io/self-hosted-configuration/executor), [communication](https://docs.botkube.io/self-hosted-configuration/communication), and [general](https://docs.botkube.io/self-hosted-configuration/general) Botkube settings as a part of YAML configuration. Check the related documents for more detailed explanation. + +Configuration source[​](#configuration-source "Direct link to Configuration source") +------------------------------------------------------------------------------------ The configuration settings are read from two sources: @@ -23,7 +33,7 @@ The configuration settings are read from two sources: Helm install options[​](#helm-install-options "Direct link to Helm install options") ------------------------------------------------------------------------------------ -Advanced Helm install options are documented [here](https://docs.botkube.io/configuration/helm-chart-parameters). +Advanced Helm install options are documented [here](https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters). Updating the configuration[​](#updating-the-configuration "Direct link to Updating the configuration") ------------------------------------------------------------------------------------------------------ @@ -31,7 +41,8 @@ Updating the configuration[​](#updating-the-configuration "Direct link to Upda To update Botkube configuration, you can either: * upgrade Botkube installation with Helm, -* or use dedicated `@Botkube` commands, to e.g. toggle notifications or edit Source Bindings. See the [Usage](https://docs.botkube.io/usage/) document for more details. +* use dedicated `@Botkube` commands, to e.g. toggle notifications or edit Source Bindings. See the [Notification-related commands](https://docs.botkube.io/features/executing-commands#notification-related-commands) for more details, +* or, [migrate to Botkube Cloud](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud) and manage configuration through the Botkube Cloud Dashboard. If you wish to change the configuration with Helm, create a `/tmp/values.yaml` file that contains the new values and run: @@ -83,7 +94,7 @@ For example, such configuration property from YAML: is mapped to the `BOTKUBE_SETTINGS_KUBECTL_DEFAULT__NAMESPACE` environment variable. -This is a useful feature that allows you to store the overall configuration in a file, where sensitive data, such as tokens, can be put in environment variables. See the [**Tokens from Vault via CSI driver**](https://docs.botkube.io/configuration/communication/vault-csi/) tutorial for an example use-case. +This is a useful feature that allows you to store the overall configuration in a file, where sensitive data, such as tokens, can be put in environment variables. See the [**Tokens from Vault via CSI driver**](https://docs.botkube.io/self-hosted-configuration/communication/vault-csi/) tutorial for an example use-case. Merging strategy[​](#merging-strategy "Direct link to Merging strategy") ------------------------------------------------------------------------ diff --git a/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__communication.md b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__communication.md new file mode 100644 index 0000000..deee35c --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__communication.md @@ -0,0 +1,62 @@ +Title: Communication | Botkube + +URL Source: https://docs.botkube.io/self-hosted-configuration/communication/ + +Markdown Content: +info + +This document is applicable only for self-hosted installations. For Botkube Cloud installations, the Botkube Agent configuration is managed via the [Botkube Cloud dashboard](https://app.botkube.io/). + +The communication settings contain: + +* Configuration for communication platforms scoped in separate communication groups, +* Platform-specific options, such as multichannel configuration for platforms that support channels. + +The settings are applicable only for self-hosted Botkube installation. Cloud Slack and Microsoft Teams platforms are exclusive to Botkube Cloud. + +Communication groups[​](#communication-groups "Direct link to Communication groups") +------------------------------------------------------------------------------------ + +Communication group is a way to aggregate separate configurations for a set of communication platforms. You can specify multiple communication groups, and, in a result, support multiple Slack or Mattermost workspaces, Discord servers, or Elasticsearch server instances. + +Also, most platforms also support another level of multiple configurations within a workspace. For example, Slack supports multichannel configuration. To learn more about platform-specific options, see the [Syntax](#syntax) section. + +note + +The purpose of the communication group is to allow using multiple workspaces, e.g. for Slack or Mattermost. To use multiple channels inside the same workspace, don't define separate communication groups, but use `channels` property under a given communication platform instead. + +### Example[​](#example "Direct link to Example") + +Consider the following configuration: + + communications: "first-group": # Your own alias of a given communication group socketSlack: enabled: true botToken: "{SLACK_BOT_TOKEN_1}" # Bot token for Botkube App for Slack installed in Workspace 1 appToken: "{SLACK_APP_TOKEN_1}" # App token for Botkube App for Slack installed in Workspace 1 channels: "general": # Your own alias for the channel configuration name: general bindings: executors: # Executors configuration for a given channel - k8s-default-tools sources: # Notification sources configuration for a given channel - k8s-events "random": # Your own alias for the channel configuration name: random bindings: executors: [] # Executors configuration for a given channel sources: # Notification sources configuration for a given channel - k8s-events "second-group": # Your own alias of a given communication group socketSlack: enabled: true botToken: "{SLACK_BOT_TOKEN_2}" # Bot token for Botkube App for Slack installed in Workspace 2 appToken: "{SLACK_APP_TOKEN_2}" # App token for Botkube App for Slack installed in Workspace 2 channels: "primary-channel": # Your own alias for the channel configuration name: general notification: # If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime. disabled: true bindings: executors: # Executors configuration for a given channel - k8s-default-tools sources: # Notification sources configuration for a given channel - k8s-events + +The example YAML configuration definition results in the following configuration. + +For Slack **Workspace 1**, as defined by the first communication group (`first-group`): + +* Notifications from `k8s-events` source are sent to the `general` and `random` channels. +* Commands from the `k8s-default-tools` configuration can be executed in the `general` channel. On `random` channel executors are not configured. + +For Slack **Workspace 2**, as defined by the second communication group (`second-group`): + +* Notifications are configured to be sent from the `k8s-events` source to the `general` channel. They are disabled by default, and can be enabled with `@Botkube` command or during Botkube upgrade. +* Commands from the `k8s-default-tools` configuration can be executed in the `general` channel. + +Source and Executor Bindings[​](#source-and-executor-bindings "Direct link to Source and Executor Bindings") +------------------------------------------------------------------------------------------------------------ + +Most of the communication platforms support executor and source bindings, which allows fine-tuning the notifications and allowed Botkube commands inside a given channel. + +With executor bindings you can configure which executors are allowed in a given channel. To read more about executor configuration, see the [Executor](https://docs.botkube.io/self-hosted-configuration/executor) document. + +With source bindings, you can specify which events are sent to a given channel (or, in case of Elasticsearch, index). To read more about source configuration, see the [Source](https://docs.botkube.io/self-hosted-configuration/source) document. + +Syntax[​](#syntax "Direct link to Syntax") +------------------------------------------ + +Each communication platform has specific options, however they share a similar syntax for consistency. For example, bot integrations such as Slack, Mattermost or Discord have multichannel support, that is you can configure multiple channels with separate bindings. Same with Elasticsearch - you can forward notifications to multiple Elasticsearch indices, according to the sources configuration. + + # 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.# @default -- See the `values.yaml` file for full object.### Format: communications.{alias}communications: "default-group": ## Settings for Slack with Socket Mode. socketSlack: # If true, enables bot for Slack. enabled: false # Map of configured channels. The property name under `channels` object is an alias for a given configuration. # ## Format: channels.{alias} channels: "default": # Slack channel name without '#' prefix where you have added Botkube and want to receive notifications in. name: "SLACK_CHANNEL" bindings: # Executors configuration for a given channel. executors: - k8s-default-tools # Notification sources configuration for a given channel. sources: - k8s-err-events - k8s-recommendation-events # Bot for Slack token for your own app for Slack. # [Ref doc](https://api.slack.com/authentication/token-types). botToken: "" # Slack app-level token for your own app for Slack. # [Ref doc](https://api.slack.com/authentication/token-types). appToken: "" ## Settings for Mattermost. mattermost: # If true, enables Mattermost bot. enabled: false # User in Mattermost which belongs the specified Personal Access token. botName: "Botkube" # The URL (including http/https schema) where Mattermost is running. e.g https://example.com:9243 url: "MATTERMOST_SERVER_URL" # Personal Access token generated by Botkube user. token: "MATTERMOST_TOKEN" # The Mattermost Team name where Botkube is added. team: "MATTERMOST_TEAM" # Map of configured channels. The property name under `channels` object is an alias for a given configuration. # ## Format: channels.{alias} channels: "default": # The Mattermost channel name for receiving Botkube alerts. # The Botkube user needs to be added to it. name: "MATTERMOST_CHANNEL" notification: # If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime. disabled: false bindings: # Executors configuration for a given channel. executors: - k8s-default-tools # Notification sources configuration for a given channel. sources: - k8s-err-events - k8s-recommendation-events ## Settings for Discord. discord: # If true, enables Discord bot. enabled: false # Botkube Bot Token. token: "DISCORD_TOKEN" # Botkube Application Client ID. botID: "DISCORD_BOT_ID" # Map of configured channels. The property name under `channels` object is an alias for a given configuration. # ## Format: channels.{alias} channels: "default": # Discord channel ID for receiving Botkube alerts. # The Botkube user needs to be added to it. id: "DISCORD_CHANNEL_ID" notification: # If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime. disabled: false bindings: # Executors configuration for a given channel. executors: - k8s-default-tools # Notification sources configuration for a given channel. sources: - k8s-err-events - k8s-recommendation-events ## Settings for Elasticsearch. elasticsearch: # If true, enables Elasticsearch. enabled: false awsSigning: # If true, enables awsSigning using IAM for Elasticsearch hosted on AWS. Make sure AWS environment variables are set. # [Ref doc](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html). enabled: false # AWS region where Elasticsearch is deployed. awsRegion: "us-east-1" # 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. roleArn: "" # The server URL, e.g https://example.com:9243 server: "ELASTICSEARCH_ADDRESS" # Basic Auth username. username: "ELASTICSEARCH_USERNAME" # Basic Auth password. password: "ELASTICSEARCH_PASSWORD" # If true, skips the verification of TLS certificate of the Elastic nodes. # It's useful for clusters with self-signed certificates. skipTLSVerify: false # Specify the log level for Elasticsearch client. Leave empty to disable logging. ## Possible values: "info", "error", "trace". ## - "info": Logs information level messages. ## - "error": Logs information and error level messages. ## - "trace": Logs information, error, and trace level messages. ## To disable logging, simply leave the logLevel empty or remove the line. logLevel: "" # Map of configured indices. The `indices` property name is an alias for a given configuration. # ## Format: indices.{alias} indices: "default": # Configures Elasticsearch index settings. name: botkube type: botkube-event shards: 1 replicas: 0 bindings: # Notification sources configuration for a given index. sources: - k8s-err-events - k8s-recommendation-events ## Settings for Webhook. webhook: # If true, enables Webhook. enabled: false # The Webhook URL, e.g.: https://example.com:80 url: "WEBHOOK_URL" bindings: # Notification sources configuration for the webhook. sources: - k8s-err-events - k8s-recommendation-events + +The default configuration for Helm chart can be found in [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml). diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__communication__vault-csi.md b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__communication__vault-csi.md similarity index 90% rename from hack/assistant-setup/content/docs.botkube.io__configuration__communication__vault-csi.md rename to hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__communication__vault-csi.md index 1fcd448..c84f355 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__communication__vault-csi.md +++ b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__communication__vault-csi.md @@ -1,8 +1,12 @@ Title: Tokens from Vault via CSI driver | Botkube -URL Source: https://docs.botkube.io/configuration/communication/vault-csi +URL Source: https://docs.botkube.io/self-hosted-configuration/communication/vault-csi Markdown Content: +info + +This document is applicable only for self-hosted installations. For Botkube Cloud installations, the Botkube Agent configuration, along with all secrets, are managed via the [Botkube Cloud dashboard](https://app.botkube.io/). + This tutorial shows how to install Botkube which takes the configuration from Vault instance. Prerequisites[​](#prerequisites "Direct link to Prerequisites") @@ -14,7 +18,7 @@ Prerequisites[​](#prerequisites "Direct link to Prerequisites") limactl start template://k3s -* [Slack integration installed](https://docs.botkube.io/installation/slack/#install-botkube-slack-app-to-your-slack-workspace). +* [Socket Slack integration installed](https://docs.botkube.io/installation/slack/socket-slack). * [`helm`](https://helm.sh/docs/intro/install/) v3 installed. diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__executor.md b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__executor.md similarity index 89% rename from hack/assistant-setup/content/docs.botkube.io__configuration__executor.md rename to hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__executor.md index fa4f017..97289d7 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__executor.md +++ b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__executor.md @@ -1,9 +1,15 @@ Title: Executor | Botkube -URL Source: https://docs.botkube.io/configuration/executor/ +URL Source: https://docs.botkube.io/self-hosted-configuration/executor Markdown Content: -The executor configuration allows you to define multiple executor configurations that can be later referred in [communication](https://docs.botkube.io/configuration/communication) bindings. For example, take a look at such executor definition: +Version: 1.11 + +info + +This document is applicable only for self-hosted installations. For Botkube Cloud installations, the Botkube Agent configuration is managed via the [Botkube Cloud dashboard](https://app.botkube.io/). + +The executor configuration allows you to define multiple executor configurations that can be later referred in [communication](https://docs.botkube.io/self-hosted-configuration/communication) bindings. For example, take a look at such executor definition: executors: "kubectl-global": # This is an executor configuration name, which is referred in communication bindings. botkube/kubectl: # ... trimmed ... "echo": # This is an executor configuration name, which is referred in communication bindings. botkube/echo: # ... trimmed ... @@ -42,6 +48,6 @@ The health check interval is used to check the health of the executor plugins. T Syntax[​](#syntax "Direct link to Syntax") ------------------------------------------ - # Map of executors. The `executors` property name is an alias for a given configuration.# Key name is used as a binding reference.## Format: executors.{alias}executors: "tools": botkube/echo@v1.10.0: # Plugin name syntax: /[@]. If version is not provided, the latest version from repository is used. enabled: true # If not enabled, plugin is not downloaded and started. config: # Plugin's specific configuration. changeResponseToUpperCase: true botkube/kubectl: # If version is not provided, the latest version from repository is used. enabled: true # If not enabled, plugin is not downloaded and started.# Configuration for Botkube executors and sources plugins.plugins: # Directory, where downloaded plugins are cached. cacheDir: "/tmp" # List of plugins repositories. repositories: # This repository serves officially supported Botkube plugins. botkube: url: https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml # Other 3rd party repositories. repo-name: url: https://example.com/plugins-index.yaml # Configure Incoming webhook for source plugins. incomingWebhook: enabled: true port: 2115 targetPort: 2115 # Botkube Restart Policy on plugin failure. restartPolicy: # Restart policy type. Allowed values: "RestartAgent", "DeactivatePlugin". type: "DeactivatePlugin" # Number of restarts before policy takes into effect. threshold: 10 healthCheckInterval: 10s + # Map of executors. The `executors` property name is an alias for a given configuration.# Key name is used as a binding reference.## Format: executors.{alias}executors: "tools": botkube/echo@v1.11.0: # Plugin name syntax: /[@]. If version is not provided, the latest version from repository is used. enabled: true # If not enabled, plugin is not downloaded and started. config: # Plugin's specific configuration. changeResponseToUpperCase: true botkube/kubectl: # If version is not provided, the latest version from repository is used. enabled: true # If not enabled, plugin is not downloaded and started.# Configuration for Botkube executors and sources plugins.plugins: # Directory, where downloaded plugins are cached. cacheDir: "/tmp" # List of plugins repositories. repositories: # This repository serves officially supported Botkube plugins. botkube: url: https://github.com/kubeshop/botkube/releases/download/v1.11.0/plugins-index.yaml # Other 3rd party repositories. repo-name: url: https://example.com/plugins-index.yaml # Configure Incoming webhook for source plugins. incomingWebhook: enabled: true port: 2115 targetPort: 2115 # Botkube Restart Policy on plugin failure. restartPolicy: # Restart policy type. Allowed values: "RestartAgent", "DeactivatePlugin". type: "DeactivatePlugin" # Number of restarts before policy takes into effect. threshold: 10 healthCheckInterval: 10s The default configuration for the Botkube Helm chart can be found in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__general.md b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__general.md similarity index 89% rename from hack/assistant-setup/content/docs.botkube.io__configuration__general.md rename to hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__general.md index d88819d..7032884 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__general.md +++ b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__general.md @@ -1,8 +1,8 @@ Title: General | Botkube -URL Source: https://docs.botkube.io/configuration/general +URL Source: https://docs.botkube.io/self-hosted-configuration/general Markdown Content: -The general settings holds a general configuration for the Botkube backend. For example, log level, disabling config watcher and similar. +The general settings holds a general configuration for the Botkube Agent. For example, log level, disabling config watcher and similar. # General Botkube configuration.settings: # Cluster name to differentiate incoming messages. clusterName: not-configured # If true, notifies about new Botkube releases. upgradeNotifier: true # Botkube logging settings. log: # Sets one of the log levels. Allowed values: `info`, `warn`, `debug`, `error`, `fatal`, `panic`. level: info # Configures log format. Allowed values: `text`, `json`. formatter: json # If true, disable ANSI colors in logging. Ignored when `json` formatter is used. disableColors: false# 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: # If true, restarts the Botkube Pod on config changes. enabled: true # In-cluster Config Watcher configuration. It is used when remote configuration is not provided. inCluster: # Resync period for the Config Watcher informers. informerResyncPeriod: 10m diff --git a/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__helm-chart-parameters.md b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__helm-chart-parameters.md new file mode 100644 index 0000000..02038f7 --- /dev/null +++ b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__helm-chart-parameters.md @@ -0,0 +1,6 @@ +Title: Helm chart parameters | Botkube + +URL Source: https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters + +Markdown Content: +[image.registry](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L14)string`"ghcr.io"`Botkube container image registry.[image.repository](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L16)string`"kubeshop/botkube"`Botkube container image repository.[image.pullPolicy](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L18)string`"IfNotPresent"`Botkube container image pull policy.[image.tag](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L20)string`"v9.99.9-dev"`Botkube container image tag. Default tag is `appVersion` from Chart.yaml.[podSecurityPolicy](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L24)object`{"enabled":false}`Configures Pod Security Policy to allow Botkube to run in restricted clusters. [Ref doc](https://kubernetes.io/docs/concepts/policy/pod-security-policy/).[securityContext](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L30)objectRuns as a Non-Privileged user.Configures security context to manage user Privileges in Pod. [Ref doc](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod).[containerSecurityContext](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L36)object`{"allowPrivilegeEscalation":false,"privileged":false,"readOnlyRootFilesystem":true}`Configures container security context. [Ref doc](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container).[rbac](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L43)object`{"create":true,"groups":{"botkube-plugins-default":{"create":true,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list"]}]}},"rules":[],"serviceAccountMountPath":"/var/run/7e7fd2f5-b15d-4803-bc52-f54fba357e76/secrets/kubernetes.io/serviceaccount","staticGroupName":""}`Role Based Access for Botkube Pod and plugins. [Ref doc](https://kubernetes.io/docs/reference/access-authn-authz/rbac/).[rbac.serviceAccountMountPath](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L47)string`"/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.create](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L50)bool`true`Configure RBAC resources for Botkube and (deprecated) `staticGroupName` subject with `rules`. For creating RBAC resources related to plugin permissions, use the `groups` property.[rbac.rules](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L52)list`[]`Deprecated. Use `rbac.groups` instead.[rbac.staticGroupName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L54)string`""`Deprecated. Use `rbac.groups` instead.[rbac.groups](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L56)object`{"botkube-plugins-default":{"create":true,"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["get","watch","list"]}]}}`Use this to create RBAC resources for specified group subjects.[kubeconfig.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L67)bool`false`If true, enables overriding the Kubernetes auth.[kubeconfig.base64Config](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L69)string`""`A base64 encoded kubeconfig that will be stored in a Secret, mounted to the Pod, and specified in the KUBECONFIG environment variable.[kubeconfig.existingSecret](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L74)string`""`A Secret containing a kubeconfig to use.[actions](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L81)objectSee 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.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L84)bool`false`If true, enables the action.[actions.describe-created-resource.displayName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L86)string`"Describe created resource"`Action display name posted in the channels bound to the same source bindings.[actions.describe-created-resource.command](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L91)stringSee 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](https://pkg.go.dev/text/template)) together with all helper functions defined by Slim-Sprig library ([https://go-task.github.io/slim-sprig](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](https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go).[actions.describe-created-resource.bindings](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L94)object`{"executors":["k8s-default-tools"],"sources":["k8s-create-events"]}`Bindings for a given action.[actions.describe-created-resource.bindings.sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L96)list`["k8s-create-events"]`Event sources that trigger a given action.[actions.describe-created-resource.bindings.executors](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L99)list`["k8s-default-tools"]`Executors configuration used to execute a configured command.[actions.show-logs-on-error.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L103)bool`false`If true, enables the action.[actions.show-logs-on-error.displayName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L106)string`"Show logs on error"`Action display name posted in the channels bound to the same source bindings.[actions.show-logs-on-error.command](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L111)stringSee 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](https://pkg.go.dev/text/template)) together with all helper functions defined by Slim-Sprig library ([https://go-task.github.io/slim-sprig](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](https://github.com/kubeshop/botkube/blob/main/internal/source/kubernetes/event/event.go).[actions.show-logs-on-error.bindings](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L113)object`{"executors":["k8s-default-tools"],"sources":["k8s-err-with-logs-events"]}`Bindings for a given action.[actions.show-logs-on-error.bindings.sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L115)list`["k8s-err-with-logs-events"]`Event sources that trigger a given action.[actions.show-logs-on-error.bindings.executors](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L118)list`["k8s-default-tools"]`Executors configuration used to execute a configured command.[sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L127)objectSee 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/kubernetes](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L132)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-all-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-create-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[executors.k8s-default-tools.botkube/kubectl.context.rbac](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-err-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L135)object`{"group":{"prefix":"","static":{"values":["botkube-plugins-default"]},"type":"Static"}}`RBAC configuration for this plugin.[sources.k8s-create-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-err-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[executors.k8s-default-tools.botkube/kubectl.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[sources.k8s-all-events.botkube/kubernetes.context.rbac.group.type](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L138)string`"Static"`Static impersonation for a given username and groups.[executors.k8s-default-tools.botkube/kubectl.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-err-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-all-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-err-with-logs-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-create-events.botkube/kubernetes.context.rbac.group.prefix](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L140)string`""`Prefix that will be applied to .static.value\[\*\].[sources.k8s-recommendation-events.botkube/kubernetes.context.rbac.group.static.values](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L143)list`["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.values](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L143)list`["botkube-plugins-default"]`Name of group.rbac.authorization.k8s.io the plugin will be bound to.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L157)object`{"ingress":{"backendServiceValid":true,"tlsSecretValid":true},"pod":{"labelsSet":true,"noLatestImageTag":true}}`Describes configuration for various recommendation insights.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L159)object`{"labelsSet":true,"noLatestImageTag":true}`Recommendations for Pod Kubernetes resource.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod.noLatestImageTag](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L161)bool`true`If true, notifies about Pod containers that use `latest` tag for images.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.pod.labelsSet](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L163)bool`true`If true, notifies about Pod resources created without labels.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L165)object`{"backendServiceValid":true,"tlsSecretValid":true}`Recommendations for Ingress Kubernetes resource.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress.backendServiceValid](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L167)bool`true`If true, notifies about Ingress resources with invalid backend service reference.[sources.k8s-recommendation-events.botkube/kubernetes.config.recommendations.ingress.tlsSecretValid](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L169)bool`true`If true, notifies about Ingress resources with invalid TLS secret reference.[sources.k8s-all-events.botkube/kubernetes](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L175)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-all-events.botkube/kubernetes.config.filters](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L181)objectSee the `values.yaml` file for full object.Filter settings for various sources.[sources.k8s-all-events.botkube/kubernetes.config.filters.objectAnnotationChecker](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L183)bool`true`If true, enables support for `botkube.io/disable` resource annotation.[sources.k8s-all-events.botkube/kubernetes.config.filters.nodeEventsChecker](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L185)bool`true`If true, filters out Node-related events that are not important.[sources.k8s-all-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L189)object`{"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.include](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L193)list`[".*"]`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.include](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L193)list`[".*"]`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.include](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L193)list`[".*"]`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.include](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L193)list`[".*"]`Include contains a list of allowed Namespaces. It can also contain regex expressions: `- ".*"` - to specify all Namespaces.[sources.k8s-all-events.botkube/kubernetes.config.event](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L203)object`{"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.types](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L205)list`["create","delete","error"]`Lists all event types to be watched.[sources.k8s-all-events.botkube/kubernetes.config.event.reason](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L211)object`{"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.include](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L213)list`[]`Include contains a list of allowed values. It can also contain regex expressions.[sources.k8s-all-events.botkube/kubernetes.config.event.reason.exclude](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L216)list`[]`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.message](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L219)object`{"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.include](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L221)list`[]`Include contains a list of allowed values. It can also contain regex expressions.[sources.k8s-all-events.botkube/kubernetes.config.event.message.exclude](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L224)list`[]`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.annotations](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L228)object`{}`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.labels](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L231)object`{}`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.resources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L238)listSee 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/kubernetes](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L352)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-err-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L359)object`{"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.event](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L363)object`{"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.types](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L365)list`["error"]`Lists all event types to be watched.[sources.k8s-err-events.botkube/kubernetes.config.resources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L370)listSee the `values.yaml` file for full object.Describes the Kubernetes resources you want to watch.[sources.k8s-err-with-logs-events.botkube/kubernetes](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L396)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-err-with-logs-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L403)object`{"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.event](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L407)object`{"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.types](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L409)list`["error"]`Lists all event types to be watched.[sources.k8s-err-with-logs-events.botkube/kubernetes.config.resources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L414)listSee the `values.yaml` file for full object.Describes the Kubernetes resources you want to watch.[sources.k8s-create-events.botkube/kubernetes](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L427)objectSee the `values.yaml` file for full object.Describes Kubernetes source configuration.[sources.k8s-create-events.botkube/kubernetes.config.namespaces](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L434)object`{"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.event](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L438)object`{"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.types](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L440)list`["create"]`Lists all event types to be watched.[sources.k8s-create-events.botkube/kubernetes.config.resources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L445)listSee the `values.yaml` file for full object.Describes the Kubernetes resources you want to watch.[executors](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L463)objectSee 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/kubectl.config](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L472)objectSee the `values.yaml` file for full object including optional properties related to interactive builder.Custom kubectl configuration.[aliases](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L497)objectSee 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`.[existingCommunicationsSecretName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L518)string`""`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"`.[communications](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L525)objectSee 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.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L530)bool`false`If true, enables bot for Slack.[communications.default-group.socketSlack.channels](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L534)object`{"default":{"bindings":{"executors":["k8s-default-tools"],"sources":["k8s-err-events","k8s-recommendation-events"]},"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.name](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L537)string`"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.executors](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L540)list`["k8s-default-tools"]`Executors configuration for a given channel.[communications.default-group.socketSlack.channels.default.bindings.sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L543)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given channel.[communications.default-group.socketSlack.botToken](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L548)string`""`Bot token for your own app for Slack. [Ref doc](https://api.slack.com/authentication/token-types).[communications.default-group.socketSlack.appToken](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L551)string`""`App-level token for your own app for Slack. [Ref doc](https://api.slack.com/authentication/token-types).[communications.default-group.mattermost.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L555)bool`false`If true, enables Mattermost bot.[communications.default-group.mattermost.botName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L557)string`"Botkube"`User in Mattermost which belongs the specified Personal Access token.[communications.default-group.mattermost.url](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L559)string`"MATTERMOST_SERVER_URL"`The URL (including http/https schema) where Mattermost is running. e.g [https://example.com:9243](https://example.com:9243/)[communications.default-group.mattermost.token](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L561)string`"MATTERMOST_TOKEN"`Personal Access token generated by Botkube user.[communications.default-group.mattermost.team](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L563)string`"MATTERMOST_TEAM"`The Mattermost Team name where Botkube is added.[communications.default-group.mattermost.channels](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L567)object`{"default":{"bindings":{"executors":["k8s-default-tools"],"sources":["k8s-err-events","k8s-recommendation-events"]},"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.name](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L571)string`"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.disabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L574)bool`false`If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime.[communications.default-group.mattermost.channels.default.bindings.executors](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L577)list`["k8s-default-tools"]`Executors configuration for a given channel.[communications.default-group.mattermost.channels.default.bindings.sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L580)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given channel.[communications.default-group.discord.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L587)bool`false`If true, enables Discord bot.[communications.default-group.discord.token](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L589)string`"DISCORD_TOKEN"`Botkube Bot Token.[communications.default-group.discord.botID](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L591)string`"DISCORD_BOT_ID"`Botkube Application Client ID.[communications.default-group.discord.channels](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L595)object`{"default":{"bindings":{"executors":["k8s-default-tools"],"sources":["k8s-err-events","k8s-recommendation-events"]},"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.id](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L599)string`"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.disabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L602)bool`false`If true, the notifications are not sent to the channel. They can be enabled with `@Botkube` command anytime.[communications.default-group.discord.channels.default.bindings.executors](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L605)list`["k8s-default-tools"]`Executors configuration for a given channel.[communications.default-group.discord.channels.default.bindings.sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L608)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given channel.[communications.default-group.elasticsearch.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L615)bool`false`If true, enables Elasticsearch.[communications.default-group.elasticsearch.awsSigning.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L619)bool`false`If true, enables awsSigning using IAM for Elasticsearch hosted on AWS. Make sure AWS environment variables are set. [Ref doc](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html).[communications.default-group.elasticsearch.awsSigning.awsRegion](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L621)string`"us-east-1"`AWS region where Elasticsearch is deployed.[communications.default-group.elasticsearch.awsSigning.roleArn](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L623)string`""`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.server](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L625)string`"ELASTICSEARCH_ADDRESS"`The server URL, e.g [https://example.com:9243](https://example.com:9243/)[communications.default-group.elasticsearch.username](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L627)string`"ELASTICSEARCH_USERNAME"`Basic Auth username.[communications.default-group.elasticsearch.password](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L629)string`"ELASTICSEARCH_PASSWORD"`Basic Auth password.[communications.default-group.elasticsearch.skipTLSVerify](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L632)bool`false`If true, skips the verification of TLS certificate of the Elastic nodes. It's useful for clusters with self-signed certificates.[communications.default-group.elasticsearch.logLevel](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L639)string`""`Specify the log level for Elasticsearch client. Leave empty to disable logging.[communications.default-group.elasticsearch.indices](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L644)object`{"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.name](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L647)string`"botkube"`Configures Elasticsearch index settings.[communications.default-group.elasticsearch.indices.default.bindings.sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L653)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for a given index.[communications.default-group.webhook.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L660)bool`false`If true, enables Webhook.[communications.default-group.webhook.url](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L662)string`"WEBHOOK_URL"`The Webhook URL, e.g.: [https://example.com:80](https://example.com:80/)[communications.default-group.webhook.bindings.sources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L665)list`["k8s-err-events","k8s-recommendation-events"]`Notification sources configuration for the webhook.[settings.clusterName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L672)string`"not-configured"`Cluster name to differentiate incoming messages.[settings.healthPort](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L675)int`2114`Health check port.[settings.upgradeNotifier](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L677)bool`true`If true, notifies about new Botkube releases.[settings.log.level](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L681)string`"info"`Sets one of the log levels. Allowed values: `info`, `warn`, `debug`, `error`, `fatal`, `panic`.[settings.log.disableColors](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L683)bool`false`If true, disable ANSI colors in logging. Ignored when `json` formatter is used.[settings.log.formatter](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L685)string`"json"`Configures log format. Allowed values: `text`, `json`.[settings.systemConfigMap](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L688)object`{"name":"botkube-system"}`Botkube's system ConfigMap where internal data is stored.[settings.persistentConfig](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L693)object`{"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.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L708)bool`false`If true, specify cert path in `config.ssl.cert` property or K8s Secret in `config.ssl.existingSecretName`.[ssl.existingSecretName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L714)string`""`Using existing SSL Secret. It MUST be in `botkube` Namespace.[ssl.cert](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L717)string`""`SSL Certificate file e.g certs/my-cert.crt.[service](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L720)object`{"name":"metrics","port":2112,"targetPort":2112}`Configures Service settings for ServiceMonitor CR.[serviceMonitor](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L727)object`{"enabled":false,"interval":"10s","labels":{},"path":"/metrics","port":"metrics"}`Configures ServiceMonitor settings. [Ref doc](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#servicemonitor).[deployment.annotations](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L737)object`{}`Extra annotations to pass to the Botkube Deployment.[deployment.livenessProbe](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L739)object`{"failureThreshold":35,"initialDelaySeconds":1,"periodSeconds":2,"successThreshold":1,"timeoutSeconds":1}`Liveness probe.[deployment.livenessProbe.initialDelaySeconds](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L741)int`1`The liveness probe initial delay seconds.[deployment.livenessProbe.periodSeconds](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L743)int`2`The liveness probe period seconds.[deployment.livenessProbe.timeoutSeconds](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L745)int`1`The liveness probe timeout seconds.[deployment.livenessProbe.failureThreshold](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L747)int`35`The liveness probe failure threshold.[deployment.livenessProbe.successThreshold](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L749)int`1`The liveness probe success threshold.[deployment.readinessProbe](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L752)object`{"failureThreshold":35,"initialDelaySeconds":1,"periodSeconds":2,"successThreshold":1,"timeoutSeconds":1}`Readiness probe.[deployment.readinessProbe.initialDelaySeconds](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L754)int`1`The readiness probe initial delay seconds.[deployment.readinessProbe.periodSeconds](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L756)int`2`The readiness probe period seconds.[deployment.readinessProbe.timeoutSeconds](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L758)int`1`The readiness probe timeout seconds.[deployment.readinessProbe.failureThreshold](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L760)int`35`The readiness probe failure threshold.[deployment.readinessProbe.successThreshold](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L762)int`1`The readiness probe success threshold.[extraAnnotations](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L769)object`{}`Extra annotations to pass to the Botkube Pod.[extraLabels](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L771)object`{}`Extra labels to pass to the Botkube Pod.[priorityClassName](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L773)string`""`Priority class name for the Botkube Pod.[nameOverride](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L776)string`""`Fully override "botkube.name" template.[fullnameOverride](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L778)string`""`Fully override "botkube.fullname" template.[resources](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L784)object`{}`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](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)[extraEnv](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L796)list`[{"name":"LOG_LEVEL_SOURCE_BOTKUBE_KUBERNETES","value":"debug"}]`Extra environment variables to pass to the Botkube container. [Ref docs](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#environment-variables).[extraVolumes](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L810)list`[]`Extra volumes to pass to the Botkube container. Mount it later with extraVolumeMounts. [Ref docs](https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/volume/#Volume).[extraVolumeMounts](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L825)list`[]`Extra volume mounts to pass to the Botkube container. [Ref docs](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#volumes-1).[nodeSelector](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L843)object`{}`Node labels for Botkube Pod assignment. [Ref doc](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).[tolerations](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L847)list`[]`Tolerations for Botkube Pod assignment. [Ref doc](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/).[affinity](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L851)object`{}`Affinity for Botkube Pod assignment. [Ref doc](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity).[serviceAccount.create](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L855)bool`true`If true, a ServiceAccount is automatically created.[serviceAccount.name](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L858)string`""`The name of the service account to use. If not set, a name is generated using the fullname template.[serviceAccount.annotations](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L860)object`{}`Extra annotations for the ServiceAccount.[extraObjects](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L863)list`[]`Extra Kubernetes resources to create. Helm templating is allowed as it is evaluated before creating the resources.[analytics.disable](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L891)bool`false`If true, sending anonymous analytics is disabled. To learn what date we collect, see [Privacy Policy](https://botkube.io/privacy-policy).[configWatcher](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L895)object`{"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.enabled](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L897)bool`true`If true, restarts the Botkube Pod on config changes.[configWatcher.inCluster](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L899)object`{"informerResyncPeriod":"10m"}`In-cluster Config Watcher configuration. It is used when remote configuration is not provided.[configWatcher.inCluster.informerResyncPeriod](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L901)string`"10m"`Resync period for the Config Watcher informers.[plugins](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L904)object`{"cacheDir":"/tmp","healthCheckInterval":"10s","incomingWebhook":{"enabled":true,"port":2115,"targetPort":2115},"repositories":{"botkube":{"url":"https://storage.googleapis.com/botkube-plugins-latest/plugins-index.yaml"}},"restartPolicy":{"threshold":10,"type":"DeactivatePlugin"}}`Configuration for Botkube executors and sources plugins.[plugins.cacheDir](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L906)string`"/tmp"`Directory, where downloaded plugins are cached.[plugins.repositories](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L908)object`{"botkube":{"url":"https://storage.googleapis.com/botkube-plugins-latest/plugins-index.yaml"}}`List of plugins repositories. Each repository defines the URL and optional `headers`[plugins.repositories.botkube](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L910)object`{"url":"https://storage.googleapis.com/botkube-plugins-latest/plugins-index.yaml"}`This repository serves officially supported Botkube plugins.[plugins.incomingWebhook](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L915)object`{"enabled":true,"port":2115,"targetPort":2115}`Configure Incoming webhook for source plugins.[plugins.restartPolicy](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L920)object`{"threshold":10,"type":"DeactivatePlugin"}`Botkube Restart Policy on plugin failure.[plugins.restartPolicy.type](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L922)string`"DeactivatePlugin"`Restart policy type. Allowed values: "RestartAgent", "DeactivatePlugin".[plugins.restartPolicy.threshold](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L924)int`10`Number of restarts before policy takes into effect.[config](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L928)object`{"provider":{"apiKey":"","endpoint":"https://api.botkube.io/graphql","identifier":""}}`Configuration for synchronizing Botkube configuration.[config.provider](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L930)object`{"apiKey":"","endpoint":"https://api.botkube.io/graphql","identifier":""}`Base provider definition.[config.provider.identifier](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L933)string`""`Unique identifier for remote Botkube settings. If set to an empty string, Botkube won't fetch remote configuration.[config.provider.endpoint](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L935)string`"https://api.botkube.io/graphql"`Endpoint to fetch Botkube settings from.[config.provider.apiKey](https://github.com/kubeshop/botkube/blob/cced671352cc9e099bf98fb13d5792384159b9cd/helm/botkube/values.yaml#L937)string`""`Key passed as a `X-API-Key` header to the provider's endpoint. diff --git a/hack/assistant-setup/content/docs.botkube.io__configuration__source.md b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__source.md similarity index 90% rename from hack/assistant-setup/content/docs.botkube.io__configuration__source.md rename to hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__source.md index 02a9c3f..f61c739 100644 --- a/hack/assistant-setup/content/docs.botkube.io__configuration__source.md +++ b/hack/assistant-setup/content/docs.botkube.io__self-hosted-configuration__source.md @@ -1,11 +1,15 @@ Title: Source | Botkube -URL Source: https://docs.botkube.io/configuration/source/ +URL Source: https://docs.botkube.io/self-hosted-configuration/source Markdown Content: -Version: 1.10 +Version: 1.11 -The source configuration allows you to define multiple source configurations that can be later referred in [communication](https://docs.botkube.io/configuration/communication) bindings. For example, take a look at such source definition: +info + +This document is applicable only for self-hosted installations. For Botkube Cloud installations, the Botkube Agent configuration is managed via the [Botkube Cloud dashboard](https://app.botkube.io/). + +The source configuration allows you to define multiple source configurations that can be later referred in [communication](https://docs.botkube.io/self-hosted-configuration/communication) bindings. For example, take a look at such source definition: sources: "k8s-recommendation-alerts": # This is a source configuration name, which is referred in communication bindings. botkube/kubernetes: # ... trimmed ... "k8s-all-events": # This is a source configuration name, which is referred in communication bindings. botkube/kubernetes: # ... trimmed ... @@ -44,6 +48,6 @@ The health check interval is used to check the health of the source plugins. The Syntax[​](#syntax "Direct link to Syntax") ------------------------------------------ - # Map of sources. The `sources` property name is an alias for a given configuration.# Key name is used as a binding reference.## Format: sources.{alias}sources: "k8s-recommendation-events": # Built-in kubernetes source configuration. botkube/kubernetes: enabled: true config: # Kubernetes configuration recommendations: pod: noLatestImageTag: true # ... trimmed ...# Configuration for Botkube executors and sources plugins.plugins: # Directory, where downloaded plugins are cached. cacheDir: "/tmp" # List of plugins repositories. repositories: # This repository serves officially supported Botkube plugins. botkube: url: https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml # Other 3rd party repositories. repo-name: url: https://example.com/plugins-index.yaml # Configure Incoming webhook for source plugins. incomingWebhook: enabled: true port: 2115 targetPort: 2115 # Botkube Restart Policy on plugin failure. restartPolicy: # Restart policy type. Allowed values: "RestartAgent", "DeactivatePlugin". type: "DeactivatePlugin" # Number of restarts before policy takes into effect. threshold: 10 healthCheckInterval: 10s + # Map of sources. The `sources` property name is an alias for a given configuration.# Key name is used as a binding reference.## Format: sources.{alias}sources: "k8s-recommendation-events": # Built-in kubernetes source configuration. botkube/kubernetes: enabled: true config: # Kubernetes configuration recommendations: pod: noLatestImageTag: true # ... trimmed ...# Configuration for Botkube executors and sources plugins.plugins: # Directory, where downloaded plugins are cached. cacheDir: "/tmp" # List of plugins repositories. repositories: # This repository serves officially supported Botkube plugins. botkube: url: https://github.com/kubeshop/botkube/releases/download/v1.11.0/plugins-index.yaml # Other 3rd party repositories. repo-name: url: https://example.com/plugins-index.yaml # Configure Incoming webhook for source plugins. incomingWebhook: enabled: true port: 2115 targetPort: 2115 # Botkube Restart Policy on plugin failure. restartPolicy: # Restart policy type. Allowed values: "RestartAgent", "DeactivatePlugin". type: "DeactivatePlugin" # Number of restarts before policy takes into effect. threshold: 10 healthCheckInterval: 10s The default configuration for the Botkube Helm chart can be found in the [values.yaml](https://github.com/kubeshop/botkube/blob/main/helm/botkube/values.yaml) file. diff --git a/hack/assistant-setup/content/docs.botkube.io__support.md b/hack/assistant-setup/content/docs.botkube.io__support.md index 24d1824..b68d755 100644 --- a/hack/assistant-setup/content/docs.botkube.io__support.md +++ b/hack/assistant-setup/content/docs.botkube.io__support.md @@ -3,6 +3,4 @@ Title: Support | Botkube URL Source: https://docs.botkube.io/support/ Markdown Content: -* [Need help with Botkube?](#need-help-with-botkube) - -By continuing to use our site, you consent to Kubeshop using cookies in accordance with our [Privacy Policy.](https://botkube.io/privacy-policy) +Copyright © 2024 Kubeshop, Inc. Built with Docusaurus. diff --git a/hack/assistant-setup/content/docs.botkube.io__telemetry.md b/hack/assistant-setup/content/docs.botkube.io__telemetry.md index 7e50ea0..441bece 100644 --- a/hack/assistant-setup/content/docs.botkube.io__telemetry.md +++ b/hack/assistant-setup/content/docs.botkube.io__telemetry.md @@ -40,7 +40,7 @@ Botkube CLI tool collects: ### How to opt out[​](#how-to-opt-out "Direct link to How to opt out") -To disable sending the anonymous analytics, provide the `analytics.disable: true` override during Helm chart installation or upgrade. See the [Helm chart parameters](https://docs.botkube.io/configuration/helm-chart-parameters/#values) for more details about Helm chart configuration. +To disable sending the anonymous analytics, provide the `analytics.disable: true` override during Helm chart installation or upgrade. See the [Helm chart parameters](https://docs.botkube.io/self-hosted-configuration/helm-chart-parameters) for more details about Helm chart configuration. To disable sending the anonymous analytics for Botkube CLI, execute the command diff --git a/hack/assistant-setup/content/docs.botkube.io__operation__common-problems.md b/hack/assistant-setup/content/docs.botkube.io__troubleshooting__common-problems.md similarity index 84% rename from hack/assistant-setup/content/docs.botkube.io__operation__common-problems.md rename to hack/assistant-setup/content/docs.botkube.io__troubleshooting__common-problems.md index 9ce68ee..1c4ed5f 100644 --- a/hack/assistant-setup/content/docs.botkube.io__operation__common-problems.md +++ b/hack/assistant-setup/content/docs.botkube.io__troubleshooting__common-problems.md @@ -1,6 +1,6 @@ Title: Common problems | Botkube -URL Source: https://docs.botkube.io/operation/common-problems +URL Source: https://docs.botkube.io/troubleshooting/common-problems Markdown Content: This document describes how to identify and resolve common Botkube problems that might occur. @@ -12,16 +12,16 @@ Incompatible plugin API version[​](#incompatible-plugin-api-version "Direct li * Botkube agent Pod is restarting -* In [Botkube agent logs](https://docs.botkube.io/operation/diagnostics#agent-logs), you see such entry: +* In [Botkube agent logs](https://docs.botkube.io/troubleshooting/diagnostics#agent-logs), you see such entry: - while running application: while waiting for goroutines to finish gracefully: 1 error occurred: * while starting plugins manager: while creating executor plugins: Incompatible API version with plugin. Plugin version: 2, Client versions: [1] + while running application: while waiting for goroutines to finish gracefully: 1 error occurred: * while starting plugins manager: while creating executor plugins: Incompatible API version with plugin. Plugin version: 2, Client versions: [1] **Debugging steps** -* [Check Botkube agent version](https://docs.botkube.io/operation/diagnostics#agent-version). +* [Check Botkube agent version](https://docs.botkube.io/troubleshooting/diagnostics#agent-version). -* [Check plugin repository version](https://docs.botkube.io/operation/diagnostics#check-configured-plugin-repositories). +* [Check plugin repository version](https://docs.botkube.io/troubleshooting/diagnostics#check-configured-plugin-repositories). **Solution** @@ -62,8 +62,8 @@ Botkube can work in private clusters where inbound connections are limited. Howe The official Botkube plugin index and binaries are hosted on [GitHub releases](https://github.com/kubeshop/botkube/releases). For instance, for the version `v1.5.0` the following URLs are used: -* Plugin index URL: [https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml](https://github.com/kubeshop/botkube/releases/download/v1.10.0/plugins-index.yaml) -* Kubectl plugin binary for `linux/amd64`: [https://github.com/kubeshop/botkube/releases/download/v1.10.0/executor\_kubectl\_linux\_amd64.tar.gz](https://github.com/kubeshop/botkube/releases/download/v1.10.0/executor_kubectl_linux_amd64.tar.gz) +* Plugin index URL: [https://github.com/kubeshop/botkube/releases/download/v1.11.0/plugins-index.yaml](https://github.com/kubeshop/botkube/releases/download/v1.11.0/plugins-index.yaml) +* Kubectl plugin binary for `linux/amd64`: [https://github.com/kubeshop/botkube/releases/download/v1.11.0/executor\_kubectl\_linux\_amd64.tar.gz](https://github.com/kubeshop/botkube/releases/download/v1.11.0/executor_kubectl_linux_amd64.tar.gz) As a result, you need to allow outbound connections for Botkube to successfully download GitHub assets. @@ -90,12 +90,12 @@ Cloud Slack integration communicates via gRPC with the Botkube control-plane. In Plugin's permissions[​](#plugins-permissions "Direct link to Plugin's permissions") ----------------------------------------------------------------------------------- -If you experience problems while configuring RBAC (Role-Based Access Control) for plugins, you can refer to the [troubleshooting](https://docs.botkube.io/configuration/rbac#troubleshooting) guide for assistance. +If you experience problems while configuring RBAC (Role-Based Access Control) for plugins, you can refer to the [troubleshooting](https://docs.botkube.io/features/rbac#troubleshooting) guide for assistance. Botkube doesn't respond on MS Teams[​](#botkube-doesnt-respond-on-ms-teams "Direct link to Botkube doesn't respond on MS Teams") -------------------------------------------------------------------------------------------------------------------------------- -In order to solve the problem, please refer to the [troubleshooting](https://docs.botkube.io/installation/teams/#troubleshooting) guide for assistance. +Cloud Teams integration communicates via gRPC with the Botkube control-plane. In order to make this integration work, you need to allow access to `api.botkube.io`. I can't see my Slack private channels in Cloud Dashboard[​](#i-cant-see-my-slack-private-channels-in-cloud-dashboard "Direct link to I can't see my Slack private channels in Cloud Dashboard") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -121,7 +121,7 @@ Others[​](#others "Direct link to Others") Having trouble finding a solution to your problem? No problem at all! We will help you to get your Botkube up and running. First, follow these steps: -1. [Export the Botkube agent configuration](https://docs.botkube.io/operation/diagnostics#agent-configuration) -2. [Export the Botkube agent logs](https://docs.botkube.io/operation/diagnostics#agent-logs) +1. [Export the Botkube agent configuration](https://docs.botkube.io/troubleshooting/diagnostics#agent-configuration) +2. [Export the Botkube agent logs](https://docs.botkube.io/troubleshooting/diagnostics#agent-logs) -After that, come join our Slack community workspace at [https://join.botkube.io.](https://join.botkube.io./) Head over to the [`#helping-hands`](https://slack.com/app_redirect?team=TG7TTBLJ0&channel=helping-hands) channel and share the assets you exported along with a description of your issue. Our team is ready to assist you! +After that, come join our Slack community workspace at [https://join.botkube.io](https://join.botkube.io/). Head over to the [`#helping-hands`](https://slack.com/app_redirect?team=TG7TTBLJ0&channel=helping-hands) channel and share the assets you exported along with a description of your issue. Our team is ready to assist you! diff --git a/hack/assistant-setup/content/docs.botkube.io__operation__diagnostics.md b/hack/assistant-setup/content/docs.botkube.io__troubleshooting__diagnostics.md similarity index 94% rename from hack/assistant-setup/content/docs.botkube.io__operation__diagnostics.md rename to hack/assistant-setup/content/docs.botkube.io__troubleshooting__diagnostics.md index ab77eb0..4d2625a 100644 --- a/hack/assistant-setup/content/docs.botkube.io__operation__diagnostics.md +++ b/hack/assistant-setup/content/docs.botkube.io__troubleshooting__diagnostics.md @@ -1,6 +1,6 @@ Title: Basic diagnostics | Botkube -URL Source: https://docs.botkube.io/operation/diagnostics +URL Source: https://docs.botkube.io/troubleshooting/diagnostics Markdown Content: Here you can find the list of basic diagnostic actions that may help you look for bug causes. @@ -23,7 +23,7 @@ The easiest way to check the Agent version is to get the Docker image: You should get an output similar to this: - Used imagesbotkube: ghcr.io/kubeshop/botkube:v1.5.0cfg-watcher: ghcr.io/kubeshop/k8s-sidecar:in-cluster-config + Used imagesbotkube: ghcr.io/kubeshop/botkube:v1.5.0cfg-watcher: ghcr.io/kubeshop/k8s-sidecar:in-cluster-config The `botkube` is the agent image. The container image tag (`v1.5.0`) is the version in which it was deployed on the cluster. diff --git a/hack/assistant-setup/content/docs.botkube.io__usage.md b/hack/assistant-setup/content/docs.botkube.io__usage.md deleted file mode 100644 index 7d5adca..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage.md +++ /dev/null @@ -1,18 +0,0 @@ -Title: Usage | Botkube - -URL Source: https://docs.botkube.io/usage/ - -Markdown Content: -Botkube allows you to monitor your Kubernetes cluster, as well as debug and troubleshoot your workloads. - -See all available commands[​](#see-all-available-commands "Direct link to See all available commands") ------------------------------------------------------------------------------------------------------- - -Run `@Botkube help` to find information about the supported commands. - -Check Botkube status[​](#check-botkube-status "Direct link to Check Botkube status") ------------------------------------------------------------------------------------- - -Run `@Botkube ping` to the channel where Botkube is added. The Botkube will respond you with the **pong** message from all the configured clusters. - -For [multi-cluster configuration](https://docs.botkube.io/usage/executor/#specify-cluster-name), use the `--cluster-name` flag to get response from the cluster mentioned in the flag. Else check the deployment in Kubernetes cluster in the **botkube** namespace. diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__automated-actions.md b/hack/assistant-setup/content/docs.botkube.io__usage__automated-actions.md deleted file mode 100644 index e0bed54..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__automated-actions.md +++ /dev/null @@ -1,33 +0,0 @@ -Title: Automated actions | Botkube - -URL Source: https://docs.botkube.io/usage/automated-actions - -Markdown Content: -Actions allow you to automate your workflows by executing custom commands based on specific events. To read how to configure actions, see the [Action](https://docs.botkube.io/configuration/action) configuration document. - -Manage actions[​](#manage-actions "Direct link to Manage actions") ------------------------------------------------------------------- - -Botkube allows you to manage actions using `@Botkube` commands. - -### List available actions[​](#list-available-actions "Direct link to List available actions") - -Run `@Botkube list actions` to get list of configured actions and their running status: - -![Image 1: List available actions](https://docs.botkube.io/assets/images/list-actions-e1d1d86e622d7a10077d5347958a3559.png) - -### Disable action[​](#disable-action "Direct link to Disable action") - -Run `@Botkube disable action {action-name}` to disable an action named `{action-name}`. The action settings are persisted across Botkube app restarts. - -![Image 2: Disable action](https://docs.botkube.io/assets/images/disable-action-414dd23e8a7bcb9efc1d52251f68999c.png) - -When you disable an action, changes are applied once the Botkube is restarted. It is an automated process which usually takes a few seconds. - -### Enable action[​](#enable-action "Direct link to Enable action") - -Run `@Botkube enable action {action-name}` to enable an action named `{action-name}`. The action settings are persisted across Botkube app restarts. - -![Image 3: Enable action](https://docs.botkube.io/assets/images/enable-action-08c9232d0d21939ec91201abdcb70a50.png) - -When you enable an action, changes are applied once the Botkube is restarted. It is an automated process which usually takes a few seconds. diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__executor.md b/hack/assistant-setup/content/docs.botkube.io__usage__executor.md deleted file mode 100644 index 4acf452..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__executor.md +++ /dev/null @@ -1,51 +0,0 @@ -Title: Executor | Botkube - -URL Source: https://docs.botkube.io/usage/executor/ - -Markdown Content: -While deploying Botkube, you can specify which [executors](https://docs.botkube.io/configuration/executor) you want to enable. - -To check which executors are enabled, and get the aliases configured for them, run `@Botkube list executors`. - -Aliases[​](#aliases "Direct link to Aliases") ---------------------------------------------- - -Alias is a shortcut for a longer command or just a part of it. It can be defined for all commands, including executor plugins and built-in Botkube commands. When you use an alias, the command is replaced with the underlying command before executing it. For example, `@Botkube k get pods` is replaced with `@Botkube kubectl get pods` before executing it. - -Once you configured aliases, you can use them interchangeably with a full command. For example: - -* `k` as `kubectl`, -* `kgp` as `kubectl get pods`, -* `kgpa` as `kubectl get pods -A`, -* `hh` as `helm history`, -* `a` as `list actions`, the built-in Botkube command, - -and so on. Your imagination is the limit! - -Aliases are defined globally for the whole Botkube installation. To see which aliases are available for current conversation, run `@Botkube list aliases`. - -To learn how to configure aliases and see the default configuration, see the [Alias](https://docs.botkube.io/configuration/alias) section. - -Specify cluster name[​](#specify-cluster-name "Direct link to Specify cluster name") ------------------------------------------------------------------------------------- - -danger - -Multi-cluster approach is supported only for the Mattermost and Discord integrations. Slack and Microsoft Teams integrations require separate Slack or Microsoft Teams apps for each Botkube installation. - -If you have installed Botkube backend on multiple clusters, you can pass `--cluster-name` flag to execute kubectl command on specific cluster. - -To get the list of all clusters configured in botkube, you can use the ping command. - -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. - -Filtering text output[​](#filtering-text-output "Direct link to Filtering text output") ---------------------------------------------------------------------------------------- - -Use the `--filter` flag to filter the output of Botkube executor commands. This returns any lines matching the flag's provided value. - -The `--filter` flag uses simple string matching. And, only works for Botkube executor commands that return text output, e.g. `kubectl` or `list executors` commands. - -### Filtering `kubectl` output[​](#filtering-kubectl-output "Direct link to filtering-kubectl-output") - -![Image 1: flag_filter_kubectl_get_nodes](https://docs.botkube.io/assets/images/flag_filter_kubectl_get_nodes-16a8e267dffa5c29c4f0cb53d549bbe9.png) ![Image 2: flag_filter_kubectl_logs](https://docs.botkube.io/assets/images/flag_filter_kubectl_logs-3740479b57c49363f90ba706f516d758.png) diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__executor__doctor.md b/hack/assistant-setup/content/docs.botkube.io__usage__executor__doctor.md deleted file mode 100644 index 17133e4..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__executor__doctor.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Doctor | Botkube - -URL Source: https://docs.botkube.io/usage/executor/doctor - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__executor__flux.md b/hack/assistant-setup/content/docs.botkube.io__usage__executor__flux.md deleted file mode 100644 index 49fac1f..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__executor__flux.md +++ /dev/null @@ -1,56 +0,0 @@ -Title: Flux | Botkube - -URL Source: https://docs.botkube.io/usage/executor/flux - -Markdown Content: -Version: 1.10 - -info - -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). - -Botkube offers seamless execution of Flux CLI commands within your Kubernetes cluster. By default, Flux command execution is disabled. To enable it, refer to the [**Enabling plugin**](https://docs.botkube.io/configuration/executor/flux#enabling-plugin) section. - -To execute the `flux` CLI commands, send a message in the channel where Botkube is present. For example: - -Interactive Usage[​](#interactive-usage "Direct link to Interactive Usage") ---------------------------------------------------------------------------- - -We have also incorporated interactivity (tables, etc.) to simplify running Flux CLI commands e.g. from mobile devices. - -![Image 1: flux-interactivity](https://docs.botkube.io/assets/images/flux-interactivity-36eaec2696dd56fe8924ef36f42a7ac1.gif) - -Simplified Kustomization Diffing Flow[​](#simplified-kustomization-diffing-flow "Direct link to Simplified Kustomization Diffing Flow") ---------------------------------------------------------------------------------------------------------------------------------------- - -With the Botkube Flux executor, you can execute a single command to perform a diff between a specific pull request and the cluster state. For instance: - - @Botkube flux diff kustomization podinfo --path ./kustomize --github-ref [PR Number| URL | Branch] - -![Image 2: flux-diff](https://docs.botkube.io/assets/images/flux-diff-abdd97d5a1b5dd3b64ecf2c1712fa14d.gif) - -This command automates several tasks: - -* Automatically discovering the associated GitHub repository for the given kustomization. -* Cloning the repository. -* Checking out a given pull request. -* Comparing pull request changes with the current cluster state. -* Sharing the diff report. - -The diff results are posted on the Slack channel, making it easy for team members to review and discuss the changes. Additionally, the returned message provides additional contextual actions: - -* Posting the diff report as a GitHub comment on the corresponding pull request. -* Approving the pull request. -* Viewing the pull request. - -### GitHub automation[​](#github-automation "Direct link to GitHub automation") - -To enhance your workflow's efficiency, you can use the [GitHub Events](https://docs.botkube.io/configuration/source/github-events) source for automatic notification of pull request events, complete with an integrated `flux diff` button. - - github: auth: accessToken: "ghp_" # GitHub PATrepositories: - name: { owner }/{name} on: pullRequests: - types: [ "open" ] paths: # Patterns for included file changes in pull requests. include: [ 'kustomize/.*' ] notificationTemplate: extraButtons: - displayName: "Flux Diff" commandTpl: "flux diff ks podinfo --path ./kustomize --github-ref {{ .HTMLURL }} " - -Don't forget to bind the plugin to one of the channels. diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__executor__helm.md b/hack/assistant-setup/content/docs.botkube.io__usage__executor__helm.md deleted file mode 100644 index 9f6b71b..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__executor__helm.md +++ /dev/null @@ -1,64 +0,0 @@ -Title: Helm | Botkube - -URL Source: https://docs.botkube.io/usage/executor/helm - -Markdown Content: -info - -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). - -Botkube allows you to execute `helm` commands on your Kubernetes cluster. By default, `helm` command execution is disabled. See the [**Enabling plugin**](https://docs.botkube.io/configuration/executor/helm#enabling-plugin) section from the `helm` configuration documentation. - -To execute `helm` commands, send message in the following format in the channel where Botkube is already added: - - @Botkube helm [command] [flags] - -At least one `helm` executor needs to be enabled and bound to a given channel. - -caution - -Using the interactive filter input field causes the Helm command to be re-executed. Be careful when using it for read-write commands. - -![Image 1: Interactive Helm install filtering](https://docs.botkube.io/assets/images/helm-install-filter-bc1989a96013aa1c14a23d0e41a5f6ac.png) - -This issue is tracked in [botkube#907](https://github.com/kubeshop/botkube/issues/907). - -Supported commands[​](#supported-commands "Direct link to Supported commands") ------------------------------------------------------------------------------- - -The Helm executor plugin has the exact same syntax as the Helm CLI. However, not all commands and flags are supported. If an unsupported flag is specified, you will get a dedicated error, e.g: - - The "--wait" flag is not supported by the Botkube Helm plugin. Please remove it. - -Additionally, the following flag syntax is not supported: - -* No whitespace between short flag name and its value. Instead of `-oyaml`, use `-o yaml`. -* Merging multiple short flags together. Instead of `-Aa`, use `-A -a`. - -### Read-only commands[​](#read-only-commands "Direct link to Read-only commands") - -List of the read-only commands: - -* `@Botkube helm help` - shows the general Helm plugin help message. -* `@Botkube helm list` - lists all releases on cluster where Botkube is installed. - * The `--filter` flag is reserved by Botkube. As a result, to use the Helm filter functionality use `-f` instead, e.g. `helm list -f 'ara[a-z]+'`. -* `@Botkube helm status` - displays the status of the named release. -* `@Botkube helm version` - shows the version of the Helm CLI used by this Botkube plugin. - -### Read-write commands[​](#read-write-commands "Direct link to Read-write commands") - -For the read-write commands the Botkube RBAC needs to be adjusted. For more information, see the [**Enabling plugin**](https://docs.botkube.io/configuration/executor/helm#enabling-plugin) section. - -List of the read-write commands: - -* `@Botkube helm rollback` - rolls back a given release to a previous revision. -* `@Botkube helm test` - runs tests for a given release. -* `@Botkube helm uninstall` - uninstalls a given release. -* `@Botkube helm upgrade` - upgrades a given release. -* `@Botkube helm install` - installs a given chart to cluster where Botkube is installed. There are two different ways you to install a Helm chart: - * By absolute URL: `helm install mynginx https://example.com/charts/nginx-1.2.3.tgz` - * By chart reference and repository URL: `helm install --repo https://example.com/charts/ mynginx nginx` diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__executor__kubectl.md b/hack/assistant-setup/content/docs.botkube.io__usage__executor__kubectl.md deleted file mode 100644 index c286933..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__executor__kubectl.md +++ /dev/null @@ -1,37 +0,0 @@ -Title: Kubectl | Botkube - -URL Source: https://docs.botkube.io/usage/executor/kubectl - -Markdown Content: -Botkube allows you to execute `kubectl` commands on your Kubernetes cluster. By default, kubectl command execution is disabled. See the [**Enabling plugin**](https://docs.botkube.io/configuration/executor/kubectl#enabling-plugin) section from the `kubectl` configuration documentation. - -To execute the `kubectl` commands, send message in following format in the channel where Botkube is already added: - - @Botkube kubectl [verb] [resource] [flags] - -By default, `k` and `kc` are configured as aliases for the `kubectl` command. You can use them on par with the `kubectl` command. To read more about aliases configuration, see the [Alias](https://docs.botkube.io/configuration/alias) section. - -This command needs to be executed from configured channel. - -Interactive kubectl commands builder[​](#interactive-kubectl-commands-builder "Direct link to Interactive kubectl commands builder") ------------------------------------------------------------------------------------------------------------------------------------- - -Use the interactive `kubectl` command builder to construct a `kubectl` command just by selecting items from dropdowns. This is especially useful on mobile when typing the command is harder. - -The builder includes a resource name dropdown list. This is pre-populated with all the relevant resource names. It's great for discovering resources with the option to select them. E.g. Just grab a Pod name without needing to type or copy-and-paste. - -To start the interactive `kubectl` command builder, run `@Botkube kubectl` from the configured channel where Botkube is added. You can also use any of the [configured aliases](https://docs.botkube.io/configuration/alias) - for example, the default `k` one, as illustrated below: - -![Image 1: kubectl command builder](https://docs.botkube.io/assets/images/kc-cmd-builder-90ea740becbf2c0f126436c4a6c013bd.gif) - -### Limitations[​](#limitations "Direct link to Limitations") - -Keep in mind that the interactive command builder may not support all the commands that you can run just by typing them directly in a chat window. The following policies are applied: - -* Under verbs' dropdown, we display verbs that are defined under the `interactiveBuilder.allowed.verbs` configuration. - -* Under resources' dropdown, we display resources that are defined under the `interactiveBuilder.allowed.resources` configuration and are allowed for already selected verb. For example, for the `logs` verb we display only `pods`, `statefulsets`, `deployments`, and `daemonsets`. - -* For resources that are namespace-scoped, under namespaces' dropdown, we display `interactiveBuilder.allowed.namespaces` if defined. If static namespaces are not specified, plugin needs to have access to fetch all Namespaces, otherwise Namespace dropdown won't be visible at all. - -* The `kubectl` command preview is displayed only if the command that you built is valid, and you have permission to run it. diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__interactive-output-filtering.md b/hack/assistant-setup/content/docs.botkube.io__usage__interactive-output-filtering.md deleted file mode 100644 index c2d03c3..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__interactive-output-filtering.md +++ /dev/null @@ -1,34 +0,0 @@ -Title: Interactive output filtering | Botkube - -URL Source: https://docs.botkube.io/usage/interactive-output-filtering - -Markdown Content: -info - -Interactive output filtering is only available for the [Slack integration](https://docs.botkube.io/installation/slack/) that supports interactive messages. - -caution - -Using the interactive filter input field causes the command to be re-executed. Be careful when using it for read-write commands. This issue is tracked in [botkube#907](https://github.com/kubeshop/botkube/issues/907). - -Sometimes you can get long response from a certain command and you may want to filter that to see a subset of the actual result. For each communication platform, you can use the `--filter` flag at the end of your command. To learn more, see the [Flags](https://docs.botkube.io/usage/executor/#filtering-kubectl-output) section. - -If you use the [Slack integration](https://docs.botkube.io/installation/slack/) that supports interactive messages, there is another option to handle that: interactive output filtering. Interactivity is achieved via an input action text box where you can add your filter criteria as text and press the **Enter** button. - -### Long response filtering[​](#long-response-filtering "Direct link to Long response filtering") - -Output Filter input text box will be attached to your command response if response has more than 15 lines. Let's see an example for this situation. - -1. List pods with `@Botkube kubectl get pods -n kube-system`![Image 1: metrics_pods](https://docs.botkube.io/assets/images/output-filtering-get-pods-metrics-18c746eb2031cc45bc74a63389340b03.png) -2. Let's check the logs of `metrics-server` with `@Botkube kubectl logs -f metrics-server-7cd5fcb6b7-hzvq8 -n kube-system`![Image 2: metrics_logs](https://docs.botkube.io/assets/images/output-filtering-metrics-logs-b6007e41cbfcc6ef727f848a0cdd5808.png) -3. Notice that Filter Output is attached to response. Type `RequestHeaderAuthRequestController` to filter and press `Enter`. ![Image 3: metrics_filter_logs](https://docs.botkube.io/assets/images/output-filtering-metrics-logs-filter-a6e6cfc2918f182e1a29d16066d47198.png) - -Attachment response filtering[​](#attachment-response-filtering "Direct link to Attachment response filtering") ---------------------------------------------------------------------------------------------------------------- - -Command response is uploaded as text file once the actual size of response message reaches the limit of messaging platform. Let's take a look how Filter Output behaves for this situation. - -1. List the pods with `@Botkube kubectlc get pods -n kube-system`![Image 4: get_pods](https://docs.botkube.io/assets/images/output-filtering-get-pods-21073bfe8502243fe4b90b83b155b99a.png) -2. Let's check the logs of Traefik with command `@Botkube kubectl logs -f traefik-df4ff85d6-f2mkz -n kube-system`. Notice that, you might have different pod list, so please select a suitable one for your case. ![Image 5: pod_logs](https://docs.botkube.io/assets/images/output-filtering-get-pods-21073bfe8502243fe4b90b83b155b99a.png) -3. Since the response is big, it is uploaded as file and you can realize a reply thread. Please expand it to see filter output. -4. Assume we want to see log lines only containing `Configuration` word. Type `Configuration` in the Filter Output input box and click enter. You will see filtered result as a response. ![Image 6: filter_response](https://docs.botkube.io/assets/images/output-filtering-filter-response-5fed09008578a720a302892f2ab81293.png) diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__source.md b/hack/assistant-setup/content/docs.botkube.io__usage__source.md deleted file mode 100644 index 64e4ad1..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__source.md +++ /dev/null @@ -1,8 +0,0 @@ -Title: Source | Botkube - -URL Source: https://docs.botkube.io/usage/source/ - -Markdown Content: -While deploying Botkube, you can specify which [sources](https://docs.botkube.io/configuration/source) you want to enable. - -To check which sources are enabled, run `@Botkube list sources` diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__source__argocd.md b/hack/assistant-setup/content/docs.botkube.io__usage__source__argocd.md deleted file mode 100644 index 4d1fff3..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__source__argocd.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: ArgoCD | Botkube - -URL Source: https://docs.botkube.io/usage/source/argocd - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__source__keptn.md b/hack/assistant-setup/content/docs.botkube.io__usage__source__keptn.md deleted file mode 100644 index ae86ae5..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__source__keptn.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Keptn | Botkube - -URL Source: https://docs.botkube.io/usage/source/keptn - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__source__kubernetes.md b/hack/assistant-setup/content/docs.botkube.io__usage__source__kubernetes.md deleted file mode 100644 index 6f8a34b..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__source__kubernetes.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Kubernetes | Botkube - -URL Source: https://docs.botkube.io/usage/source/kubernetes - -Markdown Content: -Botkube allows you to consume `kubernetes` events on your Kubernetes cluster. By default, `kubernetes` plugin is disabled. See the [**Enabling source**](https://docs.botkube.io/configuration/source/kubernetes#enabling-source) section from the `kubernetes` configuration documentation. - -Once it is enabled, Botkube Kubernetes plugin will consume Kubernetes events and send them to configured platforms as shown below. - -![Image 1: Pod Created](https://docs.botkube.io/assets/images/pod-created-6f284a9fff8666c0a246af739ef33dbd.png) diff --git a/hack/assistant-setup/content/docs.botkube.io__usage__source__prometheus.md b/hack/assistant-setup/content/docs.botkube.io__usage__source__prometheus.md deleted file mode 100644 index 3d375ab..0000000 --- a/hack/assistant-setup/content/docs.botkube.io__usage__source__prometheus.md +++ /dev/null @@ -1,10 +0,0 @@ -Title: Prometheus | Botkube - -URL Source: https://docs.botkube.io/usage/source/prometheus - -Markdown Content: -**This plugin is available as a part of the Botkube Cloud offering.** - -Botkube is introducing new plugins with advanced functionality that will be part of the Botkube Team and Enterprise packages. These advanced plugins require cloud services provided by Botkube and are not part of the Botkube open source software. - -As part of this change, some of the existing Botkube plugins are being moved to a new repository. This repository requires authentication with a Botkube account. To continue using these Botkube plugins, create an account at [https://app.botkube.io/](https://app.botkube.io/) and configure a Botkube instance, or [migrate an existing installation with the Botkube CLI](https://docs.botkube.io/cli/migrating-installation-to-botkube-cloud). diff --git a/hack/assistant-setup/content/docs.botkube.io__versions.md b/hack/assistant-setup/content/docs.botkube.io__versions.md index 4decc04..f16a1fc 100644 --- a/hack/assistant-setup/content/docs.botkube.io__versions.md +++ b/hack/assistant-setup/content/docs.botkube.io__versions.md @@ -9,16 +9,14 @@ Markdown Content: [![Image 1: Botkube Logo](https://docs.botkube.io/images/botkube-black.svg) **Botkube**](https://docs.botkube.io/)[Documentation](https://docs.botkube.io/)[Community](https://docs.botkube.io/community/contribute/) -[1.10](https://docs.botkube.io/) +[1.11](https://docs.botkube.io/) * [Unreleased 🚧](https://docs.botkube.io/next/) -* [1.10](https://docs.botkube.io/) +* [1.11](https://docs.botkube.io/) +* [1.10](https://docs.botkube.io/1.10/) * [1.9](https://docs.botkube.io/1.9/) * [1.8](https://docs.botkube.io/1.8/) * [1.7](https://docs.botkube.io/1.7/) -* [1.6](https://docs.botkube.io/1.6/) -* [1.5](https://docs.botkube.io/1.5/) -* [1.4](https://docs.botkube.io/1.4/) * * * * * [All versions](https://docs.botkube.io/versions) @@ -31,7 +29,7 @@ This page lists all documented versions of Botkube. The latest stable version. -
1.10Documentation⏳ Loading...
+
1.11Documentation⏳ Loading...
### Next version (Unreleased)[​](#unreleased "Direct link to Next version (Unreleased)") @@ -43,12 +41,12 @@ Here you can find the documentation for unreleased version. Here you can find documentation for previous Botkube versions. -
1.9Documentation⏳ Loading...
1.8Documentation⏳ Loading...
1.7Documentation⏳ Loading...
1.6Documentation⏳ Loading...
1.5Documentation⏳ Loading...
1.4Documentation⏳ Loading...
+
1.10Documentation⏳ Loading...
1.9Documentation⏳ Loading...
1.8Documentation⏳ Loading...
1.7Documentation⏳ Loading...
### Archived Versions[​](#archived "Direct link to Archived Versions") Here you can find documentation for archived, no longer maintained Botkube versions. -
1.3Documentation⏳ Loading...
1.2Documentation⏳ Loading...
1.1Documentation⏳ Loading...
1.0Documentation⏳ Loading...
0.18Documentation⏳ Loading...
0.17Documentation⏳ Loading...
0.16Documentation⏳ Loading...
0.15Documentation⏳ Loading...
0.14Documentation⏳ Loading...
0.13Documentation⏳ Loading...
+
1.6Documentation⏳ Loading...
1.5Documentation⏳ Loading...
1.4Documentation⏳ Loading...
1.3Documentation⏳ Loading...
1.2Documentation⏳ Loading...
1.1Documentation⏳ Loading...
1.0Documentation⏳ Loading...
0.18Documentation⏳ Loading...
0.17Documentation⏳ Loading...
0.16Documentation⏳ Loading...
0.15Documentation⏳ Loading...
0.14Documentation⏳ Loading...
0.13Documentation⏳ Loading...
By continuing to use our site, you consent to Kubeshop using cookies in accordance with our [Privacy Policy.](https://botkube.io/privacy-policy)