30 lines
1,007 B
Django/Jinja
30 lines
1,007 B
Django/Jinja
# 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 %}
|
|
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 %}
|