Проблема с Django template, не могу загрузить вложенные значения с помощью YAML template configuration
Я использую kapitan для создания config.yaml
для своего проекта Django.
Содержание YAML template configuration
:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dev
namespace: {{ inventory.parameters.namespace }}
subjects:
{% for groups in inventory.parameters.rbac.groups %}
- kind: User
name: {{ groups }}
namespace: {{ inventory.parameters.namespace }}
{% endfor %}
roleRef:
kind: Role
name: dev
apiGroup: rbac.authorization.k8s.io
Это содержание файла с переменными:
groups:
beta:
- test_user1
- test_user2
demo:
- test_user3
- test_user4
После компиляции я получаю такой результат в config.yaml
:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dev
namespace: m-beta
subjects:
- kind: User
name: beta
namespace: m-beta
- kind: User
name: demo
namespace: m-beta
roleRef:
kind: Role
name: dev
apiGroup: rbac.authorization.k8s.io
Как мне изменить эту строку:
name: {{ groups }}
так чтоб я получал имена юзеров: test_user1, test_user2, test_user3, test_user4, а не названия групп?
В результате config.yaml
должен иметь такое содержание:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dev
namespace: mvideo-beta
subjects:
- kind: User
name: test_user1
namespace: m-beta
- kind: User
name: test_user2
namespace: m-beta
- kind: User
name: test_user3
namespace: m-beta
- kind: User
name: test_user4
namespace: m-beta
roleRef:
kind: Role
name: dev
apiGroup: rbac.authorization.k8s.io
Благодарен за любую помощь!
Ответы (1 шт):
Автор решения: AnnaBazueva
→ Ссылка
Проблема в том, что вы копаете на поверхности.
Вместо этого вам нужно перебирать пользователей в каждой группе.
Требуется вложенный цикл:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dev
namespace: {{ inventory.parameters.namespace }}
subjects:
{% for group, users in inventory.parameters.rbac.groups.items() %}
{% for user in users %}
- kind: User
name: {{ user }}
namespace: {{ inventory.parameters.namespace }}
{% endfor %}
{% endfor %}
roleRef:
kind: Role
name: dev
apiGroup: rbac.authorization.k8s.io