
Monokle CLI는 Kubernetes 리소스의 정적 분석을위한 명령 줄 인터페이스입니다.
이를 사용하여 Kustomize, Helm 또는 Default Kubernetes 리소스 내에서 오해를 방지하십시오. 출력은 Github Codescan에 업로드 할 수있는 SARIF 파일로 제공됩니다.
Monokle CLI는 Monokle Cloud 및 Monokle Enterprise와의 통합을 허용하여 모든 저장소 및 파이프 라인에 대한 중앙에서 유효성 검사 정책을 관리하고 시행 할 수 있습니다.
Monokle CLI 기능 및 전체 Monokle Ecosystem에 대한 자세한 내용은 공지 블로그 포스트에서 읽을 수 있습니다.
NPM을 통해 Monokle CLI를 설치할 수 있습니다.
npm install --global @monokle/cli또는 MacOS에있는 경우 Brew 사용 :
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 Cloud 섹션과 함께 사용하는 것을 참조하십시오.
Monokle CLI는 프레임 워크 (Frameworks)라는 사전 정의 된 규칙 세트를 지원하므로 추가 구성없이 Monokle 유효성 검사를 신속하게 실행할 수 있습니다. 프레임 워크를 사용하면 확립 된 모범 사례 및 산업 표준을 기반으로 포괄적 인 검증을 쉽게 수행 할 수 있습니다.
프레임 워크를 사용하는 경우 monokle.validation.yaml 파일을 수동으로 구성 할 필요가 없습니다. --framework 또는 -f CLI 인수를 사용하여 원하는 프레임 워크를 지정하면 단순히 Monokle CLI가 해당 규칙 세트를 자동으로 적용합니다.
사용 가능한 프레임 워크 :
pss-restrictedpss-baselinensa프레임 워크 사용은 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의 사용과 매우 유사합니다. 주요 차이점은 Monokle CLI가 의사 소통 할 원산지 (URL)입니다. login 또는 각 명령에 대해 별도로 설정할 수 있습니다 (자동 시나리오에 유용함).
monokle login --origin https://monokle.mydomain.com중요 : ENV 변수
MONOKLE_ORIGIN또한 로깅 명령의 원점을 설정하는 데 사용될 수 있습니다. 어느 쪽도 사용되지 않으면 CLI는 사용자 정의 원산지를 사용할 때마다 프롬프트됩니다.
로그인하지 않고 --origin 플래그를 사용하려면 아래 CI/CD 파이프 라인 섹션에서 사용하는 것을 참조하십시오.
우리는
Monokle GitHub Bot전용하여 중앙 정책 관리를 Github CI/CD 파이프 라인에 통합하여 CLI를 직접 사용하는 것보다 Monokle Cloud와 더 엄격하게 통합됩니다.
CI/CD 파이프 라인의 일부로 Monokle CLI를 사용하려면 먼저 설치 한 다음 monokle validate path/to/resources 로 실행해야합니다.
다른 사례는 이러한 시나리오에서 Monokle Cloud의 중앙 관리 정책을 사용하는 것입니다. 따라서 정책을 사용해야하는 프로젝트 ID와 함께 자동화 토큰 ( Workspace 보기에서 Automation token 탭을 통해 생성 할 수 있음)을 사용해야합니다.
monokle validate project/path -t YOUR_AUTOMATION_TOKEN -p PROJECT_ID프로젝트 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 동작은 Github의 CI/CD 파이프 라인의 일부로 자원을 검증하는 데 사용될 수 있습니다. 드라이 런 결과를 확인할 때 더 많은 사용자 정의 가능성을 제공합니다.
Monokle Cloud와 밀접하게 통합 된 것이 필요한 경우 Monokle GitHub Bot 사용하는 것이 좋습니다.
--help 사용하여 CLI에서 직접 도움말 정보에 액세스 할 수 있습니다.
Monokle CLI는 ./monokle.validation.yaml 의 Monokle 유효성 검사 구성 파일을 찾습니다. --config 플래그를 사용하여이를 변경할 수 있습니다.
모든 규칙은 기본적으로 활성화되며 Monokle 유효성 검사 구성 문서에 설명되어 있습니다.
예
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.2Monokle Community 플러그인 저장소를 사용하여 다른 사람들과 공유 할 수있는 사용자 정의 유효성 검사기로 Monokle CLI를 쉽게 확장 할 수 있습니다.
Docker Image monokle-cli:latest 사용하여 컨테이너화 된 환경에서 Monokle 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 호스트 시스템에서 Docker 컨테이너 내부의/입력 디렉토리로 디렉토리를 마운트합니다.-e CONFIG_FILE=my-validation-config.yaml docker 컨테이너 내부에서 환경 변수를 설정합니다. 이 환경 변수가 설정되면 Docker 컨테이너는 지정된 파일을 Monokle 유효성 검사 구성으로 사용합니다.validate /input Monokle CLI에 전달되는 명령입니다. 이를 Monokle CLI로 실행하려는 모든 명령으로 교체 할 수 있습니다.