폐기 템플릿
이 템플릿의 목적은 헬름 차트를 배포하거나 차트에 대한 업데이트를 하는 사용자가 변경된 차트 구성 방법으로 인해 손상된 상태로 배포하는 것을 방지하는 방법을 제공하는 것입니다.
이 설계는 여러 템플릿을 사용하여 헬름 차트의 구성 방법을 선언하고 관리하는 모듈식 방법을 제공합니다. 이는 개발 및 유지 관리의 간소화를 돕기 위한 것입니다.
일반적인 컨셉
-
templates/NOTES.txt
의 마지막 항목은templates/_deprecations.tpl
에서gitlab.deprecations
템플릿을include
합니다. -
gitlab.deprecations
템플릿은 동일한 파일 내에서 추가 템플릿을include
하고 그 출력(문자열)을list
에 수집합니다. - 각 개별 템플릿은 이제 잘못된 구성을 감지하고 사용자에게 해당 변경 사항을 해결하는 방법에 대한 메시지를 출력하거나 아무것도 출력하지 않습니다.
-
gitlab.deprecations
템플릿은 수집된 메시지가 있는지 확인합니다. 메시지가 있는 경우fail
함수를 사용하여DEPRECATIONS:
헤더 아래에 출력합니다. -
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
아래에 한 줄을 추가하세요.