Over the last few months I've been spending a lot of time building for Kubernetes and OpenShift while working as a Platform Engineer. Almost every lab started the same way.
- Create a Deployment.
- Create a Service.
- Create a ConfigMap.
- Maybe a Secret.
- Sometimes an Ingress.
Repeat.
Then do the same thing again for another application.
An idea stemmed out of a conversation I had with a developer friend who seemed visibly frustrated over this. To be honest, he had fair point - Remembering how to right a manifest to test their application than to concentrate on writing a better application. IDE's help up to an extent but I didn't want to argue. So I thought what if we can develop something that has a UI, asks for options and generates a YAML out of it. I had written something in perl more than a decade back to generate an Linux kickstart file which were on similar lines.(At that moment Perl was a thing!)
I thought why do something similar to that and write something in Python instead(Also, since I'm learning python it made sese to choose python). And something that can assimilate into the current GitOps flow.
The idea was never to replace a dashboard . Just provide a minimalistic approach to the developers and engineers whilst they concentrate on their niche instead of pulling their hair over kubernetes manifest syntax.
The final architecture:
The application currently uses Python's built-in HTTP server together with HTML, CSS, JavaScript and SQLite.
Also, it's debatable why i didn't chose Django. More on it some other day😁.
The code lives here: https://github.com/ashishnair86/mani
Since the application itself is intended for Kubernetes users, it made sense to package it as a Docker container.
The image can be found here: https://hub.docker.com/r/ashishnair/manifest-studio. As of now, a docker image does not make that much of sense as the app itself does not require anything more than the standard python modules. Or a moo-point as Joey Tribbiani would have said 😂
The first version intentionally focuses on Deployments and the resources commonly created alongside them.
Current features include:
- Deployment generation
- Namespace generation
- Service generation
- ConfigMap generation
- Secret generation
- Ingress generation
- Horizontal Pod Autoscaler generation
- Optional readiness and liveness probes
- User authentication
- Manifest history
- YAML download
- GitHub integration
Few words about the UI:
Whatever entries you make in the left pane will reflect immediately in the right pane.
Once you register, it also keep an history of your manifests if you select "Save History" :
Push to github allows to you do exactly what it says:
And if your CI/CD tool is configured poll SCM or If you configured webhooks your pipeline should kick-off after the commit:
I deliberately kept the scope small. Building one feature well teaches far more than trying to support every Kubernetes resource from day one.






Top comments (0)