-
Hordur Freyr Yngvason authored
With this change, any existing cluster will continue to use Helm 2, while all new clusters will use Helm 3 for GitLab-managed apps. Note that this only applies to GitLab-managed apps -- Auto DevOps uses its own Helm version on a per-project basis. The diff looks big because we split the Helm command classes into two modules, V2 and V3, to allow them to evolve independently as long as they both implement the same minimal interface. The command classes in the V2 module should be exactly equal to their old counterparts, besides the addition of BaseCommand#helm_version, which the common Kubernetes pod generator uses to resolve the container image. The command classes in the V3 module are ports of the relevant subset of commands. There are more classes in the V2 module because we carried along support for in-cluster Tiller. This is currently unused, but may be used to clean up Tiller if we decide to offer Helm 2 to 3 migration in the product later on. See also https://gitlab.com/gitlab-org/gitlab/-/issues/120021
6eed9844