WORK / ACTIVE SYSTEM

Harbor Multi-Arch

Harbor 컨테이너 레지스트리를 fork하여 멀티아키텍처(AMD64/ARM64) 빌드를 지원하도록 수정

Container Registry · Multi-Arch · ARM64 · Security
01 / Problem02 / Architecture03 / Development04 / Proof05 / Knowledge06 / Record
01 / PROBLEM

Harbor가 ARM 아키텍처를 공식 지원하지 않아 ARM 기반 Kubernetes 클러스터에서 사용 불가

RESPONSE

멀티 아키텍처 빌드 파이프라인을 구성하여 ARM 호환 이미지 생성

02 / ARCHITECTURE

기능보다 먼저 경계와 연결을 봅니다.

Identity, Delivery, Network, Storage, Workload 통합을 기능 목록이 아니라 운영 경계로 읽습니다.

03 / DEVELOPMENT OVER TIME

계속 발전하는 과정도 evidence입니다.

첫 commit, 누적 commit, release와 최근 활동으로 시스템이 지금도 개발되고 있는지 보여줍니다.

DEVELOPMENT OBSERVATORY
dasomel/harbor

한 번 만든 결과가 아니라, 시간에 따라 계속 발전하는 시스템을 봅니다.

Contributors: 344
첫 commit
2016년 2월 1일
누적 commits
13,054
Releases
3
최신 release
v2.15.1
최근 push
2026년 9월 11일
개발 기간
10년 7개월
최근 개발 활동
0 commits / 20 weeks
PAST → NOW
언어: Go라이선스: Apache-2.0Stars: 2Forks: 0Open issues: 0최신 release
04 / PROOF, NOT BADGES
4
technology / domain signals

Declared scope and technical context

0
connected docs

Operational or implementation documentation

1
engineering notes

Knowledge produced by the project

0
digest links

External signals explicitly connected

05 / CONNECTED KNOWLEDGE

코드 밖에 남은 엔지니어링 지식

06 / ENGINEERING RECORD

구현 세부사항, 운영 기록과 프로젝트별 맥락을 이어서 봅니다.

프로젝트 소개

Harbor는 CNCF Graduated 프로젝트로, 컨테이너 이미지를 저장하고 배포하는 오픈소스 레지스트리입니다.

이 프로젝트는 Harbor 공식 저장소를 fork하여 멀티아키텍처(AMD64/ARM64) 빌드와 소프트웨어 공급망 보안 기능을 추가한 버전입니다.

Fork 배경

공식 Harbor는 AMD64 아키텍처만 공식 지원하고 있어, ARM64 기반 환경(Apple Silicon, AWS Graviton 등)에서 사용하기 어려웠습니다. 이 fork는 다음을 목표로 합니다:

  • ARM64 네이티브 지원으로 다양한 플랫폼에서 Harbor 실행 가능
  • 최신 보안 표준(SBOM, SLSA, Cosign) 적용
  • 공식 릴리스와 지속적인 동기화 유지

주요 수정 사항

멀티 아키텍처 빌드

  • AMD64/ARM64 동시 빌드: Docker buildx를 활용한 멀티플랫폼 이미지 생성
  • 통합 매니페스트: 단일 이미지 태그로 여러 아키텍처 자동 선택
  • ARM64 최적화: Apple Silicon, AWS Graviton, Raspberry Pi 지원

소프트웨어 공급망 보안

  • SBOM (Software Bill of Materials): Syft를 활용한 컨테이너 이미지 구성요소 목록 생성
  • SLSA 빌드 증명: GitHub Actions를 통한 빌드 프로세스 무결성 증명
  • Cosign OIDC 키리스 서명: GitHub OIDC를 활용한 키리스 이미지 서명

CI/CD 개선

  • GitHub Actions 워크플로우 최적화: 릴리스 태그 기반 빌드 트리거
  • 자동 업스트림 동기화: fork 전용 파일의 머지 충돌 자동 해결
  • ghcr.io 이미지 레지스트리: Docker Hub 대신 GitHub Container Registry 사용

빌드 파이프라인

# GitHub Actions 워크플로우
- name: Build and Push
  steps:
    - Docker buildx (AMD64 + ARM64)
    - Trivy 취약점 스캔
    - Syft SBOM 생성
    - Cosign 서명
    - SLSA Provenance 생성

사용 방법

이미지는 공식 Helm 차트와 호환되는 명명 규칙을 따릅니다.

# Harbor 이미지 Pull (아키텍처 자동 선택)
docker pull ghcr.io/dasomel/goharbor/harbor-core:v2.14.2
docker pull ghcr.io/dasomel/goharbor/harbor-portal:v2.14.2
docker pull ghcr.io/dasomel/goharbor/harbor-registryctl:v2.14.2
docker pull ghcr.io/dasomel/goharbor/harbor-jobservice:v2.14.2
 
# Trivy 어댑터
docker pull ghcr.io/dasomel/goharbor/trivy-adapter-photon:v2.14.2

이미지 서명 검증

Cosign으로 이미지 서명을 검증할 수 있습니다.

cosign verify ghcr.io/dasomel/goharbor/harbor-core:latest \
  --certificate-identity-regexp="https://github.com/dasomel/harbor" \
  --certificate-oidc-issuer="https://token.actions.githubusercontent.com"

업스트림 동기화

이 fork는 Harbor 공식 저장소와 자동으로 동기화됩니다. 업스트림 변경사항은 자동으로 반영되며, fork 전용 수정 사항은 별도로 관리됩니다.

버전AMD64ARM64업스트림
v2.14.xgoharbor/harbor v2.14
v2.13.xgoharbor/harbor v2.13
v2.12.xgoharbor/harbor v2.12

주요 변경 이력

자세한 변경 이력은 FORK_CHANGES.ko.md를 참조하세요.

기여 및 이슈

  • 버그 리포트나 기능 제안은 Issues에 등록해 주세요
  • ARM64 관련 이슈는 이 fork에서, 일반적인 Harbor 이슈는 공식 저장소에 등록해 주세요