Skip to content

Introduce vendored Helmfiles and charts

João Alexandre Cunha requested to merge feature/vendor-helmfiles-in-repo into master

As part of the effort (gitlab-org/gitlab#327908 (closed)) to Move all responsibilities of cluster applications into the project template.

We've decided to give the users the full power and responsibility of managing their own Helmfiles. For this change, will use the cluster-applications:v1.0.0 which won't have the chart built-in anymore. See the work being done for this new image here: gitlab-org/cluster-integration/cluster-applications!150 (merged)

Those configurations related to the config.yaml file and all that logic to allow the merge of values got removed from those Helmfiles. This logic is not needed anymore since the files are no longer locked inside the docker image and the user has full control of them over their project template repository.

Also, it's worth noting that we're removing Ingress WAF which is deprecated.

Another important point is that the Helmfiles being included here were tested to work only against Helm3, which is expected from the cluster-applications v1.0.0 .

/cc @hfyngvason @zmartins

Manual QA

  1. I've deployed ADO through https://gitlab.com/Alexand/min-ruby-app-mgmt-proj/-/pipelines

  2. I've installed Helm v2 apps this cluster management project: https://gitlab.com/Alexand/min-ruby-app-mgmt-proj/-/pipelines

  3. I've followed the documented Helm 2-3 migration steps for each app:

    1. convert the release
    helm 2to3 convert --release-storage configmaps --tiller-out-cluster --tiller-ns gitlab-managed-apps "release_name"
    1. cleanup Helm2 configs
    helm 2to3 cleanup --skip-confirmation --release-storage configmaps --tiller-out-cluster --tiller-ns gitlab-managed-apps
  4. I've created a new cluster management project with this new project template to test and apply Helmfile over the ugpraded Helm v3 apps: https://gitlab.com/Alexand/min-ruby-app-mgmt-proj-helm-3/-/pipelines

  5. Take note of the values for each release and add to values.yaml of the new project template

    helm get values release_name -n gitlab-managed-apps -a --output yaml | pbcopy
  6. Also make sure the version of the release on the Project template is the same as the one I've release with Helm v2.

  7. Apply the CI for the new project template and validate that the diffs were not significant and apps still work.

For the last step there are a set of failed CM installs while I was trying to install with latest CM. It worked after I've decided to keep the current old GMA CM version. See discussion.

Edited by João Alexandre Cunha

Merge request reports