Хотя Terraform имеет смысл для создания и предоставления облачной инфраструктуры для таких вещей, как Kubernetes, не обязательно имеет смысл использовать ее для настройки инфраструктуры после развертывания. Я думаю, что в большинстве проектов инфраструктуры приложения, развернутые на подготовленном кластере, будут рассматриваться как конфигурации для указанного кластера. Семантика здесь, конечно, немного нюансирована, но я утверждаю, что такой инструмент, как Ansible, лучше подходит для развертывания приложений в кластере после инициализации.
Поэтому мой совет - определить несколько Ansible ролей. , Возможно:
create_cluster
deploy_helm
install_nginx_ingress
install_cert_manager
В каждой соответствующей роли определите задачи и переменные, которые должны использоваться согласно схеме Galaxy . Наконец, определите Playbook , который Ansible использует для include
или import
этих ролей. Это позволит вам подготовить инфраструктуру и развернуть все необходимые приложения в ней одной командой:
ansible-playbook playbook.yml