Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Category Vision - Kubernetes Configuration

Kubernetes Configuration

Configuring and managing your Kubernetes clusters can be a complex, time-consuming task. We aim to provide a simple way for users to configure their clusters within GitLab; tasks such as scaling, adding, and deleting clusters become simple, single-click events.

Related grab-bad epic https://gitlab.com/groups/gitlab-org/-/epics/253

Interested in joining the conversation for this category? Please join us in our public epic where we discuss this topic and can answer any questions you may have. Your contributions are more than welcome.

What's next & why

Users can easily install applications with our Kubernetes integration, however, in order to make our integration viable we want to provide the ability to uninstall application from the cluster as well as provide a viable deployment model where each environment is assigned to a unique namespace.

  1. Uninstall GitLab-managed applications
  2. Provide separate namespaces for each project environment

These features will take our Kubernetes integration to viable maturity.

Maturity Plan

This category is currently at the "Minimal" maturity level, and our next maturity target is Viable. See the Kubernetes Configuration maturity update epic for more info. Deliverables:

Competitive landscape

Kubespray

Kubespray provides a set of Ansible roles for Kubernetes deployment and configuration. Kubespray can use AWS, GCE, Azure, OpenStack or a bare metal Infrastructure as a Service (IaaS) platform. Kubespray is an open-source project with an open development model. The tool is a good choice for people who already know Ansible as there’s no need to use another tool for provisioning and orchestration. Kubespray uses kubeadm under the hood.

Kubeadm

Kubeadm is a Kubernetes distribution tool since version 1.4. The tool helps to bootstrap best-practice Kubernetes clusters on existing infrastructure. Kubeadm cannot provision infrastructure for you though. Its main advantage is the ability to launch minimum viable Kubernetes clusters anywhere. Add-ons and networking setup are both out of Kubeadm’s scope though, so you will need to install this manually or using another tool.

Kops

Kops helps you create, destroy, upgrade, and maintain production-grade, highly available Kubernetes clusters from the command line. Amazon Web Services (AWS) is currently officially supported, with GCE in beta support, and VMware vSphere in alpha, and other platform support is planned. Kops allows you to control the full Kubernetes cluster lifecycle; from infrastructure provisioning to cluster deletion.

Conjure-up

Conjure-up is a Canonical product which allows you to deploy “The Canonical Distribution of Kubernetes on Ubuntu” with a few simple commands. It supports AWS, GCE, Azure, Joyent, OpenStack, VMware, bare metal, and localhost deployments. Juju, MAAS, and LXD are the underlying technology for Conjure-up.

Analyst landscape

This category doesn't quite fit the "configuration management" area as it relates only to Kubernetes. No analyst area currently defined.

Top Customer Success/Sales issue(s)

Test Kubernetes and Auto DevOps features on OpenShift

Top user issue(s)

Installing Helm Tiller on Kubernetes via gitlab UI is impossible behind the proxy

Top internal customer issue(s)

Allow advanced configuration of GitLab runner when installing via helm chart

Top Vision Item(s)

Allow user to uninstall gitlab managed apps