You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1.1 KiB

  1. # Macro to convert camelCase dictionary keys to snake_case keys
  2. {% macro convert_keys(mydict) -%}
  3. {% for key in mydict.keys()|list -%}
  4. {% set key_split = key.split('_') -%}
  5. {% set new_key = key_split[0] + key_split[1:]|map('capitalize')|join -%}
  6. {% set value = mydict.pop(key) -%}
  7. {{ mydict.__setitem__(new_key, value) -}}
  8. {{ convert_keys(value) if value is mapping else None -}}
  9. {% endfor -%}
  10. {% endmacro -%}
  11. ---
  12. apiVersion: v1
  13. kind: ConfigMap
  14. metadata:
  15. name: local-volume-provisioner
  16. namespace: {{ local_volume_provisioner_namespace }}
  17. data:
  18. {% if local_volume_provisioner_nodelabels | length > 0 %}
  19. nodeLabelsForPV: |
  20. {% for nodelabel in local_volume_provisioner_nodelabels %}
  21. - {{ nodelabel }}
  22. {% endfor %}
  23. {% endif %}
  24. {% if local_volume_provisioner_use_node_name_only %}
  25. useNodeNameOnly: "true"
  26. {% endif %}
  27. storageClassMap: |
  28. {% for class_name, storage_class in local_volume_provisioner_storage_classes.items() %}
  29. {{ class_name }}:
  30. {{- convert_keys(storage_class) }}
  31. {{ storage_class | to_nice_yaml(indent=2) | indent(6) }}
  32. {%- endfor %}