5.6. CRD(사용자 정의 리소스 정의) 업그레이드 안전성
클러스터 확장에서 제공하는 CRD(사용자 정의 리소스 정의)를 업데이트하면 OLM(Operator Lifecycle Manager) v1은 CRD 업그레이드 안전 우선 순위 검사를 실행하여 이전 버전의 CRD와 이전 버전과의 호환성을 보장합니다. CRD 업데이트에서는 클러스터에서 변경 사항을 진행하기 전에 검증 검사를 전달해야 합니다.
5.6.1. CRD 업그레이드 금지 링크 복사링크가 클립보드에 복사되었습니다!
기존 CRD(사용자 정의 리소스 정의)에 대한 다음과 같은 변경 사항은 CRD 업그레이드 safety preflight 검사를 통해 발생하며 업그레이드를 방지합니다.
- 새 필수 필드가 기존 CRD 버전에 추가됩니다.
- 기존 필드가 기존 CRD 버전에서 제거됨
- 기존 필드 유형이 기존 CRD 버전에서 변경됨
- 이전에 기본값이 없는 필드에 새 기본값이 추가됩니다.
- 필드의 기본값이 변경됨
- 필드의 기존 기본값이 제거됨
- 이전에 enum 제한이 없는 기존 필드에 새로운 enum 제한 사항이 추가됨
- 기존 필드의 기존 enum 값이 제거됩니다.
- 기존 필드의 최소값이 기존 버전에서 증가했습니다.
- 기존 필드의 최대값이 기존 버전에서 감소합니다.
- 이전에 제약 조건이 없는 필드에 최소 또는 최대 필드 제약 조건이 추가됩니다.
최소값과 최대값 변경 규칙은 minimum , minLength , minProperties , minItems , maximum , maxLength , maxProperties 및 maxItems 제약 조건에 적용됩니다.
기존 CRD에 대한 다음 변경 사항은 CRD 업그레이드 안전성 검사에서 보고하고 Kubernetes API 서버에서 작업을 기술적으로 처리하지만 업그레이드를 방지합니다.
-
범위가
클러스터에서네임스페이스로 또는네임스페이스에서클러스터로 변경됩니다. - 저장된 CRD의 기존 버전이 제거됩니다.
CRD 업그레이드 safety preflight 검사에서 금지된 업그레이드 변경 중 하나가 발생하면 CRD 업그레이드에서 감지된 각 변경에 대한 오류를 기록합니다.
CRD에 대한 변경이 금지된 변경 카테고리 중 하나에 속하지 않지만 허용된 대로 적절하게 감지할 수 없는 경우 CRD 업그레이드 안전 전지 검사를 통해 업그레이드를 방지하고 "알 수 없는 변경"에 대한 오류를 기록합니다.