This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.6.7. Webhook 정의
Operator 작성자는 Webhook를 통해 리소스를 오브젝트 저장소에 저장하고 Operator 컨트롤러에서 이를 처리하기 전에 리소스를 가로채기, 수정, 수락 또는 거부할 수 있습니다. Operator와 함께 webhook 가 제공 될 때 OLM (Operator Lifecycle Manager)은 이러한 Webhook의 라이프 사이클을 관리할 수 있습니다.
Operator의 CSV(클러스터 서비스 버전) 리소스에는 다음 유형의 Webhook를 정의하는 webhookdefinitions
섹션을 포함할 수 있습니다.
- 승인 Webhook(검증 및 변경)
- 변환 Webhook
프로세스
Operator CSV의
spec
섹션에webhookdefinitions
섹션을 추가하고ValidatingAdmissionWebhook
,MutatingAdmissionWebhook
또는ConversionWebhook
type
을 사용하여 Webhook 정의를 포함합니다. 다음 예제에는 세 가지 유형의 Webhook가 모두 포함되어 있습니다.Webhook를 포함하는 CSV
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.7.1. OLM의 Webhook 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
OLM(Operator Lifecycle Manager)을 사용하여 Operator를 Webhook와 함께 배포할 때는 다음을 정의해야 합니다.
-
type
필드는ValidatingAdmissionWebhook
,MutatingAdmissionWebhook
또는ConversionWebhook
중 하나로 설정해야 합니다. 그러지 않으면 CSV가 실패한 단계에 배치됩니다. -
CSV에는
webhookdefinition
의deploymentName
필드에 제공된 값과 이름이 같은 배포가 포함되어야 합니다.
Webhook가 생성되면 OLM은 Operator가 배포된 Operator group과 일치하는 네임스페이스에서만 Webhook가 작동하는지 확인합니다.
인증 기관 제약 조건
OLM은 각 배포에 하나의 CA(인증 기관)를 제공하도록 구성되어 있습니다. 배포에 CA를 생성하고 마운트하는 논리는 원래 API 서비스 라이프사이클 논리에 사용되었습니다. 결과는 다음과 같습니다.
-
TLS 인증서 파일이 배포에 마운트됩니다(
/apiserver.local.config/certificates/apiserver.crt
). -
TLS 키 파일이 배포에 마운트됩니다(
/apiserver.local.config/certificates/apiserver.key
).
승인 Webhook 규칙 제약 조건
Operator에서 클러스터를 복구할 수 없는 상태로 구성하는 것을 방지하기 위해 OLM은 승인 Webhook에 정의된 규칙에서 다음 요청을 가로채는 경우 CSV를 실패한 단계에 배치합니다.
- 모든 그룹을 대상으로 하는 요청
-
operators.coreos.com
그룹을 대상으로 하는 요청 -
ValidatingWebhookConfigurations
또는MutatingWebhookConfigurations
리소스를 대상으로 하는 요청
변환 Webhook 제약 조건
OLM은 변환 Webhook 정의가 다음 제약 조건을 준수하지 않는 경우 CSV를 실패한 단계에 배치합니다.
-
변환 Webhook가 있는 CSV는
AllNamespaces
설치 모드만 지원할 수 있습니다. -
변환 Webhook에서 대상으로 하는 CRD는
spec.preserveUnknownFields
필드가false
또는nil
로 설정되어 있어야 합니다. - CSV에 정의된 변환 Webhook는 고유한 CRD를 대상으로 해야 합니다.
- 지정된 CRD의 전체 클러스터에는 하나의 변환 Webhook만 있을 수 있습니다.