You will need to bring your values under separate key and some Sprig Template Functions in your Configmap.
values.yaml
fields:
field1: value1
field2:
field21: value21
field22: value22
configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: Configmap
data:
{{ range $key, $value := .Values.fields }}
{{- if kindIs "map" $value -}}
{{ $top:=$key }}
{{- range $key, $value := $value }}
{{ $top }}.{{ $key }}={{ $value }}
{{- end -}}
{{- else -}}
{{ $key | indent 2}}={{ $value }}
{{- end -}}
{{- end -}}
helm template . -x templates/configmap.yaml
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: Configmap
data:
field1=value1
field2.field21=value21
field2.field22=value22
I suggest extracting this logic to _helpers.tpl file. You will need to add more logic if you have more nested configs.