JSON 스키마를 사용한 값 검증
Helm 3는 JSON 스키마를 따르는
schema files로
값 검증을 지원합니다. 이 리포지토리의 Helm 차트는
각 서브 차트에 대해 values.schema.json
파일을 정의하여
이 기능을 사용합니다.
스키마 파일 사용에 대한 개발자 지침:
-
서브 차트의
values.yaml
파일에 새 항목을 추가하거나 기존 항목을 수정하는 경우, 해당 변경 사항에 맞게values.schema.json
파일도 업데이트해야 합니다. -
이 작업의 첫 번째 반복은 모든 서브 차트가 스키마 파일을 갖추었을 때 완료될 것으로 예상됩니다. 첫 번째 반복의 진행 상황은 관련 에픽에서 확인할 수 있습니다. 향후 반복에서는 이러한 스키마 파일을 개선하고 다듬으며 효율성과 사용성을 향상하는 데 집중할 것입니다.
-
values.yaml
을 통해 구성 가능한 모든 설정은values.schema.json
파일에 데이터 타입 검증이 구현되어야 합니다 (올바른 데이터 타입만 값을 수용하도록 보장). 이는 첫 번째 반복에서 완료되어야 합니다. -
첫 번째 반복 동안, 필수 필드의 검증은 사용자가 자신의
values.yaml
파일에서 정의한 설정이 해당 구성 요소만으로 포드를 실행하는 데 충분하고 로그에서 오류가 보고되지 않도록 보장하는 것으로 제한될 수 있습니다. 향후 반복에서는 이 검증을 확대하여 포드가 실제로 작동하도록 보장해야 합니다. 이는 더 깊은 테스트를 포함합니다.
불변 필드 검증
Kubernetes 스펙의 일부 필드는 불변입니다. 불변 필드에 대한 변경이 고객 업그레이드에 영향을 미치지 않도록 해야 합니다.
Statefulset
Statefulset은 불변 필드 집합을 포함합니다. 수정이 허용되지 않는 필드가 실제로 수정되지 않도록 해야 합니다. 이는 업그레이드 기능에 부정적인 영향을 미칩니다. 예제 오류 메시지:
Error: UPGRADE FAILED: cannot patch "a-gitaly" with kind StatefulSet
StatefulSet.apps "a-gitaly" is invalid
spec: Forbidden:
updates to statefulset spec for fields other than
'replicas', 'template', and 'updateStrategy'
are forbidden