Как включить словарь в поле данных k8s_raw

Я пишу Ansible-playbook, чтобы вставить список секретных объектов в Kubernetes. Я использую синтаксис k8s_raw и хочу импортировать этот список из файла group_vars. Я не могу найти правильный синтаксис для импорта списка секретов в поле данных.

playbook.yml

- hosts: localhost
  tasks:
  - name: Create a Secret object
    k8s_raw:
      state: present
      definition:
        apiVersion: v1
        kind: Secret
        data:
          "{{ secrets }}"
          SKRT: "c2trcnIK"
        metadata:
          name: "test"
          namespace: "namespace-test"
        type: Opaqueroot
  vars_files:
    - "varfile.yml"

varfile.yml

secrets:
  TAMAGOTCHI_CODE: "MTIzNAo="
  FRIDGE_PIN: "MTIzNAo="
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
235
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Во-первых, что он на самом деле говорит, когда вы пытаетесь сделать это выше? Было бы полезно иметь результат ваших попыток.

Просто предположил, но попробуйте переместить var_files перед тем местом, где вы пытаетесь использовать переменные. Кроме того, убедитесь, что ваш отступ точно правильный, когда вы это делаете.

- hosts: localhost
  vars_files:
    - /varfile.yml

  tasks:
  - name: Create a Secret object
    k8s_raw:
      state: present
      definition:
        apiVersion: v1
        kind: Secret
        data:
          "{{ secrets }}"
        metadata:
          name: "test"
          namespace: "namespace-test"
        type: Opaqueroot

Ссылка

примечание: я бы отладил это немедленно, не пытаясь выполнить задачу. Удалите свою основную задачу и после попытки использовать vars_files попытайтесь напрямую распечатать секреты с помощью debug play. Это позволит вам точно настроить синтаксис и продолжать возиться с ним, пока вы не сделаете все правильно, без необходимости бежать и ждать более сложной игры, которая последует. Ссылка.

Рад, что смог помочь.

Old Schooled 22.05.2019 15:43

To import this list from a group_vars file

Поместите локальный хост в группу. Например группа тестовое задание

> cat hosts
test:
  hosts:
    localhost:

Поместите varfile.yml в каталог group_vars/тест

$ tree group_vars
group_vars/
├── test
    └── varfile.yml

Затем запустите плейбук ниже

$ cat test.yml
- hosts: test
  tasks:
    - debug:
        var: secrets.TAMAGOTCHI_COD

$ ansible-playbook -i hosts test.yml

дает:

PLAY [test] ***********************************
TASK [debug] **********************************
ok: [localhost] => {
    "secrets.TAMAGOTCHI_CODE": "MTIzNAo="
}
PLAY RECAP *************************************
localhost: ok=1    changed=0    unreachable=0    failed=0
Ответ принят как подходящий

Проблема была в поле СКРТ: "c2trcnIK" сразу под строкой "{{секреты}}". Я удалил его, и теперь он работает! Спасибо вам всем.

Другие вопросы по теме