InfoGrab DocsInfoGrab Docs

Harbor

요약

Harbor를 GitLab 프로젝트의 컨테이너 레지스트리로 사용할 수 있습니다. Harbor는 Kubernetes 및 Docker와 같은 클라우드 네이티브 컴퓨팅 플랫폼 전반에서 아티팩트를 관리하는 데 도움이 되는 오픈 소스 레지스트리입니다.

Harbor를 GitLab 프로젝트의 컨테이너 레지스트리로 사용할 수 있습니다.

Harbor는 Kubernetes 및 Docker와 같은 클라우드 네이티브 컴퓨팅 플랫폼 전반에서 아티팩트를 관리하는 데 도움이 되는 오픈 소스 레지스트리입니다.

Harbor 통합은 GitLab CI/CD와 컨테이너 이미지 리포지터리가 함께 필요한 경우에 도움이 됩니다.

사전 요구 사항#

Harbor 인스턴스에서 다음을 확인합니다:

  • 통합할 프로젝트가 생성되어 있어야 합니다.
  • 인증된 사용자에게 Harbor 프로젝트에서 이미지를 pull, push, 편집할 권한이 있어야 합니다.

GitLab 구성#

GitLab은 그룹 또는 프로젝트 수준에서 Harbor 프로젝트 통합을 지원합니다. GitLab에서 다음 단계를 완료합니다:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.

  3. Harbor를 선택합니다.

  4. Enable integration 아래에서 Active 체크박스를 선택합니다.

  5. Harbor 구성 정보를 입력합니다:

    • Harbor URL: 이 GitLab 프로젝트에 연결되는 Harbor 인스턴스의 기본 URL. 예: https://harbor.example.net.
    • Harbor project name: Harbor 인스턴스의 프로젝트 이름. 예: testproject.
    • Username: Harbor 인스턴스의 사용자 이름이며, 전제 조건의 요구 사항을 충족해야 합니다.
    • Password: 해당 사용자 이름의 비밀번호.
  6. Save changes를 선택합니다.

Harbor 통합이 활성화된 후:

  • CI/CD에서 사용할 전역 변수 $HARBOR_USERNAME, $HARBOR_HOST, $HARBOR_OCI, $HARBOR_PASSWORD, $HARBOR_URL, $HARBOR_PROJECT가 생성됩니다.
  • 프로젝트 수준 통합 설정이 그룹 수준 통합 설정을 재정의합니다.

보안 고려 사항#

Harbor API 요청 보안#

Harbor 통합을 통한 각 API 요청에서 Harbor API 연결에 사용하는 자격 증명은 username:password 조합을 사용합니다. 다음은 안전한 사용을 위한 제안입니다:

  • 연결하는 Harbor API에 TLS를 사용합니다.
  • 자격 증명에 최소 권한 원칙(Harbor 접근 권한)을 적용합니다.
  • 자격 증명에 순환 정책을 적용합니다.

CI/CD 변수 보안#

.gitlab-ci.yml 파일에 푸시된 악성 코드는 $HARBOR_PASSWORD를 비롯한 변수를 유출하여 서드파티 서버로 전송할 수 있습니다. 자세한 내용은 CI/CD 변수 보안을 참고합니다.

Harbor 변수 사용#

OCI 레지스트리로 Helm 차트 push#

Helm은 기본적으로 OCI 레지스트리를 지원합니다. OCI는 Harbor 2.0 이상에서 지원됩니다. OCI에 대한 자세한 내용은 Helm 블로그와 문서에서 확인합니다.

helm:
  stage: helm
  image:
    name: dtzar/helm-kubectl:latest
    entrypoint: ['']
  variables:
    # Enable OCI support (not required since Helm v3.8.0)
    HELM_EXPERIMENTAL_OCI: 1
  script:
    # Log in to the Helm registry
    - helm registry login "${HARBOR_URL}" -u "${HARBOR_USERNAME}" -p "${HARBOR_PASSWORD}"
    # Package your Helm chart, which is in the `test` directory
    - helm package test
    # Your helm chart is created with <chart name>-<chart release>.tgz
    # You can push all building charts to your Harbor repository
    - helm push test-*.tgz ${HARBOR_OCI}/${HARBOR_PROJECT}

