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.yaml
correlationSettings:
1 manualCorrelation:
2 correlationPairs:
3 ptp.openshift.io/v1_PtpConfig_openshift-ptp_grandmaster: optional/ptp-config/PtpOperatorConfig.yaml
4 ptp.openshift.io/v1_PtpOperatorConfig_openshift-ptp_default: optional/ptp-config/PtpOperatorConfig.yaml
Copy 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.yaml
1 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
-