6.5. 고급 참조 구성 사용자 정의 수행
참조 설계에서 임시 편차를 허용하려는 시나리오의 경우 고급 사용자 지정을 적용할 수 있습니다.
이러한 사용자 정의에서는 비교 중에 cluster-compare 플러그인이 사용하는 기본 일치 프로세스를 재정의합니다. 이러한 고급 사용자 정의를 적용할 때는 클러스터 비교에서 결과 정보가 제외되는 등 의도하지 않은 결과가 발생할 수 있으므로 주의해야 합니다.
참조 구성을 동적으로 사용자 지정하는 일부 고급 작업에는 다음이 포함됩니다.
- 수동 일치: 클러스터의 사용자 지정 리소스가 참조 구성의 템플릿으로 수동으로 일치하도록 사용자 구성 파일을 구성합니다.
-
reference :
cluster-compare명령과 함께 patch 옵션을 사용하여 참조 구성을 구성하기 위한 참조 패치 를 패치합니다.
6.5.1. CR과 템플릿 간의 수동 일치 구성 링크 복사링크가 클립보드에 복사되었습니다!
경우에 따라 cluster-compare 플러그인의 기본 일치가 예상대로 작동하지 않을 수 있습니다. 사용자 구성 파일을 사용하여 CR(사용자 정의 리소스)이 템플릿에 매핑하는 방법을 수동으로 정의할 수 있습니다.
기본적으로 플러그인은 apiversion,kind,name, namespace 필드를 기반으로 CR을 템플릿에 매핑합니다. 그러나 여러 템플릿이 단일 CR과 일치할 수 있습니다. 예를 들어 다음과 같은 시나리오에서 이러한 문제가 발생할 수 있습니다.
-
동일한
apiversion,kind,name및namespace필드가 있는 여러 템플릿이 있습니다. -
템플릿은
네임스페이스또는이름에관계없이 특정apiversion및kind와 모든 CR과 일치합니다.
CR이 여러 템플릿과 일치하면 플러그인은 가장 작은 차이로 템플릿을 선택하는 묶는 메커니즘을 사용합니다. 플러그인이 선택한 템플릿을 명시적으로 제어하려면 수동 일치 규칙을 정의하는 사용자 구성 YAML 파일을 생성할 수 있습니다. 이 구성 파일을 cluster-compare 명령에 전달하여 필요한 템플릿 선택을 적용할 수 있습니다.
프로세스
사용자 구성 파일을 생성하여 수동 일치 기준을 정의합니다.
user-config.yaml파일 예correlationSettings: manualCorrelation: correlationPairs: ptp.openshift.io/v1_PtpConfig_openshift-ptp_grandmaster: optional/ptp-config/PtpOperatorConfig.yaml ptp.openshift.io/v1_PtpOperatorConfig_openshift-ptp_default: optional/ptp-config/PtpOperatorConfig.yamlcorrelationSettings:1 manualCorrelation:2 correlationPairs:3 ptp.openshift.io/v1_PtpConfig_openshift-ptp_grandmaster: optional/ptp-config/PtpOperatorConfig.yaml4 ptp.openshift.io/v1_PtpOperatorConfig_openshift-ptp_default: optional/ptp-config/PtpOperatorConfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
correlationSettings섹션에는 수동 상관 관계가 있습니다.- 2
manualCorrelation섹션에서는 수동 상관 관계가 활성화되도록 지정합니다.- 3
correlationPairs섹션에는 수동으로 일치시킬 CR 및 템플릿 쌍이 나열됩니다.- 4
- 일치시킬 CR과 템플릿 쌍을 지정합니다. CR 사양은 다음 형식을 사용합니다:
<apiversion>_<kind>_<namespace>_<name>. 네임스페이스가 없는 클러스터 범위 CR의 경우 다음 형식을 사용합니다:<apiversion>_<kind>_<name>. 템플릿 경로는metadata.yaml파일을 기준으로 해야 합니다.
다음 명령을 실행하여
cluster-compare명령에서 사용자 구성 파일을 참조하세요.oc cluster-compare -r <path_to_reference_config>/metadata.yaml -c <path_to_user_config>/user-config.yaml
$ oc cluster-compare -r <path_to_reference_config>/metadata.yaml -c <path_to_user_config>/user-config.yaml1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
-c옵션을 사용하여user-config.yaml파일을 지정합니다.
6.5.2. 참조 구성 패치 링크 복사링크가 클립보드에 복사되었습니다!
특정 시나리오에서는 클러스터 구성에서 예상되는 편차를 처리하기 위해 참조 구성을 패치해야 할 수도 있습니다. 플러그인은 비교 프로세스 중에 패치를 적용하여 패치 파일에 정의된 대로 지정된 리소스 필드를 수정합니다.
예를 들어, 클러스터가 최신 참조 구성과 맞지 않는 더 이상 사용되지 않는 필드를 사용하기 때문에 템플릿에 임시 패치를 적용해야 할 수 있습니다. 패치된 파일은 비교 출력 요약에 보고됩니다.
패치 파일은 두 가지 방법으로 만들 수 있습니다.
-
cluster-compare플러그인을 사용하여 패치 YAML 파일을 생성합니다. - 나만의 패치 파일을 만드세요.
6.5.2.1. 클러스터 비교 플러그인을 사용하여 패치 생성 링크 복사링크가 클립보드에 복사되었습니다!
cluster-compare 플러그인을 사용하면 특정 템플릿 파일에 대한 패치를 생성할 수 있습니다. 플러그인은 템플릿을 조정하여 클러스터 사용자 정의 리소스(CR)와 일치하도록 합니다. 이전에 패치된 템플릿에서 유효했던 차이점은 보고되지 않습니다. 이 플러그인은 출력에서 패치된 파일을 강조 표시합니다.
프로세스
다음 명령을 실행하여 템플릿에 대한 패치를 생성합니다.
oc cluster-compare -r <path_to_reference_config>/metadata.yaml -o 'generate-patches' --override-reason "A valid reason for the override" --generate-override-for "<template1_path>" --generate-override-for "<template2_path>" > <path_to_patches_file>
$ oc cluster-compare -r <path_to_reference_config>/metadata.yaml -o 'generate-patches' --override-reason "A valid reason for the override" --generate-override-for "<template1_path>" --generate-override-for "<template2_path>" > <path_to_patches_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-r은참조 구성의 metadata.yaml 파일에 대한 경로를 지정합니다. -
-o는출력 형식을 지정합니다. 패치 출력을 생성하려면generate-patches값을 사용해야 합니다. -
--override-reason은패치의 이유를 설명합니다. --generate-override-for는패치가 필요한 템플릿에 대한 경로를 지정합니다.참고metadata.yaml파일을 기준으로 대상 템플릿의 파일 경로를 사용해야 합니다. 예를 들어,metadata.yaml파일의 파일 경로가./compare/metadata.yaml인 경우 템플릿의 상대 파일 경로는optional/my-template.yaml이 될 수 있습니다.-
<path_to_patches_file>은패치의 파일 이름과 경로를 지정합니다.
-
선택 사항: 참조 구성에 적용하기 전에 패치 파일을 검토하세요.
패치 구성파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 참조 구성에 패치를 적용합니다.
oc cluster-compare -r <referenceConfigurationDirectory> -p <path_to_patches_file>
$ oc cluster-compare -r <referenceConfigurationDirectory> -p <path_to_patches_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-r은참조 구성의 metadata.yaml 파일에 대한 경로를 지정합니다. -p는패치 파일의 경로를 지정합니다.출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
6.5.2.2. 패치 파일을 수동으로 생성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 구성에서 예상되는 편차를 처리하기 위해 패치 파일을 작성할 수 있습니다.
패치에는 유형 필드에 대해 세 가지 가능한 값이 있습니다.
-
mergepatch- JSON을 대상 템플릿에 병합합니다. 지정되지 않은 필드는 변경되지 않습니다. -
rfc6902-add,remove,replace,move,copy작업을 사용하여 대상 템플릿의 JSON을 병합합니다. 각 작업은 특정 경로를 목표로 합니다. -
go-template- Golang 템플릿을 정의합니다. 플러그인은 클러스터 사용자 정의 리소스(CR)를 입력으로 사용하여 템플릿을 렌더링하고 대상 템플릿에 대한mergepatch또는rfc6902패치를 생성합니다.
다음 예는 세 가지 다른 형식을 모두 사용하여 동일한 패치를 보여줍니다.
프로세스
사용 사례에 맞는 패치 파일을 만듭니다. 다음 구조를 예로 들어 보겠습니다.
패치 구성예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 패치는
kind,apiVersion,name및namespace필드를 사용하여 패치를 올바른 클러스터 CR과 일치시킵니다.
다음 명령을 실행하여 참조 구성에 패치를 적용합니다.
oc cluster-compare -r <referenceConfigurationDirectory> -p <path_to_patches_file>
$ oc cluster-compare -r <referenceConfigurationDirectory> -p <path_to_patches_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-r은참조 구성의 metadata.yaml 파일에 대한 경로를 지정합니다. p는패치 파일의 경로를 지정합니다.출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-