Skip to content

Better Helm chart handling #420

@gainsley

Description

@gainsley

There are a bunch of improvements we can make to make it easier to deploy Helm chart based applications. Helm is becoming the defacto standard for deploying applications.

  1. The format of the imagepath is not obvious or properly documented for a helm chart (it's supposed to be repo-path:chart). Recommend to separate the repo-path and the chart name into separate fields, perhaps giving them their own dedicated fields.
  2. The values yaml is specified as a configfile of type HelmCustomizationYaml. Again, it's not obvious from the API how to set this. I think it would be better for the App to have a dedicated field for the helm values yaml. This should also be on the AppInst, not the App.
  3. Helm app instances should have a ResourceQuota on the namespace set to limit their resources like other AppInsts
  4. Installing a helm chart instance (pkg/k8smgmt/helm.go:CreateHelmAppInst) should be done with a single call to "helm install" including the repo path, rather than first adding the repo with "helm repo add" and "helm repo update".
  5. Helm install can take as an argument a namespace. This should allow us to install helm applications to their own namespace, allowing us to deploy helm apps in a multi-tenant cluster. We need to test what the behavior is for a helm app that wants to create its own namespaces, if helm install specifies a single namespace. We probably need to use Kuberentes RBAC to ensure the app isn't able to reach outside of its own namespace (this is needed for apps in general, not just helm).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions