Create a long-running cluster where the latest Botkube is deployed
Overview
We should create a long-running cluster where we deploy Botkube each time when there is a new commit on the main branch (PR is merged).
We can configure this instance to work on dedicated Slack and Discord channel on Kubeshop workspaces.
Acceptance Criteria
- Create a managed Kubernetes cluster that dev-team can access
- Use as less resources as possible (probably 3GB of RAM and 2 CPUs will be enough)
- Deploy the latest Botkube on it
- Prepare CI pipeline to run the
helm upgradefor each new commit on themainbranch - Botkube instance is configured with dedicated channels on Slack and Discord workspaces (from Kubeshop)
Out of scope: run integration tests after upgrade
Reason
The #playground channel on Botkube Slack workspace will be killed by the end of the year or earlier. After implementing the scope of this issue, all of us will be still able to play with the latest available version.
Another benefit is that we will see how BotKube behaves when it’s deployed on a long-running cluster. Later we could deploy there some sample app to see how it’s watched etc.
If we have it deployed on such cluster, we will have a chance to notice also some frustrating behaviors before cutting the release.
Suggestions:
- by @brampling: "It fits a 4-node cluster in Oracle cloud's free tier: https://github.com/jpetazzo/ampernetacle"
- by @huseyinbabal: "we can use gke autopilot, no need to manage nodes, only deal with k8s resources https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-overview"
Unfortunately, ampernetacle doesn't work anymore, but https://github.com/garutilorenzo/k3s-oci-cluster is totally fine. Reach out to me if you need any help as I already used it to spawn one cluster 👍