LoginSignup
3
0

More than 1 year has passed since last update.

GitLabコンテナーレジストリーからHarborへDockerイメージをレプリケーションする

Last updated at Posted at 2021-10-13

毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

GitLab.comのコンテナーレジストリーに保存されたDockerイメージをHarborでレプリケーションしようとしました。
Google先生に聞いてもドキュメントが少なく、いろいろと突っ掛かってしまったので備忘録的に書き留めておきます。

1. 前提条件

Harborのバージョン: Version v2.3.3-a0a9ed8a
Harborの実行Kubernetes: k3s version v1.19.15+k3s2 (0fbbc5af)
GitLabのバージョン: GitLab Enterprise Edition 14.4.0-pre(オンプレのGitLab CE,EEでも恐らく大丈夫)

1. GitLab.com側の準備

以下のURLでパーソナルアクセストークンを発行する

パーソナルアクセストークン · ユーザー設定 · GitLab
https://gitlab.com/-/profile/personal_access_tokens

パーソナルアクセストークンを発行するときのポイントは、Select scopesを以下の2つを付与します。
- read_api
- read_registry

※今回は、GitLab.com --> オンプレHarborへのレプリケーションだったので、「write_registry」は付けませんでした。
 オンプレHarbor --> GitLab.com(またはGitLab)の場合は、write_registryにもチェックを付けてください。

image.png

2. Harbor側の設定

2-1. Registryへ登録

Endpointを登録します。

  1. ProviderはGitlabを選択
  2. Nameは任意
  3. Endpoint URLをhttps://registry.gitlab.comにします
  4. Access IDには、1で取得したパーソナルアクセストークンのIDを入れます
  5. Access Secretには、1で取得したパーソナルアクセストークンのSecretをいれます

image.png

「TEST CONNECTION」をクリックして接続できることを確認します。

2-2. レプリケーション設定

レプリケーションを作成します。

「NEW REPLICATION RULE」をクリックして、ダイアログに「Name」を入力して「Replication mode」をPull-basedに変更します。
Source registryに、registry.gitlab.comを選択します。

image.png

Source resouce filterは、レプリケーションしたいプロジェクト配下のリポジトリ名を指定します。
Nameの指定方法は、<プロジェクト名>/<レジストリ名>/<イメージ名>で指定します。
Tagの指定方法は、latest等の特定のTagを指定する方法もありますが、ワイルドカードで指定するには**を使います。

GitLab Container Registryで、ディレクトリがネストしている場合は、以下のようにします。
<プロジェクト名>/<レジストリ名>/<イメージ名>/<ディレクトリ名>/**

また、レジストリ配下のコンテナイメージを全て取得する場合は、以下のようにします。
<プロジェクト名>/<レジストリ名>/**

Nameで指定するのは、コンテナー名までです。イメージ名の:以降のタグは、Tag:に記載します。
こちらもワイルドカードは **です。

レプリケーション先をDestinationで指定します。

image.png

3. レプリケーションの実行

レプリケーションを保存したらレプリケーションしたいルールを選択して「REPLICATE」ボタンをクリックします。

image.png

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0