TrueNAS SCALE Chart Structure
This is a general synopsis about the structure of a SCALE App and/or Helm Chart, it does not directly reflect TrueCharts specific settings.
The following files are generally considered to be a "normal" Helm chart:
charts/ # Directory containing dependency charts
Chart.yaml # Required Helm chart information file
README.md # Optional: Helm Readme file (will be rendered in TrueNAS SCALE UI as well)
templates/ # A directory of templates that, when combined with values.yml will generate K8s YAML
values.yaml # The default configuration values for this chart
The following files are specific for TrueNAS SCALE:
app-readme.md # TrueNAS SCALE Specific: Readme file for display in TrueNAS SCALE UI, automatically generated
questions.yaml # TrueNAS SCALE Specific: File containing questions for TrueNAS SCALE UI
ix_values.yaml # Hidden configuration values when installing using TrueNAS SCALE
item.yaml # Contains generic information about the App for the TrueNAS SCALE UI
See the upstream Helm chart developer reference for a complete walk through of developing charts.
To convert an upstream chart to take advantage of TrueNAS SCALE enhanced UX, first create an
This file among other catalog item information provides a list of categories that this chart fits into. This helps users navigate and filtering when browsing the catalog UI.
$ cat charts/<train>/<chart name>/SCALE/item.yaml
Then add a
questions.yaml file to prompt the user for something.
- name: "Container Images"
description: "Image to be used for container"
- variable: image
description: "Docker Image Details"
group: "Container Images"
- variable: repository
description: "Docker image repository"
label: "Image repository"
- variable: tag
description: "Tag to use for specified image"
label: "Image Tag"
- variable: pullPolicy
description: "Docker Image Pull Policy"
label: "Image Pull Policy"
- value: "IfNotPresent"
description: "Only pull image if not present on host"
- value: "Always"
description: "Always pull image even if present on host"
- value: "Never"
description: "Never pull image even if it's not present on host"
The above will prompt the user with 2 text fields and a dropdown in the UI getting details for image configuration in a helm chart. More information about questions.yaml is available here