
Monokle CLI est une interface de ligne de commande pour l'analyse statique des ressources de Kubernetes.
Utilisez-le pour éviter les erreurs de configuration dans Kustomalize, Helm ou les ressources Kubernetes par défaut. La sortie est disponible en tant que fichier Sarif que vous pouvez télécharger sur GitHub Codescan.
Monokle CLI permet l'intégration avec Monokle Cloud et Monokle Enterprise pour gérer et appliquer les politiques de validation de manière centralisée pour tous vos reposs et pipelines.
Vous pouvez en savoir plus sur les fonctionnalités de Monokle CLI et l'écosystème monokle entier dans l'annonce du blog-poste.
Vous pouvez installer Monokle CLI via NPM:
npm install --global @monokle/cliOu en utilisant Brew si vous êtes sur macOS:
brew install kubeshop/monokle/monokle-cliMonokle CLI expose les commandes suivantes:
monokle validate [path] - valider les ressources Kubernetes dans un chemin donné.monokle init - générer un fichier de configuration local.monokle login - Connectez-vous vers Monokle Cloud ou Enterprise pour utiliser la stratégie distante.monokle logout - Connexion à partir de Monokle Cloud ou Enterprise.monokle whoami - Obtenez des informations sur l'utilisateur actuellement authentifié.monokle config show [path] - Afficher le fichier de configuration de stratégie qui sera utilisé pour valider le chemin donné. Vous pouvez toujours utiliser un argument --help pour obtenir une liste de toutes les commandes disponibles ou des informations détaillées sur chaque commande.
Monokle CLI comprend des validateurs intégrés pour vous fournir des possibilités de validation complètes pour les configurations K8S hors de la boîte:
Sous le capot, il utilise [@ monokle / validation] [https://github.com/kubshop/monokle-core/tree/main/packages/validation] qui vous permet de configurer largement les règles de validation.
Une fois installé, l'utilisation de la CLI est simple.
monokle validate bundle.yamlCela analysera de manière récursive tous les fichiers YAML et les analysera en tant que ressources Kubernetes simples.
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 Pour utiliser la politique distante, vous devez d'abord vous connecter à Monokle Cloud. Cela peut être fait via la commande monokle login :
monokle login Après cela, exécutez simplement la commande validate . Monokle CLI va récupérer la stratégie distante en fonction de vos données utilisateur:
monokle validate path/to/validateIMPORTANT : Veuillez garder à l'esprit que les politiques distantes doivent être configurées en premier. Veuillez vous référer à l'utilisation avec la section Cloud Monokle ci-dessous.
Monokle CLI prend en charge les ensembles prédéfinis de règles appelées frameworks, qui vous permettent d'exécuter rapidement la validation de Monokle sans avoir besoin d'une configuration supplémentaire. En utilisant un cadre, vous pouvez facilement effectuer des validations complètes basées sur les meilleures pratiques et les normes de l'industrie établies.
Lorsque vous utilisez un framework, vous n'avez pas à configurer manuellement le fichier monokle.validation.yaml . Spécifiez simplement le framework souhaité à l'aide des arguments --framework ou -f CLI, et Monokle CLI appliquera automatiquement l'ensemble de règles correspondant.
Cadres disponibles:
pss-restrictedpss-baselinensaL'utilisation de frameworks est un excellent moyen de commencer rapidement avec Monokle CLI et d'effectuer des validations complètes sans avoir besoin d'une configuration approfondie.
Voici un exemple de la façon d'utiliser l'argument --framework :
monokle validate k8s-dir --framework pss-restricted Si vous préférez une validation plus personnalisée, vous pouvez toujours configurer le fichier monokle.validation.yaml avec vos propres règles. Le moyen le plus simple consiste à utiliser la commande monokle init qui vous guidera à travers la création de configuration personnalisée basée sur des cadres disponibles.
La CLI Monokle peut produire ses résultats au format Sarif.
monokle validate --output sarif k8s-dir > results.sarifEnsuite, vous pouvez utiliser la visionneuse SariF de VSC ou d'autres outils pour inspecter les résultats.
Pour utiliser la politique distante avec Monokle CLI, vous devrez créer un projet et configurer une stratégie pour lui dans Monokle Cloud. Commencez par vous connecter à Monokle Cloud.
En cas de doutes, reportez-vous au guide de démarrage ou frappez-nous directement sur Discord.
Après vous inscrire, commencez par créer un projet sur la page des projets:

Une fois le projet créé, ajoutez un référentiel (celui avec lequel vous travaillerez localement) à un projet. Cela peut être fait en allant dans l'onglet Repositories dans la vue du projet et en utilisant le bouton Add repository :

La dernière étape est la configuration de la politique. Vous pouvez utiliser l'assistant de politique en allant dans l'onglet Policy dans la vue du projet:

Une fois la configuration terminée, vous pouvez exécuter la commande monokle validate et il utilisera la politique distante tant que vous êtes connecté.
L'utilisation avec Monokle Enterprise (auto-hébergé) est très similaire à l'utilisation avec Monokle Cloud. La principale différence est l'origine (URL) avec laquelle Monokle CLI communiquera. Cela peut être défini sur login ou pour chaque commande séparément (utile pour les scénarios automatisés).
monokle login --origin https://monokle.mydomain.comIMPORTANT : la variable Env
MONOKLE_ORIGINpeut également être utilisée pour définir l'origine pour la commande de journalisation. Si aucun n'est utilisé, CLI invite chaque fois que l'utilisation d'origine personnalisée.
Pour l'utilisation du drapeau --origin sans connexion, veuillez vous référer à l'utilisation de la section des pipelines CI / CD ci-dessous.
Nous avons dédié
Monokle GitHub Botpour intégrer la gestion centralisée des politiques dans les pipelines GitHub CI / CD qui donne une intégration plus étroite avec le cloud Monokle que d'utiliser directement la CLI.
Pour utiliser Monokle CLI dans le cadre du pipeline CI / CD, il doit être installé d'abord, puis simplement exécuter avec monokle validate path/to/resources .
L'autre cas utilise la politique gérée centralement de Monokle Cloud dans de tels scénarios. Dans tel, il faut utiliser le jeton d'automatisation (qui peut être généré via l'onglet Automation token dans la vue de Workspace ) ainsi que l'ID de projet à partir de laquelle la politique doit être utilisée:
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_IDL'ID du projet peut être obtenu sur la page Détails du projet à partir de l'URL
https://app.monokle.com/dashboard/projects/<projectId>.
Vous pouvez également modifier l'origine qui sera utilisée pour récupérer des politiques (par exemple lors de l'exécution de votre propre instance de Monokle Enterprise):
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID -r https://monokle.mydomain.comIMPORTANT : N'oubliez pas de garder votre jeton API comme secret et de le transmettre aux travaux CI / CD de la même manière que les autres secrets.
Le bot Monokle Github peut être utilisé pour valider vos ressources dans le cadre de vos pipelines GitHub CI / CD. Il est intégré à Monokle Cloud prêt à l'emploi pour permettre une gestion des politiques centralisée facile.
L'action Monokle GitHub peut être utilisée pour valider vos ressources dans le cadre de vos pipelines CI / CD sur GitHub. Il donne plus de personnalisation lorsqu'il s'agit de valider les résultats des exécutions sèches.
Si vous avez besoin de quelque chose de bien intégré à Monokle Cloud, nous vous recommandons d'utiliser Monokle GitHub Bot .
Vous pouvez utiliser --help pour accéder à des informations d'aide directement à partir de la CLI.
Le monokle CLI recherche un fichier de configuration de validation Monokle sur ./monokle.validation.yaml . Vous pouvez changer cela en utilisant l'indicateur --config .
Toutes les règles sont activées par défaut et sont décrites dans la documentation de configuration de validation Monokle.
Exemple
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.2Il est facile d'étendre la CLI Monokle avec des validateurs personnalisés qui peuvent être partagés avec d'autres à l'aide de notre référentiel de plugins communautaires Monokle.
Vous pouvez utiliser l'image Docker monokle-cli:latest pour exécuter le monokle CLI dans un environnement conteneurisé. Cela peut être particulièrement utile pour intégrer Monokle dans des pipelines CI / CD ou d'autres systèmes automatisés.
Pour exécuter l'image docker, vous pouvez utiliser la commande docker run . Les arguments de monokle CLI peuvent être transmis directement à la commande docker run. Par exemple:
docker run -v /path/to/input:/input -e CONFIG_FILE=my-validation-config.yaml monokle-cli:latest validate /input
Dans cette commande:
-v /path/to/input:/input monte un répertoire de votre système hôte vers le répertoire / entrée à l'intérieur du conteneur Docker.-e CONFIG_FILE=my-validation-config.yaml définit une variable d'environnement à l'intérieur du conteneur Docker. Si cette variable d'environnement est définie, le conteneur Docker utilisera le fichier spécifié comme configuration de validation Monokle.validate /input est la commande qui sera transmise au monokle CLI. Vous pouvez le remplacer par n'importe quelle commande que vous souhaitez exécuter par la CLI Monokle.