Harbor

GitLab v19.5
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

Harbor를 GitLab 프로젝트의 컨테이너 레지스트리로 사용할 수 있습니다. Harbor는 Kubernetes 및 Docker와 같은 클라우드 네이티브 컴퓨팅 플랫폼 전반에서 아티팩트를 관리하는 데 도움이 되는 오픈 소스 레지스트리입니다.

Harbor를 GitLab 프로젝트의 컨테이너 레지스트리로 사용할 수 있습니다.

Harbor는 Kubernetes 및 Docker와 같은 클라우드 네이티브 컴퓨팅 플랫폼 전반에서 아티팩트를 관리하는 데 도움이 되는 오픈 소스 레지스트리입니다.

Harbor 통합은 GitLab CI/CD와 컨테이너 이미지 리포지터리가 함께 필요한 경우에 도움이 됩니다.

사전 요구 사항#

Harbor 인스턴스에서 다음을 확인합니다:

  • 통합할 프로젝트가 생성되어 있어야 합니다.
  • 인증된 사용자에게 Harbor 프로젝트에서 이미지를 pull, push, 편집할 권한이 있어야 합니다.

GitLab 구성#

GitLab은 그룹 또는 프로젝트 수준에서 Harbor 프로젝트 통합을 지원합니다. GitLab에서 다음 단계를 완료합니다:

  1. 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.

  3. Harbor를 선택합니다.

  4. Enable integration 아래에서 Active 체크박스를 선택합니다.

  5. Harbor 구성 정보를 입력합니다:

    • Harbor URL: 이 GitLab 프로젝트에 연결되는 Harbor 인스턴스의 기본 URL. 예: https://harbor.example.net.
    • Harbor project name: Harbor 인스턴스의 프로젝트 이름. 예: testproject.
    • Username: Harbor 인스턴스의 사용자 이름이며, 전제 조건의 요구 사항을 충족해야 합니다.
    • Password: 해당 사용자 이름의 비밀번호.
  6. Save changes를 선택합니다.

Harbor 통합이 활성화된 후:

  • CI/CD에서 사용할 전역 변수 $HARBOR_USERNAME, $HARBOR_HOST, $HARBOR_OCI, $HARBOR_PASSWORD, $HARBOR_URL, $HARBOR_PROJECT가 생성됩니다.
  • 프로젝트 수준 통합 설정이 그룹 수준 통합 설정을 재정의합니다.

보안 고려 사항#

Harbor API 요청 보안#

Harbor 통합을 통한 각 API 요청에서 Harbor API 연결에 사용하는 자격 증명은 username:password 조합을 사용합니다. 다음은 안전한 사용을 위한 제안입니다:

  • 연결하는 Harbor API에 TLS를 사용합니다.
  • 자격 증명에 최소 권한 원칙(Harbor 접근 권한)을 적용합니다.
  • 자격 증명에 순환 정책을 적용합니다.

CI/CD 변수 보안#

.gitlab-ci.yml 파일에 푸시된 악성 코드는 $HARBOR_PASSWORD를 비롯한 변수를 유출하여 서드파티 서버로 전송할 수 있습니다. 자세한 내용은 CI/CD 변수 보안을 참고합니다.

Harbor 변수 사용#

OCI 레지스트리로 Helm 차트 push#

Helm은 기본적으로 OCI 레지스트리를 지원합니다. OCI는 Harbor 2.0 이상에서 지원됩니다. OCI에 대한 자세한 내용은 Helm 블로그와 문서에서 확인합니다.

helm:
  stage: helm
  image:
    name: dtzar/helm-kubectl:latest
    entrypoint: ['']
  variables:
    # Enable OCI support (not required since Helm v3.8.0)
    HELM_EXPERIMENTAL_OCI: 1
  script:
    # Log in to the Helm registry
    - helm registry login "${HARBOR_URL}" -u "${HARBOR_USERNAME}" -p "${HARBOR_PASSWORD}"
    # Package your Helm chart, which is in the `test` directory
    - helm package test
    # Your helm chart is created with <chart name>-<chart release>.tgz
    # You can push all building charts to your Harbor repository
    - helm push test-*.tgz ${HARBOR_OCI}/${HARBOR_PROJECT}