Omnibus GitLab 폐기 과정
GitLab폐기 지침을 준수하는 것 외에도 Omnibus GitLab 패키지에 폐기 메시지를 추가해야 합니다.
폐기 메시지를 통해 GitLab 관리자에게 폐기된 기능의 제거를 알리는 것은 다음과 같습니다.
반드시 알아두어야 할 점
폐기 메시지를 추가하기 전에 아래 항목들을 반드시 읽어보세요.
폐기 메시지 추가
우리는 Gitlab::Deprecations
클래스의 list
메서드에 관려된 폐기 사항 목록을 저장합니다.
만약 설정이 폐기되어야 한다면 해당 목록에 적절한 세부 정보를 추가해야 합니다. 예를 들어:
deprecations = [
{
config_keys: %w(gitlab postgresql data_dir),
deprecation: '11.6',
removal: '14.0',
note: "https://docs.gitlab.com/omnibus/settings/database.html#store-postgresql-data-in-a-different-directory에서 postgresql['dir']을 사용하는 방법을 참조하세요."
},
{
config_keys: %w(gitlab sidekiq cluster),
deprecation: '13.0',
removal: '14.0',
note: "sidekiq를 직접 실행하는 것은 폐기되었습니다. sidekiq-cluster를 사용하는 방법은 https://docs.gitlab.com/ee/administration/operations/extra_sidekiq_processes.html 에서 확인하세요."
},
...
]
config_keys
config_keys
는 구성 해시를 통해 특정 구성에 도달하기 위해 사용할 수 있는 키 목록을 나타냅니다.
예를 들어 %w(mattermost log_file_directory)
는 mattermost['log_file_directory']
설정을 의미합니다.
마찬가지로 %w(gitlab nginx listen_addresses)
는 gitlab['nginx']['listen_addresses']
를 나타냅니다.
우리는 내부적으로 /etc/gitlab/gitlab.rb
에서 사용하는 nginx['listen_addresses']
로 변환합니다.
deprecation
deprecation
은 변경이 폐기된 <major>.<minor>
버전을 설정하는 곳입니다.
해당 버전부터, gitlab-ctl reconfigure
를 실행하면 설정이 removal
버전에서 제거되고 제공된 note
가 표시됩니다.
removal
removal
은 변경이 더 이상 지원되지 않을 <major>.<minor>
버전을 설정하는 곳입니다.
대부분의 경우 이것은 주 버전 릴리스여야 합니다. Omnibus 패키지는 설치 시작시 스크립트를 실행하여 설정이 더 이상 지원되지 않는지 확인합니다. 구성을 더 이상 지원하지 않는 경우 변경 사항을 만들기 전에 설치가 일찍 실패합니다. 이와 유사하게 gitlab-ctl reconfigure
를 실행하면 제거된 설정에 대한 검사가 이루어집니다. 이는 사용자가 이전 인스턴스에서 gitlab.rb
를 그대로 새 인스턴스에 복사하는 경우에 대비한 것입니다.
note
note
는 gitlab-ctl reconfigure
에서 사용자에게 제공되는 폐기 메시지의 일부입니다.
이 영역은 보통 새 문서에 링크를 걸어 사용자에게 설정을 변경하는 방법을 알리거나, 설정의 이름이 변경된 경우 새로운 설정 이름이 무엇인지 알려줍니다.
폐기 메시지 제거 추적
폐기 메시지는 제거와 함께 함께 정리해서는 안 됩니다. 왜냐하면 제거 후에도 기존 구성을 아직 모두 이주하지 않은 상태에서 버전 업그레이드를 보호하기 때문입니다.
업그레이드는 Gitlab::Deprecations.check_config
메서드를 실행하여 존재하는 구성을 예정된 제거 날짜와 비교한 후 GitLab 패키지가 업데이트 되도록 허용합니다.
또한, 여러 GitLab 버전을 건너뛰는 사용자들이 있습니다. 그 이유로 폐기 메시지는 upgrade paths에 따라 계획된 필수 중지 다음에만 삭제하는 것을 권장합니다. 예를 들어:
- 폐기 메시지가 15.8에 추가되었습니다.
- 이전 구성이 16.0에서 코드베이스에서 제거되었습니다.
- 이 폐기 메시지는 16.3에서 제거되어야 합니다. 이것은 다음 계획된 필수 중지이기 때문입니다.
폐기 메시지 제거를 추적하기 위해:
-
Remove Deprecation Message
이슈 템플릿을 사용하여 추적 이슈를 만듭니다. -
폐기 메시지 옆에 해당 메시지를 제거하는 추적 이슈 링크가 있는 코멘트를 추가합니다. 예를 들어:
{ config_keys: ... deprecation: '15.8', # 제거 메시지 이슈: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/XYZ removal: '16.0', note: "..." },
기능 제거 추적
반드시 알아두어야 할 점 섹션에 기반하여 폐기하려는 기능을 제거할 올바른 마일스톤을 정의하세요. 그런 다음 기능의 제거를 추적하는 추적 이슈를 만들고 removal
키 옆에 해당 이슈를 추적하는 코멘트를 추가하세요. 예를 들어:
{
config_keys: ...
deprecation: '15.8', # 제거 메시지 이슈: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/1
removal: '16.0', # 제거 이슈: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/2
note: "..."
},
추적 이슈는 해당 기능이 제거될 것으로 예상되는 마일스톤으로 설정되어야 합니다.
deprecation 메시지 제거
메시지를 제거할 준비가 되었을 때 다음을 수행해야 합니다:
- 이전 마일스톤에서 사용이 중단된 구성이 실제로 제거되었는지 확인하십시오.
- 메시지 제거가 구성을 제거한 마일스톤보다 나중에 필요한 중지 마일스톤에 릴리스되는지 확인하십시오.
- 사용이 중지된 메시지를 제거하고 후속 이슈를 닫기 위한 MR을 엽니다.