A helm component permits to deploy existing Helm Charts as application components. Notice that the support is still in beta as the compatibility between the Open Application Model and the resulting component is still being improved due to some limitations with general deployment of Helm Charts.
The helm component will download the chart and deploy it in the selected environment. Notice that the standard Kubernetes limitations apply, so some of the elements that an arbitrary Helm Chart may be trying to create could potentially fail as some entities are restricted in multi-tenant environments. Creating cluster level entities for example will not be possible.
Additionally, some of the inner limitations of Helm difficult tracking the resources generated by a chart, so the application may appear with a WARNING status if the deployed entities cannot be identified. To improve this, we recommend to include two extra labels when deploying the chart. Adding labels depends on the chart specifics, so not all of them support that option. To improve tracking, add the following labels:
The following snippet contains an example application with the available options to deploy a chart:
apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: my-app spec: components: - name: my-component type: helm properties: repoType: "helm" # (Required) helm | git | oss | oci (helm by default) pullInterval: "5m" # (Required) interval to check for updates (5m by default) interval: "30s" # (Required) interval to reconcile the Helm release (30s by default) url: "https://<the_chart_url>" # (Required) url secretRef: "secret-name" # (Optional) the secret name that contains the auth credentials timeout: "5m" # (Optional) operations timeout installTimeout: "10m" # (Required) install operation timeout (10m by default) git: # (Optional) branch: git-branch # (Required) branch to checkout oss: # (Optional) bucketName: "bucket-name" # (Required) the oss bucket's name provider: "generic" # (Required) generic | aws. aws for retrieve credentials from the EC2 # service when credentials not specified, in other case (Minio, # Amazon S3, Google Cloud Storage, Alibaba Cloud OSS) # generic (generic by default) region: "regiona" # (Optional) buket region chart: "<chart_name>" # (Required) - chart name for helm resource # - relative path to helm chart for git/oss # - relative path for chart package version: "*" # (Required) chart version (* by default) releaseName: "release-name" # (Optional) release name retries: 3 # (Required) times to retry when install or upgrade fails values: # (Optional) chart values key1: key11: key111: value111