Official support program for Kubernetes versions/distributions

Kubernetes usage across our customers is growing rapidly, and we need to be able to provide users with some assurance about which versions & "distributions" will work.

The current model of "We test on GKE, others may work as well" will not be tenable for long:

  1. While GKE is a great managed k8s service, it is not the most common way to run k8s
  2. If someone finds out that GitLab works on another flavor, there is no guarantee it will continue to work
  3. As our Kubernetes and PaaS features mature, we will continue to get more interest and partnership requests from k8s service vendors who want to parter

To solve these challenges, I would like to propose that we start work on defining an official support program.

Feature coverage

In short, all GitLab k8s features should work.

Note: This should not preclude us from introducing a new feature which may only work on a single "distribution", for example our initial GKE cluster provisioning support.

  • Deploying and maintaining GitLab on a given version/distribution
  • Integrating the cluster with GitLab and deploying apps to it using Auto DevOps
  • Supporting k8s features like runner, terminal, pod logs, monitoring, etc.

Requirements for official support

In order to be considered officially supported, this is what must be done:

  • Documentation covering all GitLab feature areas noted above.
  • Document the tested settings, if different than default.
  • Permanent test cluster(s), so that GitLab can validate everything works
  • Addition of the cluster to GitLab CI / GitLab QA test to ensure that all features continue to work going forward
  • Support for standard Kubernetes features. (No forks.)

Path to becoming officially certified

For new partners / distributions, we should define the process to achieving supported status.

  1. Contact GitLab Alliances team
  2. Critical mass of customer interest, or sufficient product value to justify the work. Potential alternative to consider here is for a partner to agree to fulfill the requirements.
Edited by silv