Omnibus GitLab 사용 중단 프로세스

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

사용 중단 메시지를 통해 GitLab 관리자에게 기능의 사용 중단 및 제거를 알리는 과정은 다음으로 구성됩니다:

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

알아야 할 사항

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

사용 중단 메시지 추가

Gitlab::Deprecations 클래스의 list 메서드에 관련된 사용 중단 목록을 저장합니다.
구성을 사용 중단해야 하는 경우, 올바른 세부 정보와 함께 해당 목록에 추가해야 합니다. 예를 들어:

deprecations = [
          {
            config_keys: %w(gitlab postgresql data_dir),
            deprecation: '11.6',
            removal: '14.0',
            note: "postgresql['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']를 의미합니다.
우리는 내부적으로 이를 nginx['listen_addresses']로 변환하며, 이는 /etc/gitlab/gitlab.rb에서 사용하는 것입니다.

deprecation

deprecation은 변경을 사용 중단한 <major>.<minor> 버전을 설정하는 곳입니다.
해당 버전부터 gitlab-ctl reconfigure를 실행하면 설정이 removal 버전에서 제거될 것이라는 경고가 표시되며, 제공된 note도 표시됩니다.

removal

removal은 변경 사항을 더 이상 지원하지 않는 <major>.<minor> 버전을 설정하는 곳입니다.
이것은 거의 항상 주요 릴리즈여야 합니다. 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. Remove Deprecation Message 문제 템플릿을 사용하여 후속 문제를 만듭니다.
  2. 더 이상 사용되지 않는 메시지 옆에 후속 문제에 대한 링크로 주석을 추가합니다. 예를 들어:

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

기능 제거 추적

위의 you must know 섹션을 바탕으로 더 이상 사용되지 않을 기능을 제거할 올바른 마일스톤을 정의합니다.

그런 다음 기능 제거를 추적할 후속 문제를 만들고, 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을 엽니다.