# Macro to convert camelCase dictionary keys to snake_case keys {% macro convert_keys(mydict) -%} {% for key in mydict.keys() | list -%} {% set key_split = key.split('_') -%} {% set new_key = key_split[0] + key_split[1:] | map('capitalize') | join -%} {% set value = mydict.pop(key) -%} {{ mydict.__setitem__(new_key, value) -}} {{ convert_keys(value) if value is mapping else None -}} {% endfor -%} {% endmacro -%} --- apiVersion: v1 kind: ConfigMap metadata: name: local-volume-provisioner namespace: {{ local_volume_provisioner_namespace }} data: {% if local_volume_provisioner_nodelabels | length > 0 %} nodeLabelsForPV: | {% for nodelabel in local_volume_provisioner_nodelabels %} - {{ nodelabel }} {% endfor %} {% endif %} {% if local_volume_provisioner_use_node_name_only %} useNodeNameOnly: "true" {% endif %} storageClassMap: | {% for class_name, storage_class in local_volume_provisioner_storage_classes.items() %} {{ class_name }}: {{- convert_keys(storage_class) }} {{ storage_class | to_nice_yaml(indent=2) | indent(6) }} {%- endfor %}