
O Monokle CLI é uma interface de linha de comando para análise estática dos recursos Kubernetes.
Use -o para evitar erros incorretos nos recursos Kustomize, Helm ou padrão Kubernetes. A saída está disponível como um arquivo SARIF que você pode enviar para o GitHub Codescan.
O Monokle CLI permite a integração com a Monokle Cloud e a Monokle Enterprise para gerenciar e aplicar políticas de validação centralmente para todos os seus repositórios e pipelines.
Você pode ler mais sobre os recursos do Monokle CLI e o ecossistema de Monokle inteiro no anúncio do blog-post.
Você pode instalar o monokle cli via npm:
npm install --global @monokle/cliOu usando a bebida se você estiver no macOS:
brew install kubeshop/monokle/monokle-cliMonokle CLI expõe os seguintes comandos:
monokle validate [path] - Validar Kubernetes Recursos em um determinado caminho.monokle init - Gere um arquivo de configuração local.monokle login - Faça login para Monokle Cloud ou Enterprise para usar a política remota.monokle logout - Logout da Monokle Cloud ou Enterprise.monokle whoami - Obtenha informações sobre o usuário atualmente autenticado.monokle config show [path] - Mostrar arquivo de configuração de políticas que será usado para validar o caminho. Você sempre pode usar o argumento --help para obter a lista de todos os comandos disponíveis ou informações detalhadas sobre cada comando.
O Monokle CLI inclui validadores embutidos para fornecer possibilidades abrangentes de validação para as configurações K8S prontas para uso:
Sob o capô, ele usa [@Monokle/Validation] [https://github.com/kubeshop/monokle-core/tree/main/packages/validation], o que permite configurar extensivamente as regras de validação.
Uma vez instalado, o uso da CLI é direto.
monokle validate bundle.yamlIsso digitalizará recursivamente todos os arquivos YAML e os analisará como recursos simples da 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 Para usar a política remota, você precisa fazer o login para monarcar a nuvem primeiro. Isso pode ser feito através do comando monokle login :
monokle login Depois disso, basta executar o comando validate . O Monokle CLI buscará a política remota com base nos dados do seu usuário:
monokle validate path/to/validateImportante : Lembre -se de que as políticas remotas precisam ser configuradas primeiro. Consulte o uso da seção Monokle Cloud abaixo.
O CLI do Monokle suporta conjuntos de regras predefinidos chamados estruturas, que permitem executar rapidamente a validação do Monokle sem a necessidade de configuração adicional. Ao usar uma estrutura, você pode executar facilmente validações abrangentes com base em práticas recomendadas e padrões do setor estabelecidos.
Ao usar uma estrutura, você não precisa configurar o arquivo monokle.validation.yaml manualmente. Simplesmente especifique a estrutura desejada usando os argumentos --framework ou -f CLI, e o Monokle CLI aplicará automaticamente o conjunto correspondente de regras.
Estruturas disponíveis:
pss-restrictedpss-baselinensaO uso de estruturas é uma excelente maneira de começar rapidamente com o Monokle CLI e executar validações abrangentes sem a necessidade de uma extensa configuração.
Aqui está um exemplo de como usar o argumento --framework :
monokle validate k8s-dir --framework pss-restricted Se você preferir uma validação mais personalizada, ainda pode configurar o arquivo monokle.validation.yaml com suas próprias regras. A maneira mais fácil é usar o comando monokle init , que o guiará através da criação de configuração personalizada com base nas estruturas disponíveis.
O Monokle CLI pode gerar seus resultados no formato SARIF.
monokle validate --output sarif k8s-dir > results.sarifPosteriormente, você pode usar o visualizador SARIF da VSC ou outras ferramentas para inspecionar os resultados.
Para usar a política remota com a Monokle CLI, você precisará criar um projeto e configurar a política para ela em Monokle Cloud. Comece fazendo login no Monokle Cloud.
Em caso de dúvidas, consulte o guia de início ou atinge -nos diretamente na discórdia.
Depois de se inscrever, comece criando um projeto na página de projetos:

Depois que o projeto for criado, adicione um repositório (aquele com o qual você estará trabalhando localmente) a um projeto. Isso pode ser feito indo para a guia Repositories na exibição do projeto e usando o botão Add repository :

O último passo é a configuração da política. Você pode usar o Assistente de Política indo para a guia Policy no Project View:

Depois que a configuração for concluída, você pode executar o comando monokle validate e ele usará a política remota desde que esteja conectado.
Usar com a Monokle Enterprise (auto-hospedado) é muito semelhante ao uso com o Monokle Cloud. A principal diferença é a origem (URLs) com a qual o Monokle CLI se comunicará. Isso pode ser definido no login ou para cada comando separadamente (útil para cenários automatizados).
monokle login --origin https://monokle.mydomain.comImportante : Env variável
MONOKLE_ORIGINtambém pode ser usado para definir origem para o comando de logging. Se nenhum deles for usado, a CLI solicitará sempre que usar a origem personalizada.
Para usar o sinalizador --origin sem fazer login, consulte a seção de tubulações de CI/CD abaixo.
Dedicamos
Monokle GitHub Botpara integrar o gerenciamento de políticas centralizadas nos pipelines Github CI/CD, o que oferece mais integração rigorosa com a Monokle Cloud do que usar diretamente a CLI.
Para usar o Monokle CLI como parte do pipeline de CI/CD, ele precisa ser instalado primeiro e depois simplesmente executar com monokle validate path/to/resources .
O outro caso está usando a política gerenciada centralmente da Monokle Cloud em tais cenários. Nesse sentido, deve -se usar o token de automação (que pode ser gerado via guia Automation token na visualização Workspace ) juntamente com o ID do projeto a partir do qual a política deve ser usada:
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_IDO ID do projeto pode ser obtido na página Detalhes do projeto no URL
https://app.monokle.com/dashboard/projects/<projectId>.
Você também pode alterar a origem que será usada para buscar políticas (por exemplo, ao executar sua própria instância da Monokle Enterprise):
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID -r https://monokle.mydomain.comIMPORTANTE : Lembre -se sempre de manter seu token da API como secreto e passá -lo para trabalhos de CI/CD da mesma maneira que outros segredos.
O Bot Monokle Github pode ser usado para validar seus recursos como parte dos seus pipelines Github CI/CD. É integrado ao Monokle Cloud Out of the-Box para permitir o fácil gerenciamento de políticas centralizadas.
A ação Monokle Github pode ser usada para validar seus recursos como parte dos seus pipelines CI/CD no Github. Ele fornece mais personalização quando se trata de validar os resultados de execuções secas.
Se você precisar de algo fortemente integrado à Monokle Cloud, recomendamos o uso Monokle GitHub Bot .
Você pode usar --help para acessar informações de ajuda diretamente da CLI.
A CLI do Monokle procura um arquivo de configuração de validação do Monokle em ./monokle.validation.yaml . Você pode alterar isso usando o sinalizador --config .
Todas as regras são ativadas por padrão e são descritas na documentação da configuração de validação de monokle.
Exemplo
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É fácil estender a CLI do Monokle com validadores personalizados que podem ser compartilhados com outras pessoas usando nosso repositório de plugins comunitários Monokle.
Você pode usar o Docker Image monokle-cli:latest para executar a CLI Monokle em um ambiente de contêiner. Isso pode ser particularmente útil para integrar o Monokle em pipelines de CI/CD ou outros sistemas automatizados.
Para executar a imagem do Docker, você pode usar o comando docker run . Os argumentos do Monokle CLI podem ser passados diretamente para o comando Docker Run. Por exemplo:
docker run -v /path/to/input:/input -e CONFIG_FILE=my-validation-config.yaml monokle-cli:latest validate /input
Neste comando:
-v /path/to/input:/input monta um diretório do seu sistema host para o diretório/entrada dentro do contêiner do docker.-e CONFIG_FILE=my-validation-config.yaml define uma variável de ambiente dentro do contêiner do docker. Se essa variável de ambiente estiver definida, o contêiner do Docker usará o arquivo especificado como a configuração de validação de Monokle.validate /input é o comando que será passado para a CLI do monokle. Você pode substituir isso por qualquer comando que deseja executar com o Monokle CLI.