Создание пользовательских kubernetes cli - PullRequest
0 голосов
/ 30 августа 2018

У меня есть несколько рабочих процессов, где я хотел бы автоматизировать kubectl с помощью некоторого пользовательского кода golang.

Как и Истио, и другие используют kubectl под istiocli.

Нужен ли мне весь код Kubernetes и что-то импортировать, или он вызывает existig kubectl в оболочке с os / exec?

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Я считаю, что лучшим способом было бы создать плагин kubectl .

эта функция позволяет расширить набор команд по умолчанию доступно в kubectl путем добавления новых подкоманд для выполнения новых задач и расширить набор функций, доступных в основном дистрибутиве kubectl.

[...] Вы можете написать плагин на любом языке программирования или скрипте, который позволяет писать команды командной строки. Плагин не Обязательно нужно иметь бинарный компонент. Это может полностью полагаться на утилиты операционной системы, такие как echo, sed или grep. Или это может положиться на двоичный файл kubectl.

Этот репозиторий содержит несколько примеров.

0 голосов
/ 31 августа 2018

Если вы пишете код golang, я бы порекомендовал вам использовать kubernetes client-go package для автоматизации рабочего процесса. Единственное, что вам нужно быть осторожным, это то, что версия клиента постоянно меняется, и если она не соответствует версии вашего сервера api кластера kubernetes, вам нужно будет изменить версию пакета клиента.

0 голосов
/ 31 августа 2018

Похоже, istio использует клиентскую библиотеку API k8s:

https://github.com/kubernetes/client-go

Я бы ожидал, что это будет работать лучше и позволит вам предоставлять пользователям больше возможностей, чем при os/exec и exec.Command. Это также не потребует от вас обратного инжиниринга или иного расходования нескольких циклов для анализа выходных данных команд.

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