Cluster Management Toolkit for Kubernetes (CMT) is a set of tools intended to simplify installation and maintenance of Kubernetes clusters. It provides tools to setup clusters and manage nodes, either by specifying the configuration directly on the command line, or through template files.
The curses-based user interface (cmu) presents the various Kubernetes objects (such as Pods, Deployments, ConfigMaps, Namespaces, etc.) in a way that tries to obviate all object relations. This includes both direct relatations such as those defined in ownerReferences, selectors, and volume mounts, but also nested relations, such as from Pods directly to a CronJob or Deployment.
The UI also tries its best to improve the viewing experience for the data; the Kubernetes objects themselves can be viewed as either JSON or YAML, many of the ConfigMaps in text format can be viewed with syntax highlighting, and base64-encoded text-documents can be decoded before they're viewed.
Finally container logs are parsed (sometimes in a rather opinionated manner), restructed, and highlighted based on the severity of the messages. Structures can be unfolded, repeating lines can be deduplicated, debug messages and traces are hidden by default, etc.
Currently a bit over 900 object types are supported to varying levels, over 270 different pod log files are defined (most of them matching multiple signatures), and close to 50 ConfigMap data types, many of them with syntax highlighting.
The inventory tool, cmtinv, allows for managing the Ansible inventory, but also running of playbooks.
Installation and management is done through a combination of Ansible playbooks, Python scripts, a curses-based user interface, as well as calls to kubectl or kubeadm whenever necessary.
Usage documentation for CMT is available here.
