JSON Schema를 사용한 값의 유효성 검사

Helm 3은 스키마 파일을 사용하여 값의 유효성을 검사하는 기능을 소개했으며, 이 스키마 파일은 JSON Schema를 따릅니다. 이 저장소의 Helm 차트도 각 하위 차트에 대한 values.schema.json 파일을 정의함으로써 이 기능을 활용합니다.

스키마 파일 사용에 대한 개발자 가이드라인:

  • 하위 차트의 values.yaml 파일에 새로운 항목을 추가하거나 기존 항목을 수정하는 경우 해당 변경 사항에 맞게 해당 values.schema.json 파일을 업데이트해야 합니다.
  • 첫 번째 반복 작업은 모든 하위 차트가 스키마 파일을 갖추도록 완료되어야 합니다. 첫 번째 반복의 진행 상황은 관련 이픽에서 확인할 수 있습니다. 향후 반복 작업은 이러한 스키마 파일을 개선하고 다듬고 그 효율성과 사용성을 향상시키는 데 초점을 맞출 것입니다.
  • values.yaml을 통해 구성 가능한 모든 설정은 values.schema.json 파일에 구현된 유형 유효성(값으로 올바른 데이터 유형만 허용)을 가져야 합니다. 이것은 첫 번째 반복에서 완료되어야 합니다.
  • 첫 번째 반복에서 필수 필드의 유효성 검사는 사용자가 values.yaml 파일에서 정의한 설정이 해당 구성 요소만으로 포드를 시작하는 데 필요하며 로그에 오류가 보고되지 않도록 하는 것으로 제한될 수 있습니다. 향후 반복에서 이는 실제로 포드가 작동하는 것을 보장하기 위해 확장되어야 합니다. 이에는 보다 깊은 테스트가 포함됩니다.

변경할 수 없는 필드의 유효성 검사

Kubernetes 스펙의 일부 필드는 변경할 수 없습니다. 변경할 수 없는 필드에 대한 변경 사항이 고객 업그레이드에 영향을 미치지 않도록 보장합니다.

Statefulset

Statefulset에는 변경할 수 없는 일부 필드가 포함되어 있습니다. 변경할 수 없는 필드 중 수정할 수 없는 필드가 변경되지 않도록 보장해야 합니다. 이는 업그레이드를 수행하는 능력에 부정적인 영향을 미칩니다. 예시 오류 메시지:

오류: 업그레이드 실패: StatefulSet인 "a-gitaly"를 패치할 수 없음
  StatefulSet.apps "a-gitaly"가 올바르지 않습니다.
  spec: 금지됨:
    'replicas', 'template', 및 'updateStrategy' 외의
    statefulset spec에 대한 업데이트는 금지됨