4fb8adb9e4
* Makes local volume provisioner more dynamic * Correct variable name in local storage provisioner defaults * Updates external-provisioner readme * Updates variable naming to be more clear, more documentation, fixes sample inventory * Variable refactor, untangled some jinja2 loops * Corrects variable name * No variable substitution in dict keys, replaced with anchor * Fixes default storage_classes dict, inline docs * Fixes spelling in inline docs * Addresses comments in review * Updates all the defaults * Fix failing CI task * Fixes external provisioner daemonset
25 lines
822 B
Django/Jinja
25 lines
822 B
Django/Jinja
# Macro to convert camelCase dictionary keys to snake_case keys
|
|
{%- macro convert_keys(mydict) %}
|
|
{% for key in mydict.keys() -%}
|
|
{% 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.iteritems() %}
|
|
{{ class_name }}:
|
|
{{- convert_keys(storage_class) }}
|
|
{{ storage_class | to_nice_yaml(indent=2) | indent(6) }}
|
|
{%- endfor %}
|
|
|