
Monokle CLI-это интерфейс командной строки для статического анализа ресурсов Kubernetes.
Используйте его, чтобы предотвратить неправильные конфигурации в ресурсах Kustomize, Helm или по умолчанию Kubernetes. Вывод доступен в виде файла сарифа, который вы можете загрузить в GitHub Codescan.
Monokle CLI позволяет интеграции с Monokle Cloud и Monokle Enterprise для управления и обеспечения политики проверки в центре для всех ваших репо и трубопроводов.
Вы можете прочитать больше о функциях Monokle CLI и всей экосистеме Monokle в объявлении блога Post.
Вы можете установить CLI Monokle через NPM:
npm install --global @monokle/cliИли используя напиток, если вы находитесь в MacOS:
brew install kubeshop/monokle/monokle-cliMONOKLE CLI раскрывает следующие команды:
monokle validate [path] - проверьте ресурсы Kubernetes в данном пути.monokle init - генерировать локальный файл конфигурации.monokle login - Войдите в Monokle Cloud или Enterprise для использования удаленной политики.monokle logout - выход из Monokle Cloud или Enterprise.monokle whoami - Получите информацию об аутентифицированном пользователе.monokle config show [path] - Показать файл конфигурации политики, который будет использоваться для подтвержденного данного пути. Вы всегда можете --help аргумент, чтобы получить список всех доступных команд или подробную информацию о каждой команде.
Monokle CLI включает в себя встроенные валидаторы, чтобы предоставить вам комплексные возможности проверки для конфигураций K8S из коробки:
Под капотом он использует [@Monokle/Validation] [https://github.com/kubeshop/monokle-core/tree/main/packages/validation], что позволяет широко настраивать правила проверки.
После установки использование CLI является прямым.
monokle validate bundle.yamlЭто будет рекурсивно сканировать все файлы yaml и анализировать их как простые ресурсы Kubernetes.
monokle validate k8s-dirhelm template helm-dir | monokle validate -kustomize build kustomize-dir/overlays/local | monokle validate -monokle validate path/to/validate -c path/to/config/monokle.validation.yaml Чтобы использовать удаленную политику, сначала необходимо войти в Monokle Cloud. Это можно сделать с помощью команды monokle login :
monokle login После этого просто запустить команду validate . Monokle CLI принесет удаленную политику на основе ваших пользовательских данных:
monokle validate path/to/validateВАЖНО : Пожалуйста, имейте в виду, что в первую очередь необходимо настроить удаленную политику. Пожалуйста, обратитесь к разделу «Использование с облаком Monokle» ниже.
Monokle CLI поддерживает предопределенные наборы правил, называемых Frameworks, которые позволяют быстро запускать проверку монока без необходимости дополнительной конфигурации. Используя структуру, вы можете легко выполнить всеобъемлющие проверки на основе устоявшихся лучших практик и отраслевых стандартов.
При использовании структуры вам не нужно настраивать файл monokle.validation.yaml вручную. Просто укажите желаемую структуру, используя аргументы --framework или -f CLI, а CLI Monokle автоматически применяет соответствующий набор правил.
Доступные рамки:
pss-restrictedpss-baselinensaИспользование Frameworks - отличный способ быстро начать с Monokle CLI и выполнить всеобъемлющие проверки без необходимости обширной конфигурации.
Вот пример того, как использовать аргумент --framework :
monokle validate k8s-dir --framework pss-restricted Если вы предпочитаете более настроенную проверку, вы все равно можете настроить файл monokle.validation.yaml с вашими собственными правилами. Самый простой способ - использовать команду monokle init , которая будет направлять вас через создание пользовательской конфигурации на основе доступных структур.
Monokle CLI может вывести свои результаты в формате SARIF.
monokle validate --output sarif k8s-dir > results.sarifПосле этого вы можете использовать VSC Sarif Viewer или другие инструменты для проверки результатов.
Чтобы использовать удаленную политику с Monokle CLI, вам нужно будет создать проект и настроить политику для него в Monokle Cloud. Начните с войны в Monokle Cloud.
В случае сомнений, см. Руководство по началу работы или ударить нас непосредственно по раздорам.
После регистрации начните с создания страницы проекта на проектах:

После создания проекта добавьте хранилище (тот, с которым вы будете работать локально) в проект. Это можно сделать, отправившись на вкладку Repositories в представлении проекта и с помощью кнопки Add repository :

Последний шаг - настройка политики. Вы можете использовать мастер политики, обращаясь к вкладке Policy в представлении проекта:

После того, как настройка будет выполнена, вы можете запустить команду monokle validate , и она будет использовать удаленную политику, пока вы вошли в систему.
Использование с Monokle Enterprise (самостоятельно) очень похоже на использование с Monokle Cloud. Основное отличие - происхождение (URL), с помощью которого будет общаться CLI Monokle. Это может быть установлено на login или для каждой команды отдельно (полезно для автоматических сценариев).
monokle login --origin https://monokle.mydomain.comВажно : env Переменная
MONOKLE_ORIGINтакже может использоваться для установки происхождения для команды журнала. Если ни один из них не используется, CLI будет запрашивать всякий раз, когда использовать пользовательское происхождение.
Для использования флага --origin без входа в систему, пожалуйста, обратитесь к использованию в разделе CI/CD Pipelines ниже.
У нас есть посвященный
Monokle GitHub Botдля интеграции централизованного управления политикой в трубопроводы GitHub CI/CD, что дает более тесную интеграцию с моноклевым облаком, чем использование CLI напрямую.
Чтобы использовать CLI Monokle в рамках конвейера CI/CD, его нужно сначала установить, а затем просто запустить с помощью monokle validate path/to/resources .
Другим случаем является использование центрально управляемой политики из Monokle Cloud в таких сценариях. В таком следует использовать токен автоматизации (который можно сгенерировать с помощью вкладки Automation token в представлении Workspace ) вместе с идентификатором проекта, из которого следует использовать политику:
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_IDИдентификатор проекта может быть получен на странице сведений о проекте от URL
https://app.monokle.com/dashboard/projects/<projectId>.
Вы также можете изменить происхождение, которое будет использоваться для извлечения политик (например, при запуске собственного экземпляра Monokle Enterprise):
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID -r https://monokle.mydomain.comВажно : всегда помните, что ваш токен API в секрете и передавать его на работу CI/CD так же, как и другие секреты.
Бот Monokle Github может использоваться для проверки ваших ресурсов в рамках ваших трубопроводов GitHub CI/CD. Он интегрирован с Monokle Cloud вне коробки, чтобы обеспечить простое централизованное управление политикой.
Действие Monokle Github может использоваться для проверки ваших ресурсов в рамках ваших конвейеров CI/CD на GitHub. Это дает больше настраиваемости, когда речь идет о проверке результатов сухих прогонов.
Если вам нужно что -то тесно интегрированное с Monokle Cloud, мы рекомендуем использовать Monokle GitHub Bot .
Вы можете использовать --help доступ к информации о справке непосредственно из CLI.
CLI Monokle ищет файл конфигурации моноклевой проверки по адресу ./monokle.validation.yaml . Вы можете изменить это, используя флаг --config .
Все правила включены по умолчанию и описаны в документации на конфигурации проверки монока.
Пример
plugins :
yaml-syntax : true
kubernetes-schema : true
rules :
yaml-syntax/no-bad-alias : " warn "
yaml-syntax/no-bad-directive : false
open-policy-agent/no-last-image : " err "
open-policy-agent/cpu-limit : " err "
open-policy-agent/memory-limit : " err "
open-policy-agent/memory-request : " err "
settings :
kubernetes-schema :
schemaVersion : v1.24.2Легко расширить CLI Monokle с помощью пользовательских валидаторов, которые могут быть переданы другими, используя наш репозиторий плагинов сообщества Monokle.
Вы можете использовать Docker Image monokle-cli:latest для запуска CLI Monokle в контейнерной среде. Это может быть особенно полезно для интеграции монока в трубопроводы CI/CD или другие автоматизированные системы.
Чтобы запустить изображение Docker, вы можете использовать команду docker run . Аргументы Monokle CLI могут быть переданы непосредственно в команду Docker Run. Например:
docker run -v /path/to/input:/input -e CONFIG_FILE=my-validation-config.yaml monokle-cli:latest validate /input
В этой команде:
-v /path/to/input:/input Mounts Каталог из вашей системы хост в каталог/вход в контейнер Docker.-e CONFIG_FILE=my-validation-config.yaml Устанавливает переменную среды внутри контейнера Docker. Если эта переменная среды установлена, контейнер Docker будет использовать указанный файл в качестве конфигурации проверки монокла.validate /input - это команда, которая будет передана в CLI Monokle. Вы можете заменить это на любую команду, которую вы хотите запустить с помощью CLI Monokle.