Заставить кубектл применить команду идемпотент в ansible - PullRequest
1 голос
/ 14 января 2020

Я хочу подготовить кластер через последовательное приложение ресурсов внутри кластера.

В какой-то момент я хочу применить развертывание nginx, подходящее для создания nginx - based ingresses , поэтому я хочу выполнить следующую команду в оболочке:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.27.0/deploy/static/mandatory.yaml

Мой вопрос заключается в том, как я могу сделать это идемпотентом, то есть не потерпеть неудачу, когда ресурсы существуют.

Подходит ли для этого k8s ansible модуль ?

Ответы [ 2 ]

2 голосов
/ 14 января 2020

kubectl apply не выдаст ошибку, если ресурс уже существует. Он подходит для ваших нужд. kubectl create выдаст ошибку, если ресурс существует.

1 голос
/ 14 января 2020

@ Шашанк V прав в своем ответе, но я бы хотел немного его расширить с помощью официальных документов.

Применить управляет приложениями через файлы, определяющие ресурсы Kubernetes. Он создает и обновляет ресурсы в кластере с помощью kubectl apply. Это рекомендуемый способ управления приложениями Kubernetes на производстве. См. Kubectl Book .

Определение, использование и флаги можно найти здесь :

Применение конфигурации к ресурсу по имени файла или STDIN. Имя ресурса должно быть указано. Этот ресурс будет создан, если он еще не существует. Чтобы использовать apply, всегда сначала создавайте ресурс с apply или create --save-config.

Надеюсь, это делает topi c более четким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...