K8s to Helm
Kubernetes to Helm converter online free. Generate values.yaml and templates from K8s manifests. Convert K8s YAML to Helm chart.
Kubernetes YAML
Paste K8s YAML to generate Helm values
Extracted Fields
Features
- Render Helm chart templates with custom values inline
- Paste chart templates and values.yaml to preview the rendered YAML output
- Supports Go template syntax: <code>{{ .Values.key }}</code>, <code>{{- if }}</code>, <code>{{- range }}</code>
- Syntax error highlighting for malformed templates
- Copy rendered manifest to clipboard
- Test conditional blocks and range loops interactively
Common Use Cases
- Preview what Helm chart templates render to before applying to a cluster
- Debug Go template syntax errors in chart templates
- Test conditional rendering logic without a full Helm install
- Validate that values flow correctly into rendered manifests
- Inspect third-party chart output for security and correctness
- Prototype new Helm templates rapidly in the browser
How Helm Templates Work
Helm is the package manager for Kubernetes. A Helm chart consists of Go template files (in templates/) and a values.yaml that provides default values. When you run helm install or helm template, Helm renders the templates by substituting the values, producing standard Kubernetes YAML manifests.
Go templates use {{ }} delimiters. Common patterns include:
{{ .Values.key }}— interpolate a value from values.yaml{{- if .Values.enabled }}— conditional rendering{{- range .Values.items }}— iterate over a list{{ include "chart.fullname" . }}— call a named templatetpl,toYaml,indent— built-in Helm functions
Examples
replicas: {{ .Values.replicas }}
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
{{- end }}{{- range .Values.env }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}Frequently Asked Questions
helm template my-release ./my-chart -f custom-values.yaml renders all chart templates to YAML without talking to the Kubernetes API server. Use it to inspect rendered output before deploying, or to pipe into kubectl apply. This tool does the same thing in-browser, without needing Helm installed.
Go template conditionals and range blocks introduce whitespace. Use the "trim whitespace" markers: {{- (trim whitespace before) and -}} (trim whitespace after). Mastering these is key to producing clean Helm output.
Helm provides all standard Go template functions plus the Sprig library (100+ functions) and Helm-specific functions like toYaml, required, tpl, lookup, and include. Key Sprig functions: default, quote, upper, lower, trim, list, dict, merge.
Use helm lint ./my-chart to check for common issues, helm template to render output, and helm test to run post-deploy tests. This browser tool lets you iterate on template logic without any of those tools installed.
💡 Tips
- Use <code>{{- with .Values.section }}</code> to scope a block to a nested values section and simplify your template syntax.
- The <code>required "error message" .Values.key</code> function causes <code>helm template</code> to fail with a clear error if a required value is missing.
- Use <code>toYaml | nindent 4</code> to safely embed arbitrary YAML values (like resource limits) into templates without worrying about indentation.
- Test chart upgrades by rendering with the new values and diffing against the current rendered output using the K8s Diff tool.