Evaluate KOTS as a solution for deploying GitLab in Kubernetes
Overview
KOTS (Kubernetes Off-The-Shelf), a product by Replicated, manages certain aspects of operating applications in Kubernetes. KOTS aims to make it easier to manage the release of Kubernetes applications and provides end user features. Some of the functionality offered by KOTS is a duplication of functionality already built by GitLab, but some functionality could provide significant customer value beyond what we are able to provide today and would extend the functionality of the Helm chart. Replicated recently open sourced KOTS which makes it a more feasible option for GitLab.
Proposal
- Evaluate customer demand, value, and ROI for building a KOTS deployment of GitLab.
- Some of the functionality offered by KOTS is functionality we were eventually planning to build. Evaluate how much quicker we could get that value to customers with a KOTS offering.
Feature comparison
KOTS feature | Available through the Helm install? | Comments |
---|---|---|
Packages Kubernetes with GitLab | No | |
Deploys GitLab as a Kubernetes cluster | No | Orchestrator could eventually do this. Would save us about one month of work and speed up time to offer this |
Step-through UI to deploy and configure GitLab on Kubernetes | No | Today this is done directly in configuration files. This could potentially add some guardrails to ensure correct and complete configuration |
Persistent configuration customizations | Yes? (some manual work) | End user customizations to configuration persist across upgrades |
Manages diffs on forked charts | No | KOTS + Unfork apply customizations on top of a Helm chart. E.g. if end users have added annotations (adding a service account for a Vault integration) |
Simplified deployment in air-gapped environments | Partially | GitLab has created UBI-based images that can be built in air-gapped environment but requires manual steps |
Bundled logs for support | Yes | Support has created KubeSOS |
Preflight checks | No | Checks the user's environment before deployment |
Configuration validation | Some | Checks the validity of user-provided configuration parameters (comment) |
License manager | Yes | GitLab already offeres this |
Versioned application updates | Partially | Version details and update notifications are available |
Key value
- A self-contained bundle that pulls in all the UBI images, configures them, and put them on a local registry for use in air-gapped environments. This would save end users from doing a
docker pull
of all 14 images and manually configuring them. Building something like this ourselves would be approximately 2-3 months of full-time work for a Distribution engineer. - A walkthrough guided configuration that prompts the user for configurations to support their chosen deployment. E.g. use built-in postgres or configure an external postgres. We could eventually build support for this into the Orchestrator but it would be a major effort and not an immediate priority.
Open questions
- How do we sell it? Would it be a Marketplace offering? Does their licensing model fit with our per user licensing?
- How do we support it? How does a customer know when to call GitLab Support or Replicated support?
- Is there enough customer interest to justify the effort? Ask at a CAB to see if anyone has looked into KOTS or be interested in packaging with KOTS. Have TAMs/Support had any requests for something like this?
- How much are we duplicating by using their dashboards. e.g. users need to manually load monitoring pieces into the dashboard, or can we preload that?
- We need to test using it at different scales based on the reference architectures
- What similar products exist and how do they compare?
Edited by Adam Mulvany