Omnibus GitLab 폐지 과정

GitLab 폐지 가이드라인을 준수하는 것 외에도 Omnibus GitLab 패키지에 폐지 메시지를 추가해야 합니다.

폐지 메시지를 통해 GitLab 관리자에게 폐지 및 기능 삭제를 통지하는 것은 다음과 같습니다.

  1. 폐지 메시지 추가.
  2. 폐지 메시지 제거 추적.
  3. 기능 삭제 추적.
  4. 폐지 메시지 제거.

반드시 알아두어야 할 점

폐지 메시지를 추가하기 전에, 반드시 읽어보세요:

폐지 메시지 추가

우리는 Gitlab::Deprecations 클래스의 list 메서드에 연결된 폐지 목록을 저장합니다. 만약 설정 구성이 폐지되어야 한다면, 해당 목록에 적절한 세부 정보로 추가해야 합니다. 예를 들어:

폐지 = [
          {
            config_keys: %w(gitlab postgresql data_dir),
            deprecation: '11.6',
            removal: '14.0',
            note: "포스트그레SQL['dir']을 사용하는 방법은 https://docs.gitlab.com/omnibus/settings/database.html#store-postgresql-data-in-a-different-directory에서 확인하세요."
          },
          {
            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은 변경 내용을 폐지시킨 <주요>.<마이너> 버전을 설정하는 곳입니다. 해당 버전부터 gitlab-ctl reconfigure을 실행하면, 설정이 removal 버전에서 삭제되었음을 경고하며 제공된 note를 표시할 것입니다.

removal

이 곳에서 removal은 더 이상 해당 변경을 지원하지 않을 <주요>.<마이너> 버전을 설정하는 곳입니다. 대부분의 경우 이것은 주요 릴리스여야 합니다. Omnibus 패키지는 설치 시작 시 스크립트를 실행하여 설정한 구성이 더 이상 지원되지 않는지 확인합니다. 구성이 더 이상 지원되지 않는 것을 발견하면 변경 사항을 진행하기 전에 설치가 일찍 실패합니다. 마찬가지로, gitlab-ctl reconfigure를 실행하면 gitlab.rb 파일을 검사하여 삭제된 구성을 확인할 것입니다. 사용자가 이전 버전의 gitlab.rb를 새 버전으로 복사하는 경우에 대비한 것입니다.

note

notegitlab-ctl reconfigure 실행 중 사용자에게 제공되는 폐지 메시지의 일부입니다. 이 영역을 사용하여 설정을 변경하는 방법에 대해 사용자에게 알리세요. 새 문서에 링크하는 방식으로 하는 경우가 많으며, 설정 이름이 변경된 경우에는 새로운 설정 이름을 알려주는 것입니다.

폐지 메시지 제거 추적

폐지 메시지는 제거 시에 함께 정리되어서는 안 됩니다. 왜냐하면, 제거 후에도 이전 구성을 마이그레이션하지 않은 상태에서 버전을 업그레이드 하려는 관리자들을 보호하기 위해서입니다.

업그레이드는 Gitlab::Deprecations.check_config 메서드를 실행하여 존재하는 구성을 예정된 제거 날짜에 비교한 후 GitLab 패키지를 업데이트할 수 있도록 합니다.

또한, 여러 GitLab 버전을 건너뛸 수 있는 사용자들이 있습니다. 이러한 이유로, 우리는 폐지 메시지가 제거 마일스톤을 따라가는 다음 계획된 필수 중지에서만 제거할 것을 권장합니다. 예를 들어:

  • 폐지 메시지가 15.8에 추가되었습니다.
  • 이전 구성이 16.0에서 코드베이스에서 제거되었습니다.
  • 폐지 메시지는 16.3에서 제거되어야 합니다. 이것이 다음 계획된 필수 중지입니다.

폐지 메시지 제거를 추적하기 위해:

  1. 폐지 메시지 제거 이슈 템플릿을 사용하여 후속 작업 이슈를 만드세요.
  2. 폐지 메시지 옆에 해당 메시지를 제거하기 위한 후속 작업 이슈 링크를 추가하세요. 예를 들어:

    {
      config_keys: ...
      deprecation: '15.8', # 메시지 제거 이슈: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/XYZ
      removal: '16.0', 
      note: "..."
    },
    

기능 제거 추적

알아야 할 내용 섹션을 기반으로 폐기하려는 기능을 제거할 올바른 마일스톤을 정의합니다. 그런 다음 기능 제거를 추적하는 후속 이슈를 만들고 removal 키 옆에 해당 제거를 추적하는 이슈를 알리는 코멘트를 추가합니다. 예를 들어:

{
  config_keys: ...
  deprecation: '15.8', # Remove message Issue: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/1
  removal: '16.0', # Removal issue: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/2
  note: "..."
},

추적 이슈는 기능이 제거될 것으로 예상되는 마일스톤으로 설정되어어야 합니다.

폐기 메시지 제거

메시지를 제거할 준비가 되었을 때 다음을 수행해야 합니다:

  1. 폐기된 구성이 이전 마일스톤에서 실제로 제거되었는지 확인합니다.
  2. 메시지 제거가 구성을 제거한 마일스톤보다 나중에 필수 중지 마일스톤에서 릴리스되고 있는지 확인합니다.
  3. 폐기 메시지를 제거하고 후속 이슈를 닫기 위한 MR을 엽니다.