The Quest for High-Quality Kubernetes Deployments
Whether you are starting to work with Kubernetes or are a seasoned platform engineer managing a sophisticated GitOps cycle, you will come across the challenge of dealing with deployment artifacts, manifests, Kustomize, Helm-charts and their YAML syntax to make sense of it all.
The more complex the environment, the more exponentially complex it is to figure it out. Tools for inspecting and understanding your Kubernetes clusters are good and plenty, but integrated visual tooling for predeployment tasks related to creating, editing, validating and debugging Kubernetes configurations is scarce. A generic IDE will have some support natively or via plugins, but those are blunt Swiss Army knives, which have no integrated and coherent Kubernetes awareness.
In Kubeshop, we have interviewed multiple people — platform engineers, site reliability engineers (SREs), DevOps, developers and their leaders. Below are some of the common challenges we have heard from them:
- I’m looking at all these Kubernetes YAML files, Kustomize overlays and Helm charts, trying to understand how they relate to each other.
- When I’m making changes to any of these, I want to be sure I don’t break any dependencies or runtime policies.
- All I care about is our team’s ability to quickly and consistently define the desired state of their applications. The more templates and guardrails I can put into place, the happier I am.
- I would love for us to adopt a GitOps approach, but I need to make sure we maintain the quality of our applications as the pace and velocity of our Kubernetes deployments increases.
- We would love to implement policy management, but defining compliant configurations is harder and slower than we expected.
- I need to quickly inspect and troubleshoot my cluster configurations, and when things go wrong, I need to understand how and why. Comparing configurations across clusters, namespaces, branches and commits is key to this process.
VP or CTO
- What are we doing to help our teams focus on delivery of applications that drive our business, instead of getting dragged down by the intricacies of Kubernetes configuration management and workflows?
Conclusion: Whether we call it Kubernetes “shift left” or something else, the more insight you get into Kubernetes configurations earlier in the life cycle of development and deployments, the easier they become to manage. Kubernetes is complex enough with a steep learning curve. Why not make it easier by allowing developers to be efficient with tools that are built for the purpose, helping to visualize things for easier navigation, and that integrate other best-of-breed open source projects like Helm, Kustomize and Open Policy Agent (OPA)?
These and many other core challenges created a foundation for Monokle as a unified visual tool for authoring, analysis and deployment of Kubernetes manifests.
Monokle Desktop has been gaining more traction, as one of the things crucial to any successful software development is collaboration.
Hello, Monokle Cloud!
Recently the Monokle team announced the initial release of Monokle Cloud, a browser-based version of the existing and popular Monokle Desktop.
Just like its desktop counterpart, Monokle Cloud helps developers, DevOps and platform engineers improve the quality of their Kubernetes deployments by providing powerful features of Monokle Desktop for free in any modern browser. It integrates tightly with GitHub to increase productivity and cross-functional collaboration through sharing capabilities promoting faster and easier peer previews, comparisons and validations.
Below is a summary of Monokle Cloud:
What Is It?
Monokle Cloud is a free, browser-based tool for exploring and analyzing Kubernetes configurations and optimizing GitOps workflows.
Who Is It for?
Monokle Cloud is for any engineer working with Kubernetes configurations stored on GitHub, be it simple YAML deployments to full GitOps repositories.
How Does It Make Your Kubernetes/GitOps Life Easier?
Monokle Cloud offers functionality that helps teams improve the quality of their Kubernetes configurations and streamline predeployment workflows:
- Navigate and understand your Kubernetes resources and their dependencies.
- Validate your Kubernetes configurations against OPA policies, JSON schemas and resource constraints.
- Preview and validate the output of Helm and Kustomize.
- Compare complete sets of Kubernetes configurations across branches, commits and previews.
- Collaborate with stakeholders by integrating with GitHub and sharing direct links to any of your findings.
How Does Monokle Cloud Integrate with GitHub?
Monokle Cloud integrates with GitHub in several ways:
- All features mentioned above are available for any public GitHub repository.
- Actions for opening the GitHub editor or creating GitHub issues for validation errors are integrated into the Monokle Cloud interface.
- A GitHub action for validating all aspects of your Kubernetes resources as part of your GitHub workflows is available on GitHub: https://github.com/kubeshop/monokle-action.
- A Chrome extension that injects Monokle Cloud actions into the GitHub user interface is available on GitHub (and soon in the Chrome Store): https://github.com/kubeshop/monokle-chrome-extension
Watch this four-minute video by one of our lead engineers, Wito Delnat, for a walkthrough, and see for yourself how Monokle Cloud helps make Kubernetes configuration management quick and easy.
Or try one of the direct links below to see Monokle Cloud in action. (You will be asked to sign in to Monokle Cloud at least once.)
- The default branch of the opencost repository.
- The output of Kustomize for the helloWorld kustomization in the official Kustomize repository.
- The output of Helm for the MariaDB Helm chart in our demo repository.
- Comparison of two release branches in the Argo CD repository.
Where can I get Monokle Cloud?
- Go to app.monokle.com using a modern browser (Chrome, Safari, Edge, Firefox).
- Sign in with your GitHub account (we only ask for minimal permissions).
- Select or copy and paste the URL of any public GitHub repository containing Kubernetes configurations into Monokle Cloud.
And that’s it!
Questions? Suggestions? Get in touch!
Head over to the #monokle-cloud channel on our Discord Server to get in touch, report issues, ask for features, talk about the weather, etc. We’d love to hear from you!