10.2. PolicyGenTemplate CR을 사용하여 소스 CR 콘텐츠를 재정의
PolicyGenTemplate
CR(사용자 정의 리소스)을 사용하면 ztp-site-generate
컨테이너의 GitOps 플러그인과 함께 제공된 기본 소스 CR 상단에 추가 구성 세부 정보를 오버레이할 수 있습니다. PolicyGenTemplate
CR은 기본 CR에 대한 논리 병합 또는 패치로 생각할 수 있습니다. PolicyGenTemplate
CR을 사용하여 기본 CR의 단일 필드를 업데이트하거나 기본 CR의 전체 콘텐츠를 오버레이합니다. 값을 업데이트하고 기본 CR에 없는 필드를 삽입할 수 있습니다.
다음 예제 절차에서는 group-du-sno-ranGen.yaml
파일의 PolicyGenTemplate
CR을 기반으로 한 참조 구성에 대해 생성된 PerformanceProfile
CR의 필드를 업데이트하는 방법을 설명합니다. 요구 사항에 따라 PolicyGenTemplate
의 다른 부분을 수정하는 기준으로 절차를 사용하십시오.
사전 요구 사항
- 사용자 지정 사이트 구성 데이터를 관리하는 Git 리포지토리를 생성합니다. 리포지토리는 hub 클러스터에서 액세스할 수 있어야 하며 Argo CD의 소스 리포지토리로 정의해야 합니다.
프로세스
기존 콘텐츠의 기본 소스 CR을 검토합니다. ZTP(ZTP) 컨테이너에서 해당 CR을 추출하여 참조
PolicyGenTemplate
CR에 나열된 소스 CR을 검토할 수 있습니다./out
폴더를 생성합니다.mkdir -p ./out
$ mkdir -p ./out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 소스 CR을 추출합니다.
podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15.1 extract /home/ztp --tar | tar x -C ./out
$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15.1 extract /home/ztp --tar | tar x -C ./out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
./out/source-crs/PerformanceProfile.yaml
에서 기준PerformanceProfile
CR을 검토합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고$…
이 포함된 소스 CR의 모든 필드는PolicyGenTemplate
CR에 제공되지 않는 경우 생성된 CR에서 제거됩니다.group-du-sno-ranGen.yaml
참조 파일에서PerformanceProfile
의PolicyGenTemplate
항목을 업데이트합니다. 다음 예제PolicyGenTemplate
CR 스탠자는 적절한 CPU 사양을 제공하고hugepages
구성을 설정하며globallyDisableIrqLoadBalancing
을 false로 설정하는 새 필드를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Git에서
PolicyGenTemplate
변경 사항을 커밋한 다음 GitOps ZTP argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.
출력 예
GitOps ZTP 애플리케이션은 생성된 PerformanceProfile
CR을 포함하는 RHACM 정책을 생성합니다. 해당 CR의 내용은 PolicyGenTemplate
의 PerformanceProfile
항목의 메타데이터
및 사양
콘텐츠를 소스 CR에 병합하여 파생됩니다. 결과 CR에는 다음과 같은 내용이 있습니다.
ztp-site-generate
컨테이너에서 추출한 /source-crs
폴더에서 $
구문은 구문에 의해 함축된 템플릿 대체에 사용되지 않습니다. 대신 policyGen
툴에 문자열의 $
접두사가 표시되고 관련 PolicyGenTemplate
CR에서 해당 필드의 값을 지정하지 않으면 해당 필드가 출력 CR에서 완전히 생략됩니다.
이에 대한 예외는 PolicyGenTemplate
CR에서 mcp
값으로 대체되는 /source-crs
YAML 파일의 $mcp
변수입니다. 예를 들어 example/policygentemplates/group-du-standard-ranGen.yaml
에서 mcp
의 값은 worker
입니다.
spec: bindingRules: group-du-standard: "" mcp: "worker"
spec:
bindingRules:
group-du-standard: ""
mcp: "worker"
policyGen
툴은 출력 CR에서 $mcp
의 인스턴스를 worker
로 바꿉니다.