cb4f797d32
mydict.keys() should be converted to list, otherwise it causes errors in loop iteration. Remove extra space after class name, which broke configmap. Also allow set reclaimPolicy property.
24 lines
822 B
Django/Jinja
24 lines
822 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:
|
|
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 %}
|