Developers at Google have open-sourced a toolkit for managing Kubernetes configurations and workflows.
The toolkit, dubbed kpt (pronounced kept), was unveiled in a blogpost by software engineer Phillip Wittrock, and cloud solutions architect Vic Iglesias, yesterday. [So, this isn’t an April Fool’s Day prank)
They noted that Kubernetes configuration manifests were now an industry standard for deploying applications – and infrastructure – and were frequently combined into “bundles to create higher-level deployable systems as well as reusable blueprints”.
But because bundles can be fiddly, most teams faced with a task will swerve creating a bespoke one, and either fork another bundle, or use a packaging solution to generate manifests from code.
Which of course, throws up its own challenges, they continued. “For example, how does one update a forked template from upstream, or how does one apply custom validation?”
Wittrock and Iglesias’ answer is kpt which they described as “an OSS tool for Kubernetes packaging, which uses a standard format to bundle, publish, customize, update, and apply configuration manifests”. The tool features an “as data” architecture, and aims to be readable to “both humans and machines”.
It operates on a “git + YAML architecture” which means it should work with existing tools, frameworks and platforms.”
There are four key command grounds. Kpt pkg handles resource configuration, allowing configurations to be fetched and updated using YAML. Kpt cfg is a CLI UX layer on top of YAML, to display and modify configuration files. Kpt live covers apply related commands for deploying local config packages to a cluster. Kpt fn covers the generation, transformation and validation of configuration files, allowing organisations to develop their own tools and automation to apply against package data.
An FAQ on the project’s website, said the framework would support “plugging in solutions which generate or manipulate configuration, e.g. from DSLs and templates” adding this could be done using functions.”
The framework is currently in v0.1.0, and has been open sourced under the Apache License 2.0.