• Hordur Freyr Yngvason's avatar
    Use Helm 3 for GitLab-managed apps in new clusters · 6eed9844
    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
application_core.rb 2.43 KB