Omnibus GitLab 사용 중단 과정

GitLab 사용 중단 지침을 따르는 것 외에도 Omnibus GitLab 패키지에 사용 중단 메시지를 추가해야 합니다.

사용 중단 및 기능 제거를 위해 GitLab 관리자에게 사용 중단 메시지를 통지하는 것은 다음과 같습니다.

  1. 사용 중단 메시지 추가.
  2. 사용 중단 메시지 제거 추적.
  3. 기능 제거 추적.
  4. 사용 중단 메시지 제거.

반드시 알아야 할 점

사용 중단 메시지를 추가하기 전에 다음을 읽어보세요.

사용 중단 메시지 추가

우리는 Gitlab::Deprecations 클래스의 list 메소드에 연결된 사용 중단 사항 디렉터리을 저장합니다 Gitlab::Deprecations 클래스 만약 설정을 사용 중단해야 하는 경우, 해당 디렉터리에 적절한 세부 정보로 추가해야 합니다. 예를 들어:

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

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', # 메시지 제거 이슈: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/1
  removal: '16.0', # 제거 이슈: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/2
  note: "..."
},

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

사용 중단 메시지 제거

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

  1. 사용 중단된 구성이 이전 마일스톤에서 실제로 제거되었는지 확인합니다.
  2. 메시지 제거가 구성을 제거한 마일스톤보다 나중에 필수 정지 마일스톤에서 출시되고 있는지 확인합니다.
  3. 사용 중단 메시지 제거를 진행하고 추적 이슈를 닫기 위한 MR을 엽니다.