Replicated Runthrough: KOTS 101

Treva Williams
 | 
May 22, 2021
KOTS title card

Greetings and welcome back to the Replicated Runthrough series, where we teach you about each project in the Replicated catalog in simple terms. This week’s episode will be on KOTS – a.k.a. Kubernetes Off The Shelf software. Now judging by the name you’re probably assuming that KOTS is another Kubernetes wrapper, similar to Red Hat OpenShift, MetalK8s, or Rancher – which technically it can be with the help of kURL – but KOTS is actually an extremely powerful tool for installing and managing the applications deployed on existing Kubernetes clusters via a handy-dandy kubectl plugin.

As with most projects in the Replicated catalog, KOTS applications can be distributed to as few or as many clusters as desired using a short cURL URL, sort of like the example below:

[.pre]# curl https://kots.io/install | bash# kubectl kots install my-cool-application/stable[.pre]

Now you might’ve noticed the /stable attached to the name of my-cool-applicationand you’re probably wondering what that’s about. When a new application is released in the vendor portal, three channels are created to aid developers in serving all of their clients’ needs, from the “bleeding edge is best” daredevils to the “safety first” types who don’t update until they’re absolutely sure the platform is 100% stable. 

As you’ve probably already guessed, those are Stable, Beta, and Unstable channels – customizable both in name and amount of channels as is almost everything else in the vendor portal, but inline by default with naming conventions used in most software repositories. The channels provide an ideal system for distributing multiple versions of a single app in various stages of the development phase and also provide a way to “promote” each release until it’s eventually marked as stable with the click of a button.

In addition to simplified app distribution, KOTS offers an easy-to-manage licensing system enabling developers to distribute applications specific to their terms – or the terms of their contract with a client – with automatically generated licenses from the vendor portal that can be customized to your needs using custom fields.

Kots image

KOTS even provides solutions for distributing your applications to high-security environments by supporting airgapped installation. Everything the client needs to get the most out of your KOTS-driven application, from license and config files to the kubectl plugin itself are compressed down into a handy tar.gz archive ready for launch.

If that’s not enough, backups and restorations can be managed using KOTS snapshots powered by Velero. Backups can be set to snapshot as much or as little of an application as desired and backup storage location using simple YAML configuration files maintained from the vendor portal. 

This enables you, as a software vendor, to ensure that your clients always follow best practices and keep a backup of crucial configuration files whether they know it or not, and may also endear you to enterprises unfortunate enough to lose their un-backed-up cluster to some unforeseen disaster that you just so happen to have backed up yourself. 

If you want to know more about KOTS – or if you’re more of a visual learner – head on over to the Replicated YouTube channel to check out the Tips-&-Tricks series by my colleague Fernando. He does a fantastic job of demonstrating key KOTS features from start to finish in under 10 minutes. Stay tuned to the Replicated blog for more Replicated Rundown episodes. See you then!