Monokle 101 - Managing Your Kubernetes Manifests

Kubeshop - Apr 20 '22 - - Dev Community

This post originally published on the Kubeshop blog.

Managing Kubernetes manifests can be a difficult, time consuming task if you don’t have an easy way to manage them at scale. That is, if you don’t have Monokle.

Monokle is an open source desktop tool that takes the grunt work out of working with your Kubernetes manifests, it gives you a high-level view of their contained resources and relationships with the options to edit, refactor, preview, diff, and navigate before deploying them to your clusters.

And you don’t need more than a working knowledge of YAML to do it.

Monokle’s user interface includes a smörgåsbord (this writer is Swedish...) of components to help you work with your manifests;

  • A resource navigator to help you navigate your resources
  • Intelligent source and form editors for your resource YAMLs
  • Dedicated views and preview functionality for Kustomize and Helm Charts
  • Cluster view and compare functionality
  • Templates to help you get started with new resources

Image description

And so much more!

Getting Started

Upon installing and opening Monokle, you might begin by opening an existing folder containing any number of manifest files. Monokle’s UI is built to help you easily visualize their contained resources and relationships between them.

Image description

With a simple hover of your cursor you can visualize incoming links and outgoing links to your resources, clicking into any of these links will navigate you to the target resource.

Image description

Monokle validates all resource links it finds and indicates to the user whether there is an error - making it easy to find - and fix - any invalid links in your set of resources.

Image description

Beyond links, if you make changes to names, references, or any other line items within your resources source, Monokle will immediately alert you if anything you do is inconsistent with the required syntax or schema.

If you’re not fluent in YAML most resources will have a form-based editor allowing you to make changes to any value in a simple and easy-to-understand format. Those changes are reflected within the source code as you work.

Image description

Working with Kustomize

Monokle has built-in support for Kustomize - allowing you to see all customizations and patch files detected in your folders:

Image description

An extremely powerful functionality is the possibility to preview a kustomization; Monokle will run Kustomize and show you all the resources that were generated by Kustomize in the resource navigator - including links, errors and warnings for each resource. You can easily update the kustomization and update your preview to interactively debug and validate the output created by Kustomize before you deploy these to your cluster.

Image description

Working with Helm Charts

Monokle offers a similar function for Helm - allowing you to visualize your Helm charts and their values files:

Image description

Just like for Kustomize you can preview a Helm Chart which will run Helm in the background and show you the generated resources in the resource navigator:

Image description

You can interactively make changes to your values file and recreate the preview at any time, allowing you to validate the output of Helm before applying it to your cluster.

Connecting to Clusters

Not only does Monokle allow you to work with local manifest files - it also allows you to explore and work with resources in your cluster - including all the link and content validation available for local resources.

Image description

Since the number of resources in your cluster can be overwhelming, Monokle allows you to filter your resources through different criteria via the central Navigator column.

Image description

Another useful tool when working with a cluster is the Diff functionality - allowing you to both compare individual resources to those in your cluster - or you can compare an entire set of resources to see how they differ from those already deployed in your cluster.

Image description

In either case, you can easily deploy your local resources after diffing - or replace your local resources with those in your cluster instead.

Creating Resources

While much of the above has been focused on existing resources either locally or in your cluster, Monokle has a number of features to help you create new resources from scratch, including a library of templates that can help you quickly get up and running with simple Kubernetes objects:

Image description

Using a template will prompt you for basic information required to generate the corresponding resources and will result in ready-to-deploy resources that can be deployed to your cluster(s) without any further modifications.

Image description

You’re just getting started!

We’ve just scratched the surface of all the functionality provided by Monokle to make your everyday manifest-related tasks easier - check out our documentation to see what else you can do - or download Monokle from GitHub and join our Discord community to ask questions and suggest improvements.

Thank you!

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .