Helm · Schema
Helm Values YAML
Schema for the values.yaml file in a Helm chart. The values.yaml file provides default configuration values for a chart. Values can be overridden during installation or upgrade using --set flags or additional values files. While the structure of values.yaml is chart-specific, this schema describes common conventional patterns used across the Helm ecosystem.
ChartsCloud NativeContainer OrchestrationDevOpsKubernetesPackage Manager
Properties
| Name | Type | Description |
|---|---|---|
| replicaCount | integer | Number of pod replicas to deploy. |
| image | object | Container image configuration. |
| nameOverride | string | Override the chart name used in resource names. |
| fullnameOverride | string | Override the full resource name prefix. |
| serviceAccount | object | Service account configuration. |
| podAnnotations | object | Annotations to add to the pod. |
| podLabels | object | Labels to add to the pod. |
| podSecurityContext | object | Security context for the pod. |
| securityContext | object | Security context for the container. |
| service | object | Kubernetes Service configuration. |
| ingress | object | Kubernetes Ingress configuration. |
| resources | object | CPU and memory resource requests and limits for the container. |
| autoscaling | object | Horizontal Pod Autoscaler configuration. |
| nodeSelector | object | Node labels for pod assignment. |
| tolerations | array | Tolerations for pod scheduling. |
| affinity | object | Affinity rules for pod scheduling. |
| global | object | Global values shared across all chart dependencies. These values are accessible to both the parent chart and all subcharts. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://helm.sh/schemas/values-yaml.json",
"title": "Helm Values YAML",
"description": "Schema for the values.yaml file in a Helm chart. The values.yaml file provides default configuration values for a chart. Values can be overridden during installation or upgrade using --set flags or additional values files. While the structure of values.yaml is chart-specific, this schema describes common conventional patterns used across the Helm ecosystem.",
"type": "object",
"properties": {
"replicaCount": {
"type": "integer",
"description": "Number of pod replicas to deploy.",
"minimum": 0,
"default": 1
},
"image": {
"type": "object",
"description": "Container image configuration.",
"properties": {
"repository": {
"type": "string",
"description": "Container image repository and name.",
"examples": [
"nginx",
"docker.io/library/nginx"
]
},
"tag": {
"type": "string",
"description": "Container image tag. Defaults to the chart appVersion if empty."
},
"pullPolicy": {
"type": "string",
"description": "Image pull policy for Kubernetes.",
"enum": [
"Always",
"IfNotPresent",
"Never"
],
"default": "IfNotPresent"
},
"pullSecrets": {
"type": "array",
"description": "List of image pull secret names.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
}
}
}
},
"nameOverride": {
"type": "string",
"description": "Override the chart name used in resource names."
},
"fullnameOverride": {
"type": "string",
"description": "Override the full resource name prefix."
},
"serviceAccount": {
"type": "object",
"description": "Service account configuration.",
"properties": {
"create": {
"type": "boolean",
"description": "Whether to create a service account.",
"default": true
},
"name": {
"type": "string",
"description": "The name of the service account. Auto-generated if not set."
},
"annotations": {
"type": "object",
"description": "Annotations to add to the service account.",
"additionalProperties": {
"type": "string"
}
},
"automount": {
"type": "boolean",
"description": "Whether to automount the service account token.",
"default": true
}
}
},
"podAnnotations": {
"type": "object",
"description": "Annotations to add to the pod.",
"additionalProperties": {
"type": "string"
}
},
"podLabels": {
"type": "object",
"description": "Labels to add to the pod.",
"additionalProperties": {
"type": "string"
}
},
"podSecurityContext": {
"type": "object",
"description": "Security context for the pod.",
"properties": {
"fsGroup": {
"type": "integer"
},
"runAsUser": {
"type": "integer"
},
"runAsGroup": {
"type": "integer"
},
"runAsNonRoot": {
"type": "boolean"
}
}
},
"securityContext": {
"type": "object",
"description": "Security context for the container.",
"properties": {
"allowPrivilegeEscalation": {
"type": "boolean"
},
"capabilities": {
"type": "object",
"properties": {
"drop": {
"type": "array",
"items": {
"type": "string"
}
},
"add": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"readOnlyRootFilesystem": {
"type": "boolean"
},
"runAsNonRoot": {
"type": "boolean"
},
"runAsUser": {
"type": "integer"
}
}
},
"service": {
"type": "object",
"description": "Kubernetes Service configuration.",
"properties": {
"type": {
"type": "string",
"description": "Kubernetes Service type.",
"enum": [
"ClusterIP",
"NodePort",
"LoadBalancer",
"ExternalName"
],
"default": "ClusterIP"
},
"port": {
"type": "integer",
"description": "Service port number.",
"default": 80
},
"annotations": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"ingress": {
"type": "object",
"description": "Kubernetes Ingress configuration.",
"properties": {
"enabled": {
"type": "boolean",
"default": false
},
"className": {
"type": "string",
"description": "Ingress class name."
},
"annotations": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"hosts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"paths": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"pathType": {
"type": "string",
"enum": [
"Exact",
"Prefix",
"ImplementationSpecific"
]
}
}
}
}
}
}
},
"tls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"secretName": {
"type": "string"
},
"hosts": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
"resources": {
"type": "object",
"description": "CPU and memory resource requests and limits for the container.",
"properties": {
"limits": {
"type": "object",
"properties": {
"cpu": {
"type": "string",
"examples": ["500m", "1"]
},
"memory": {
"type": "string",
"examples": ["128Mi", "512Mi"]
}
}
},
"requests": {
"type": "object",
"properties": {
"cpu": {
"type": "string",
"examples": ["100m", "250m"]
},
"memory": {
"type": "string",
"examples": ["64Mi", "256Mi"]
}
}
}
}
},
"autoscaling": {
"type": "object",
"description": "Horizontal Pod Autoscaler configuration.",
"properties": {
"enabled": {
"type": "boolean",
"default": false
},
"minReplicas": {
"type": "integer",
"default": 1
},
"maxReplicas": {
"type": "integer",
"default": 100
},
"targetCPUUtilizationPercentage": {
"type": "integer"
},
"targetMemoryUtilizationPercentage": {
"type": "integer"
}
}
},
"nodeSelector": {
"type": "object",
"description": "Node labels for pod assignment.",
"additionalProperties": {
"type": "string"
}
},
"tolerations": {
"type": "array",
"description": "Tolerations for pod scheduling.",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"operator": {
"type": "string",
"enum": ["Exists", "Equal"]
},
"value": {
"type": "string"
},
"effect": {
"type": "string",
"enum": ["NoSchedule", "PreferNoSchedule", "NoExecute"]
},
"tolerationSeconds": {
"type": "integer"
}
}
}
},
"affinity": {
"type": "object",
"description": "Affinity rules for pod scheduling.",
"properties": {
"nodeAffinity": {
"type": "object"
},
"podAffinity": {
"type": "object"
},
"podAntiAffinity": {
"type": "object"
}
}
},
"global": {
"type": "object",
"description": "Global values shared across all chart dependencies. These values are accessible to both the parent chart and all subcharts.",
"additionalProperties": true
}
},
"additionalProperties": true
}