Helm · Schema
Helm Chart.yaml
Schema for the Chart.yaml file that describes a Helm chart. Chart.yaml contains metadata about the chart including its name, version, dependencies, and maintainers. This file is required in every Helm chart.
ChartsCloud NativeContainer OrchestrationDevOpsKubernetesPackage Manager
Properties
| Name | Type | Description |
|---|---|---|
| apiVersion | string | The chart API version. v2 is for Helm 3 charts, v1 is for Helm 2 charts. |
| name | string | The name of the chart. Must match the directory name. |
| version | string | The SemVer 2 version of the chart. This is used as a release marker and must be incremented for each new release. |
| kubeVersion | string | A SemVer range of compatible Kubernetes versions. Helm validates this constraint during installation. |
| description | string | A single-sentence description of the chart. |
| type | string | The type of the chart. Application charts are installable, library charts provide utilities for other charts. |
| keywords | array | A list of keywords associated with the chart for search and categorization. |
| home | string | The URL of the project home page. |
| sources | array | A list of URLs to source code for this chart. |
| dependencies | array | A list of chart dependencies. Helm downloads these charts into the charts/ directory during dependency resolution. |
| maintainers | array | A list of chart maintainers with contact information. |
| icon | string | A URL to an SVG or PNG icon to display in the Helm UI and artifact hub. |
| appVersion | string | The version of the application that the chart deploys. This is informational and does not affect chart version calculations. |
| deprecated | boolean | Whether this chart is deprecated. When set to true, Helm shows a warning during installation. |
| annotations | object | Annotations are key-value pairs used by Artifact Hub and other tools to store additional metadata. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://helm.sh/schemas/chart-yaml.json",
"title": "Helm Chart.yaml",
"description": "Schema for the Chart.yaml file that describes a Helm chart. Chart.yaml contains metadata about the chart including its name, version, dependencies, and maintainers. This file is required in every Helm chart.",
"type": "object",
"required": [
"apiVersion",
"name",
"version"
],
"properties": {
"apiVersion": {
"type": "string",
"description": "The chart API version. v2 is for Helm 3 charts, v1 is for Helm 2 charts.",
"enum": [
"v1",
"v2"
],
"default": "v2"
},
"name": {
"type": "string",
"description": "The name of the chart. Must match the directory name.",
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
"examples": [
"nginx",
"my-application"
]
},
"version": {
"type": "string",
"description": "The SemVer 2 version of the chart. This is used as a release marker and must be incremented for each new release.",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-[\\da-zA-Z-]+(\\.[\\da-zA-Z-]+)*)?(\\+[\\da-zA-Z-]+(\\.[\\da-zA-Z-]+)*)?$",
"examples": [
"1.0.0",
"2.1.3-beta.1"
]
},
"kubeVersion": {
"type": "string",
"description": "A SemVer range of compatible Kubernetes versions. Helm validates this constraint during installation.",
"examples": [
">= 1.19.0",
">= 1.20.0-0 < 1.28.0-0"
]
},
"description": {
"type": "string",
"description": "A single-sentence description of the chart."
},
"type": {
"type": "string",
"description": "The type of the chart. Application charts are installable, library charts provide utilities for other charts.",
"enum": [
"application",
"library"
],
"default": "application"
},
"keywords": {
"type": "array",
"description": "A list of keywords associated with the chart for search and categorization.",
"items": {
"type": "string"
},
"examples": [
["nginx", "web server", "proxy"]
]
},
"home": {
"type": "string",
"format": "uri",
"description": "The URL of the project home page."
},
"sources": {
"type": "array",
"description": "A list of URLs to source code for this chart.",
"items": {
"type": "string",
"format": "uri"
}
},
"dependencies": {
"type": "array",
"description": "A list of chart dependencies. Helm downloads these charts into the charts/ directory during dependency resolution.",
"items": {
"$ref": "#/$defs/Dependency"
}
},
"maintainers": {
"type": "array",
"description": "A list of chart maintainers with contact information.",
"items": {
"$ref": "#/$defs/Maintainer"
}
},
"icon": {
"type": "string",
"format": "uri",
"description": "A URL to an SVG or PNG icon to display in the Helm UI and artifact hub."
},
"appVersion": {
"type": "string",
"description": "The version of the application that the chart deploys. This is informational and does not affect chart version calculations.",
"examples": [
"1.21.0",
"8.0.28"
]
},
"deprecated": {
"type": "boolean",
"description": "Whether this chart is deprecated. When set to true, Helm shows a warning during installation.",
"default": false
},
"annotations": {
"type": "object",
"description": "Annotations are key-value pairs used by Artifact Hub and other tools to store additional metadata.",
"additionalProperties": {
"type": "string"
},
"examples": [
{
"artifacthub.io/category": "networking",
"artifacthub.io/license": "Apache-2.0"
}
]
}
},
"$defs": {
"Dependency": {
"type": "object",
"description": "A chart dependency specifying another chart that must be present in the charts/ directory.",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the dependency chart."
},
"version": {
"type": "string",
"description": "The SemVer range for the dependency version."
},
"repository": {
"type": "string",
"description": "The URL of the chart repository where the dependency is hosted. Can also use the alias:// prefix for named repositories.",
"examples": [
"https://charts.bitnami.com/bitnami",
"alias://my-repo"
]
},
"condition": {
"type": "string",
"description": "A YAML path in the parent chart's values that resolves to a boolean, controlling whether this dependency is enabled.",
"examples": [
"redis.enabled",
"global.redis.enabled"
]
},
"tags": {
"type": "array",
"description": "Tags used to group chart dependencies together for bulk enable/disable.",
"items": {
"type": "string"
}
},
"import-values": {
"description": "Mapping of values to import from the child chart into the parent chart's values.",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "array",
"items": {
"type": "object",
"properties": {
"child": {
"type": "string"
},
"parent": {
"type": "string"
}
}
}
}
]
},
"alias": {
"type": "string",
"description": "An alias name for the dependency, allowing the same chart to be used multiple times with different configurations."
},
"enabled": {
"type": "boolean",
"description": "Whether the dependency is enabled by default.",
"default": true
}
}
},
"Maintainer": {
"type": "object",
"description": "Contact information for a chart maintainer.",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The maintainer's name."
},
"email": {
"type": "string",
"format": "email",
"description": "The maintainer's email address."
},
"url": {
"type": "string",
"format": "uri",
"description": "The maintainer's personal or organizational URL."
}
}
}
}
}