Я пытаюсь использовать Ansible, чтобы лучше управлять моими конфигурационными картами Kubernetes в мультисредовом проекте (dev, stage и prod).Я обобщил каждую из карт конфигурации в виде шаблонов j2 и переопределю переменные в зависимости от того, как они могут изменяться в разных средах (чтобы они не дублировались три раза для одного и того же файла).
Моя игровая книга сейчас выглядит примерно так:
---
- hosts: localhost
vars_files:
- "vars/{{ env }}.yml"
tasks:
- name: Generate YAML from j2 template
template:
src: templates/foo.j2
dest: output/foo.yml
И до сих пор это отлично работало для тестирования.Тем не менее, я нахожусь в точке, где я хочу включить это в мой уже существующий CI / CD Jenkins, но у меня возникают проблемы с пониманием, как это может работать с тем, что я делаю в настоящее время.
После генерации чегоэто в основном Kuberenets ConfigMap от j2, я как-то сделаю это в Jenkins:
kubectl apply -f <yaml>
Однако, playbook создает файл YAML каждый раз, когда я его запускаю, и мне интересно, есть лиальтернатива, которая позволила бы мне передать содержимое файла YAML или каким-либо образом извлечь его из stdout.
По сути, я хочу оценить шаблон и получить его без необходимости создания файла.
ЕслиСделав это, я мог бы сделать что-то вроде следующего:
echo result | kubectl apply -f -
, где результатом, конечно, является содержимое файла YAML, получающегося после шаблонов, и коротким тире после флага f указывает Kubernetes для использованияstdout процесса.
Извините за столько объяснений, я могу уточнить все, что нужно.