Kuberfest Framework (WIP)
A lightweight framework for fast cloud development.
Kuberfest lets you easily run a local Kubernetes environment, test your deployment in Minikube, and export it as a YAML for a production Kubernetes cluster deployment.
The framework attempts to solve the following real world problems through automation:
- Differences between dev and production environments are a source for bugs.
- Syncing the dev environment between team members is challenging and often results in breaks.
- Maintaining a complex "setup" readme file is tedious and often results in outdated information.
- New team members are required to waste many hours on manually installing software and configuring their environments.
- Copy-pasting settings such as environment variables is annoying and often results in mistakes.
Kuberfest is programming language and framework agnostic. Kuberfest itself is built in Python 3.6.
0.0.1a (do not use this for anything yet)
Tested on 'MacOSX 10.13.6'
TODO: pip package installation instructions
An executable Python 3.6 script for running Kuberfest.
This is the framework folder, contains all base framework logic.
On your own project (demo project for example)
This folder needs to be put into your project (in our example: dotnet_demo_project).
Contains Kubernetes deployments yamls.
Can extend the framework's base commands into project-specific commands and automation.
For example, the
--init_db command isn't part of Kuberfest, but actually an extention written specifically for the demo project.
Will contain the final yaml which is then deployed in Kubernetes.
Can contain variables to be re-used in the Kubernetes yamls
Contains important definitions about your project.
How to get the demo project running
- Install base dependencies mentioned above.
- As with most Python projects, it's best to use a container such as
virtualenvto avoid conflicts with other projects.
- Create a folder and copy the content of the
- Open a terminal and navigate into it.
pip install kuberfest
kbf --helpto see that you're able to display the help.
kbf dotnet_demo_project --start_minikube --deploy --development --init_dbwhich will make sure minikube is started, generate and deploy the yamls, and init the db.
- You should see the message:
You can access the app through: http://x.x.x.x:x/api/values. Copy that URL to your browser and see if you're getting a response from the API.
If you got all the way here, congrats! If not, drop me a note.
This framework is developed as a way to thoroughly study Kubernetes and on-the-way automate some of the processes in professional projects I'm working on. If you have any comments on the way I'm doing things don't hesitate to shoot me an email :)
What do I need to know before using Kuberfest?
- Learn how to dockerize your application.
- Learn how to configure a kubernetes cluster.
- Install the base dependencies mentioned above.
- Optionally, run a Kubernetes cluster, such as Amazon EKS. Please note that it's very expensive.
What's planned for the future?
Please refer to TODO.md for a simple project roadmap.
Does my project need to be written in Python?
Nope, use any programming language or framework.
Why is the demo project written in DotNet Core?
This is simply a first of multiple POCs that will come later once the framework is more mature. I like C# and wanted to understand the Entity Framework on the way.