로컬 개발을 위한 GitLab Duo 라이선스
GitLab v19.4요약
GitLab Duo 기능을 사용하려면 다음 조건을 충족해야 합니다. 이 문서는 GDK에서 이 요구 사항을 충족하는 방법을 단계별로 설명합니다. 이유: GitLab Self-Managed 및 Dedicated 고객의 클라우드 연결형 GitLab Duo 기능에는 클라우드 라이선스가 필수입니다.
GitLab Duo 기능을 사용하려면 다음 조건을 충족해야 합니다.
- GitLab Enterprise Edition을 사용합니다
- 온라인 클라우드 라이선스를 보유합니다
- Premium 또는 Ultimate 구독 라이선스 플랜을 보유합니다
- 라이선스 플랜에 더해 GitLab Duo 애드온 중 하나를 보유합니다(GitLab Duo Core, GitLab Duo Pro, GitLab Duo Enterprise)
이 문서는 GDK에서 이 요구 사항을 충족하는 방법을 단계별로 설명합니다.
GDK 용 GitLab 팀 구성원 라이선스 설정#
이유: GitLab Self-Managed 및 Dedicated 고객의 클라우드 연결형 GitLab Duo
기능에는 클라우드 라이선스가 필수입니다. "레거시" GitLab 라이선스와 달리
클라우드 라이선스는 customers.gitlab.com(CustomersDot)과 검증하기 위해
인터넷 연결이 필요합니다. GitLab은 주기적으로 라이선스 유효성을 확인하고,
CustomersDot을 통해 구독 변경 사항을 자동으로
반영합니다.
GitLab Duo는 Premium과 Ultimate 고객만 사용할 수 있습니다. GDK에는 Ultimate 라이선스가 적합합니다. Ultimate는 모든 GitLab Duo 기능에 접근할 수 있게 해 줍니다. Premium은 GitLab Duo 기능의 일부에만 접근할 수 있습니다.
방법:
-
로컬 인스턴스에 Ultimate 라이선스를 발급받는 절차를 따릅니다. GitLab Self-Managed Ultimate 라이선스로 시작합니다. GitLab Self-Managed 라이선스를 구성한 뒤에는 언제든 SaaS 인스턴스를 시뮬레이션 하고 관리자 패널에서 그룹별로 Premium 및 Ultimate 라이선스를 지정할 수 있습니다.
-
GDK에서 환경 변수를 설정합니다.
export GITLAB_LICENSE_MODE=test export CUSTOMER_PORTAL_URL=https://customers.staging.gitlab.com export CLOUD_CONNECTOR_SELF_SIGN_TOKENS=1
(대안) 스테이징 AI Gateway 연결#
로컬 GitLab 인스턴스를 스테이징 AI Gateway 인스턴스에 연결하는 방법을 선택할 수도 있습니다.
스테이징 AI Gateway에 연결하려면 다음을 수행합니다.
DEVELOPMENT_AI_GATEWAY_URL환경 변수를https://cloud.staging.gitlab.com으로 설정합니다AI_GATEWAY_URL은 설정하지 않고ApplicationSetting.current.ai_gateway_url은nil로 둡니다- GDK를 재시작합니다.
문제 해결#
GitLab Duo 라이선스 설정에 문제가 있다면 다음을 확인합니다.
- GitLab Duo 상태 점검을 실행해 구체적인 문제를 확인합니다. 로컬에서 설정 스크립트로 생성한 GitLab Duo 라이선스를 사용하는 경우 "Cloud Connector access token is missing" 이 표시되지만 문제가 되지 않습니다.
- Admin Area에서 라이선스가 활성 상태인지 확인합니다
- 사용자에게 GitLab Duo 좌석이 할당돼 있는지 확인합니다. GDK 설정 스크립트는
root사용자에게만 GitLab Duo 좌석을 할당합니다. 다른 사용자로 테스트하려면 좌석을 할당 해야 합니다. - root 사용자가 GitLab Duo Chat 같은 기능에 접근하지 못하는 이유를 더 깊이 디버깅하려면
GlobalPolicy.new(User.first, User.first).debug(:access_duo_entry_point)를 실행할 수 있습니다. 이 Declarative Policy 디버그 출력을 보면 구체적인 접근 로직을 세밀하게 파악할 수 있습니다. admin/subscriptions아래에 라이선스가 하나만 있고 그것이 온라인 라이선스인지 확인하거나, GitLab 프로젝트에서rails c를 실행해 rails 콘솔을 연 뒤License.current를 실행합니다.- 라이선스가 여러 개라면 rails 콘솔을 엽니다. 다른 라이선스의 id를 모두 확인한 뒤 불필요한 라이선스의 ID로
License.find(:id).destroy를 실행합니다. 레거시 라이선스는 기능 접근에 문제를 일으킨 사례가 있습니다. - 인증이나 라이선스 검증 오류가 있는지 로그를 확인합니다
- 클라우드 라이선스 문제는 Slack의
#s_fulfillment_engineering에 문의합니다 - AI Gateway 연결 문제는 Slack의
#g_ai_framework에 문의합니다
모범 사례#
- 두 환경 모두에서 테스트합니다. 충분한 테스트를 위해 멀티 테넌트 구성과 싱글 테넌트 구성을 번갈아 사용해 기능이 두 환경 모두에서 잘 동작하는지 확인합니다.
- 도메인 문서를 확인합니다. 해당 기능의 문서를 검토해 고려해야 할 환경별 동작이 있는지 파악합니다.
- 최종 사용자 관점을 고려합니다. 기능은 GitLab.com 사용자와 Self-Managed·Dedicated 고객 모두에게 잘 동작해야 합니다.
추가 자료#
스테이징 GitLab.com 사용자 계정에 GitLab Duo 설정#
스테이징 환경에서 작업할 때는 staging.gitlab.com 계정에 GitLab Duo 애드온을 설정해야 할 수 있습니다.
GitLab Duo Pro#
- https://staging.gitlab.com에 계정을 준비합니다.
- GitLab Duo Pro 접근 권한을 받을 네임스페이스로 새 그룹을 생성 하거나 기존 그룹을 사용합니다.
- Settings > Billing으로 이동합니다.
Upgrade to Ultimate를 클릭해 Ultimate 플랜 구매 절차를 시작합니다.- https://customers.staging.gitlab.com으로 이동하면
Continue with your Gitlab.com account를 클릭합니다. - 테스트용 신용카드로 SaaS Ultimate 구독을 구매합니다.
- 새로 구매한 구독 카드를 찾아 점 세 개 메뉴에서
Buy GitLab Duo Pro를 선택합니다. - 앞 단계와 동일한 테스트용 신용카드로 GitLab Duo Pro 애드온을 구매합니다.
- https://staging.gitlab.com으로 돌아가
Settings > GitLab Duo로 이동해 좌석을 관리하면서 그룹이 GitLab Duo Pro에 접근할 수 있는지 확인합니다.
GitLab Duo Enterprise#
내부 전용: GitLab Duo Enterprise 라이선스 구매는 셀프 서비스로 처리할 수
없습니다. 스테이징 계정에 GitLab Duo Enterprise 라이선스를 부여하려면
#g_provision Slack 채널에 요청을 남깁니다.