폐기 템플릿

이 템플릿의 목적은 헬름 차트를 배포하거나 차트에 대한 업데이트를 하는 사용자가 변경된 차트 구성 방법으로 인해 손상된 상태로 배포하는 것을 방지하는 방법을 제공하는 것입니다.

이 설계는 여러 템플릿을 사용하여 헬름 차트의 구성 방법을 선언하고 관리하는 모듈식 방법을 제공합니다. 이는 개발 및 유지 관리의 간소화를 돕기 위한 것입니다.

일반적인 컨셉

  1. templates/NOTES.txt의 마지막 항목은 templates/_deprecations.tpl에서 gitlab.deprecations 템플릿을 include합니다.
  2. gitlab.deprecations 템플릿은 동일한 파일 내에서 추가 템플릿을 include하고 그 출력(문자열)을 list에 수집합니다.
  3. 각 개별 템플릿은 이제 잘못된 구성을 감지하고 사용자에게 해당 변경 사항을 해결하는 방법에 대한 메시지를 출력하거나 아무것도 출력하지 않습니다.
  4. gitlab.deprecations 템플릿은 수집된 메시지가 있는지 확인합니다. 메시지가 있는 경우 fail 함수를 사용하여 DEPRECATIONS: 헤더 아래에 출력합니다.
  5. fail 함수는 배포 프로세스를 중단시켜 사용자가 손상된 구성으로 배포하는 것을 방지합니다.

템플릿 명명

이 패턴 내에서 정의된 템플릿은 gitlab.deprecation.*의 명명 규칙을 따라야 합니다. 여기서 *rails.appConfig 또는 registry.storage와 같이 해당 폐기 사항과 관련된 정보를 나타내는 정보적인 이름으로 대체합니다.

감지에 대한 고려 사항

개발자는 키나 상위 키가 존재할 것이라고 가정해서는 안 됩니다. if, hasKey, empty를 신중하게 적용하는 것이 강력히 권장됩니다. 단일 키가 존재할 확률이 전체 속성 맵이 해당 키 이전에 여러 가지 브랜치가 누락된 상태와 동일하기 때문입니다. 헬름에서는 일반적으로 모호하게 구조 맵 내에 존재하지 않는 속성에 액세스하려고 시도하면 에러가 발생합니다. 시간을 절약하려면 명확하게 작성하세요.

메시지 형식

모든 메시지는 다음 형식을 가지고 있어야 합니다:


chart:
    메시지
  • 메시지 앞의 if 문은 메시지 뒤의 새 줄을 제거해서는 안 됩니다. (}}-}}가 아님) 이렇게 함으로써 사용자의 포맷팅과 가독성이 보장됩니다.
  • 메시지는 영향을 받는 전역 차트에 상대적인 차트를 선언해야 합니다. 이는 사용자가 차트와 구성 속성에서 이 속성이 어디에서 왔는지 이해하는 데 도움이 됩니다. 예: gitlab.webservice, minio, registry.
  • 메시지는 변경된/이전/폐기된 속성과 취해야 할 조치를 사용자에게 알려주어야 합니다. 영향을 받는 차트에 상대적인 속성의 이름을 지정하세요. 예를 들어, gitlab.webservice.minio.enabled는 폐기의 영향을 받는 차트가 gitlab.webservice이기 때문에 webservice.enabled로 참조됩니다.

예시 메시지:


gitlab.webservice:
    Minio 기능의 차트 지역 구성이 전역으로 이동되었습니다. `gitlab.webservice.minio.enabled`를 속성에서 제거하고 대신 `global.minio.enabled`를 설정하세요.

새로운 폐기 활성화

템플릿이 정의되고 영향을 받는 속성을 감지하는 논리가 배치된 후, 이 새로운 템플릿을 활성화하는 것은 간단합니다. 제시된 형식에 따라 gitlab.deprecations 템플릿의 add templates here 아래에 한 줄을 추가하세요.