Monokle 101

Monokle 101

·

4 min read

What is Monokle? — Managing Your Kubernetes Manifests

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.png

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.png

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.png

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.png

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.png

Working with Kustomize

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

image.png

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.png

Working with Helm Charts

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

image.png

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.png

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.png

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.png

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.png

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.png

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.png