{% set p1num = namespace(value=1) %}
{% for sname, sdata in data.items() %}

{{ p1num.value }}. {{ sname }}.

{% set p2num = namespace(value=1) %}
{{ p1num.value }}.{{ p2num.value }} Сервисы.

{% for nservice in sdata.keys() %}
{{ nservice }}
{% endfor %}

{% set p2num.value = p2num.value + 1 %}
{{ p1num.value }}.{{ p2num.value }} Ресурсы.

{% set p3num = namespace(value=1) %}
{% for nname, gdata in sdata.items() %}
{{ p1num.value }}.{{ p2num.value }}.{{ p3num.value }} {{nname}}
{% set p3num.value = p3num.value + 1 %}
{% for gname, resdata in gdata.items() %}
{{ resdata["type"] }}: {{ gname }}, instances: {{ resdata["inst_count"] }}, HDD: {{ resdata["diskGB"] }}, SSD: {{ resdata["ssdGB"] }}, CPU: {{ resdata["cpu"] }}, RAM: {{ resdata["ramGB"] }}, prj: {{ resdata["prj"] }}
{% endfor %}

{% endfor %}

{% set p2num.value = p2num.value + 1 %}
{{ p1num.value }}.{{ p2num.value }} Дополнительная информация.

Тикет в диспенсере:

{{ p1num.value }}.{{ p2num.value }}.1 Обоснование.

CPU/RAM:
HDD/SSD:

{{ p1num.value }}.{{ p2num.value }}.2 Примечание.

{% set p1num.value = p1num.value + 1 %}
{% endfor %}
