5.6. 구성 정책 CR 생성 검증
정책 CR(사용자 정의 리소스)은 해당 리소스가 생성된 PolicyGenTemplate
과 동일한 네임스페이스에 생성됩니다. 동일한 문제 해결 흐름은 다음 명령을 사용하여 표시된 것처럼 ztp-common
,ztp-group
또는 ztp-site
기반 여부에 관계없이 PolicyGenTemplate
에서 생성된 모든 정책 CR에 적용됩니다.
$ export NS=<namespace>
$ oc get policy -n $NS
정책 래핑된 CR의 예상 세트가 표시되어야 합니다.
정책 동기화에 실패한 경우 다음 문제 해결 단계를 사용하십시오.
프로세스
정책에 대한 자세한 정보를 표시하려면 다음 명령을 실행합니다.
$ oc describe -n openshift-gitops application policies
Status: Conditions:
를 확인하여 오류 로그를 표시합니다. 예를 들어 잘못된sourceFile CryostatfileName:
을 설정하면 다음과 같은 오류가 생성됩니다.Status: Conditions: Last Transition Time: 2021-11-26T17:21:39Z Message: rpc error: code = Unknown desc = `kustomize build /tmp/https___git.com/ran-sites/policies/ --enable-alpha-plugins` failed exit status 1: 2021/11/26 17:21:40 Error could not find test.yaml under source-crs/: no such file or directory Error: failure in plugin configured via /tmp/kust-plugin-config-52463179; exit status 1: exit status 1 Type: ComparisonError
상태 확인: 동기화:
.Status: Conditions:
에 로그 오류가 있는 경우Status: Sync:
showsUnknown
orError
:Status: Sync: Compared To: Destination: Namespace: policies-sub Server: https://kubernetes.default.svc Source: Path: policies Repo URL: https://git.com/ran-sites/policies/.git Target Revision: master Status: Error
RHACM(Red Hat Advanced Cluster Management)에서
ManagedCluster
오브젝트에 정책이 적용되는 것을 인식하면 정책 CR 오브젝트가 클러스터 네임스페이스에 적용됩니다. 정책이 클러스터 네임스페이스에 복사되었는지 확인합니다.$ oc get policy -n $CLUSTER
출력 예:
NAME REMEDIATION ACTION COMPLIANCE STATE AGE ztp-common.common-config-policy inform Compliant 13d ztp-common.common-subscriptions-policy inform Compliant 13d ztp-group.group-du-sno-config-policy inform Compliant 13d Ztp-group.group-du-sno-validator-du-policy inform Compliant 13d ztp-site.example-sno-config-policy inform Compliant 13d
RHACM은 적용 가능한 모든 정책을 클러스터 네임스페이스에 복사합니다. 복사된 정책 이름의 형식은 <
policyGenTemplate.Namespace>.<policyGenTemplate.Name>-<policyName
>입니다.클러스터 네임스페이스에 복사되지 않은 모든 정책의 배치 규칙을 확인합니다. 해당 정책에 대한
PlacementRule
의matchSelector
는ManagedCluster
오브젝트의 라벨과 일치해야 합니다.$ oc get placementrule -n $NS
다음 명령을 사용하여 누락된 정책, 공통, 그룹 또는 사이트에 적절한
PlacementRule
이름을 확인합니다.$ oc get placementrule -n $NS <placementRuleName> -o yaml
- status-decisions에는 클러스터 이름이 포함되어야 합니다.
-
사양에 있는
matchSelector
의 키-값 쌍은 관리 클러스터의 라벨과 일치해야 합니다.
다음 명령을 사용하여
ManagedCluster
오브젝트에서 라벨을 확인합니다.$ oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jq
다음 명령을 사용하여 호환되는 정책을 확인합니다.
$ oc get policy -n $CLUSTER
네임스페이스
,
OperatorGroup
및서브스크립션
정책이 호환되지만 Operator 구성 정책이 적용되지 않은 경우 Operator가 관리 클러스터에 설치되지 않을 수 있습니다. 이로 인해 CRD가 아직 spoke에 적용되지 않았기 때문에 Operator 구성 정책이 적용되지 않습니다.