Kyverno CLI를 사용하여 k8s 매니페스트의 유효성을 검사하는 방법은 무엇입니까?
Kyverno CLI 설치
Krew를 통해 Kyverno CLI 설치
Krew는 kubectl 명령줄 도구의 플러그인 관리자입니다. 아직 krew를 설치하지 않은 경우 지침 --> https://krew.sigs.k8s.io/docs/user-guide/setup/install/을 따르십시오.
# Install Kyverno CLI using kubectl krew plugin manager
kubectl krew install kyverno
# test the Kyverno CLI
kubectl kyverno version
Brew를 통해 Kyverno CLI 설치(MacOS)
# Install Kyverno CLI using brew
brew install kyverno
# test the Kyverno CLI
kyverno version
Kyverno CLI 명령어
적용하다
kyverno apply /path/to/policy.yaml --resource /path/to/resource.yaml
테스트
예제 테스트는 다음과 같습니다.
name: disallow_latest_tag
policies:
- policy.yaml
resources:
- resource.yaml
results:
- policy: disallow-latest-tag
rule: require-image-tag
resource: myapp-pod
kind: Pod
result: pass
- policy: disallow-latest-tag
rule: validate-image-tag
resource: myapp-pod
kind: Pod
result: pass
테스트를 실행하려면
kyverno test /path/to/yamls
확인
kyverno validate /path/to/policy1.yaml /path/to/policy2.yaml /path/to/folderFullOfPolicies
Jp
Kyverno CLI는 JMESPath 및 표현식과 함께 작동하는 유틸리티
jp
도 제공합니다.$ echo '{"foo": "BAR"}' | kyverno jp 'to_lower(foo)'
"bar"
$ cat pod.json
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "mypod",
"namespace": "foo"
},
"spec": {
"containers": [
{
"name": "busybox",
"image": "busybox"
}
]
}
}
$ kyverno jp -f pod.json 'spec.containers[0].name' -u
busybox
Kyverno 사전 커밋 후크
Kyverno는 사전 커밋 후크에 통합되어 정책을 테스트하고 검증할 수 있습니다. 사전 커밋 후크를 설정하려면 체크아웃 -> https://github.com/kyverno/pre-commit-hook
.pre-commit-config.yaml
repos:
- repo: https://github.com/kyverno/pre-commit-hook
rev: v1.0.0
hooks:
- id: kyverno-test
args: ["kyverno-policies"]
- id: kyverno-validate
args: ["kyverno-policies"]
If you like this article, subscribe to the newsletter and Connect with me on to get updates on my future articles. ✅
Reference
이 문제에 관하여(Kyverno CLI를 사용하여 k8s 매니페스트의 유효성을 검사하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kcdchennai/how-to-use-kyverno-cli-to-validate-k8s-manifests-3865텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)