{ "$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." } } } } }