|Index|SUSE Private Registryの始め方
SUSE Private Registry

SUSE Private Registryの始め方

Publication Date: 2026-05-04

Release notes

SUSE Private Registry is an on-premises container registry. It is designed for SUSE customers who need a container registry that works well with other SUSE services and products.

This document provides a high-level overview of the features, capabilities and limitations of SUSE Private Registry, and highlights important product updates.

1 Release 1.2.0

Security updates:

Component updates:

  • Updates k8s.io/client-go to 0.34.1.

  • Updates aws-sdk-go to 1.55.8.

  • Updates go-ldap to 3.4.11.

  • Updates Go to 1.25.9.

New features and performance:

  • Adds support for the Cosign v3 Bundle signature format.

  • Introduces an option to disable audit log recording to the database during initialization.

  • Enables pprof support and the ability to export the ハーバー version via the Prometheus exporter binary.

  • Replaces the existing pull-through cache with a new proxy cache implementation.

  • Improves general performance through code refactoring (for example, by using strings.Builder and strings.CutPrefix).

Key fixes:

  • Implements a security fix to reject bearer tokens issued before project creation.

  • Fixes issues related to OpenID Connect (OIDC) integration for users with a single group.

  • Corrects errors in user and group search functionality.

  • Resolves various user interface (UI) issues, including an unwanted scrollbar in tag retention and issues with the "Copy Pull Button" when tags are undefined.

  • Adds support for both docker-compose v1 and docker-compose v2.

  • Calls the /v2/auth/token application programming interface (API) to get a bearer token for the Docker Hub adapter.

Container image updates:

  • private-registry/harbor-core:1.1.2 ➡ private-registry/1.2/harbor-core:1.2.0

  • private-registry/harbor-exporter:1.1.2 ➡ private-registry/1.2/harbor-exporter:1.2.0

  • private-registry/harbor-jobservice:1.1.2 ➡ private-registry/1.2/harbor-jobservice:1.2.0

  • private-registry/harbor-portal:1.1.2 ➡ private-registry/1.2/harbor-portal:1.2.0

  • private-registry/harbor-registry:1.1.2 ➡ private-registry/1.2/harbor-registry:1.2.0

  • private-registry/harbor-registryctl:1.1.2 ➡ private-registry/1.2/harbor-registryctl:1.2.0

  • private-registry/harbor-trivy-adapter:1.1.2 ➡ private-registry/1.2/harbor-trivy-adapter:1.2.0

Helm chart updates:

  • The chart is the version 1.2.x will be in oci://registry.suse.com/private-registry/1.2/private-registry-helm

  • Makes health probe timeoutSeconds and failureThreshold configurable via values.

  • Fixes extra environment variables for the exporter.

  • Installs PodDisruptionBudget resources when the replica count is greater than one.

Upgrade notes:

  • No breaking changes in this release.

2 Release 1.1.3

Security updates:

Key fixes:

  • Fixed SessionRegenerate arguments/lifetime and prevented background polling from artificially renewing session TTLs.

  • Fixes scanner application programming interface (API) issues and resolves an issue that occurs when editing distribution instances without credentials.

  • Calls the /v2/auth/token API to get a bearer token for the Docker Hub adapter.

  • Bumped Go to version 1.25.9 and upgraded the OpenTelemetry SDK and go-jose packages.

Container image updates:

  • private-registry/harbor-core:1.1.2 ➡ private-registry/harbor-core:1.1.3

  • private-registry/harbor-exporter:1.1.2 ➡ private-registry/harbor-exporter:1.1.3

  • private-registry/harbor-jobservice:1.1.2 ➡ private-registry/harbor-jobservice:1.1.3

  • private-registry/harbor-portal:1.1.2 ➡ private-registry/harbor-portal:1.1.3

  • private-registry/harbor-registry:1.1.2 ➡ private-registry/harbor-registry:1.1.3

  • private-registry/harbor-registryctl:1.1.2 ➡ private-registry/harbor-registryctl:1.1.3

  • private-registry/harbor-trivy-adapter:1.1.2 ➡ private-registry/harbor-trivy-adapter:1.1.3

  • suse/postgres:17.9 ➡ suse/postgres:17.10

  • suse/nginx:1.21 ➡ suse/nginx:1.27

Upgrade notes:

  • No breaking changes in this release.

3 Release 1.1.2

Security Updates:

  • CVE-2026-4404: Use of hard coded credentials allows attackers to use the default password and gain access to the Web UI, if not set during installation or upgrade.

Now if the HARBOR_ADMIN_PASSWORD is not set during the installation or upgrade, it will be generated randomly and stored in a Kubernetes secret. This change mitigates the risk of using a default password and enhances the security of the installation.

Upgrade Notes:

No breaking changes in this release.

4 Release 1.1.1

Security Updates:

Container Image Updates:

  • private-registry/harbor-core:1.1.0 ➡ private-registry/harbor-core:1.1.1

  • private-registry/harbor-exporter:1.1.0 ➡ private-registry/harbor-exporter:1.1.1

  • private-registry/harbor-jobservice:1.1.0 ➡ private-registry/harbor-jobservice:1.1.1

  • private-registry/harbor-portal:1.1.0 ➡ private-registry/harbor-portal:1.1.1

  • private-registry/harbor-registry:1.1.0 ➡ private-registry/harbor-registry:1.1.1

  • private-registry/harbor-registryctl:1.1.0 ➡ private-registry/harbor-registryctl:1.1.1

  • private-registry/harbor-trivy-adapter:1.1.0 ➡ private-registry/harbor-trivy-adapter:1.1.1

Upgrade Notes:

No breaking changes in this release.

5 Release 1.1.0

Security Updates:

Container Image Updates:

  • Update the base image bci/bci-micro:15.6 to bci/bci-micro:15.7

  • Updated images:

    • private-registry/harbor-valkey:8.0.6 ➡ suse/valkey:8.0.6

    • private-registry/harbor-db:2.13.2 (postgres 17) ➡ suse/postgres:17.6

    • private-registry/harbor-nginx:1.21 ➡ suse/nginx:1.21

Upgrade Notes:

Images are now tagged with the SUSE Private Registry version instead of the corresponding ハーバー version. The change in image versioning scheme is handled by Helm when upgrading the installation using the chart:

  • private-registry/harbor-core:1.1.0

  • private-registry/harbor-exporter:1.1.0

  • private-registry/harbor-jobservice:1.1.0

  • private-registry/harbor-portal:1.1.0

  • private-registry/harbor-registry:1.1.0

  • private-registry/harbor-registryctl:1.1.0

  • private-registry/harbor-registryctl:1.1.0

No breaking changes in this release.

6 Release 1.0.1

Security updates:

  • CVE-2025-55198: Helm may panic due to incorrect YAML content.

  • CVE-2025-55199: Helm charts with specific JSON schema values can cause memory exhaustion.

  • CVE-2025-54410: Moby versions before 25.0.13, when firewall reloads, Docker fails to re-create iptables rules isolating bridge networks. This allows any container to access all ports on any other container across different bridge networks on the same host and breaks network segmentation in multi-tenant environments (only --internal networks remain protected).

  • CVE-2025-29923: go-redis allows potential out of order responses when CLIENT SETINFO times out during connection establishment.

  • CVE-2025-54388: Moby versions 28.2.0–28.3.2 fails to re-create iptables rules after a firewall reloads. This exposes containers with localhost-published ports (e.g., 127.0.0.1:8080) to remote access via the Docker bridge, while unpublished ports remain protected; fixed in version 28.3.3.

  • GHSA-2464-8j7c-4cjm: go-viper’s map structure may leak sensitive information in logs when processing malformed data.

  • CVE-2025-8959: HashiCorp go-getter vulnerable to arbitrary read through a symlink attack.

  • CVE-2025-58058: github.com/ulikunitz/xz leaks memory when decoding a corrupted multiple LZMA archives.

  • CVE-2025-53547: Helm chart dependency updating with malicious Chart.yaml content and symlink can lead to code execution.

Bugs fixed:

  • Trivy: the correct version is shown when calling trivy version.

Container image updates:

  • Valkey updated from 8.0.2 ➡ 8.0.6.

Upgrade notes:

  • No breaking changes in this release.

7 Release 1.0

Key features:

  • SUSE Private Registry is based on ハーバー 2.13.2

    • Integration with Model Spec for first-class handling of AI models

    • Enhanced audit logging

  • Predictable release cycle aligned with SUSE Rancher Prime. SUSE Private Registry will be updated every 4 months

  • Each release is supported by SUSE for 18 months from the date of release

    • 6 months of security and bug fix maintenance, followed by

    • 12 months of security-only maintenance

  • Can be used to mirror SUSE アプリケーションコレクション

  • Supports SUSEセキュリティ as an external scanner

SUSE Private Registry includes all the features of ハーバー:

  • On-premises private container image and OCI artifact registry

  • Web interface for administration

  • Role-based Access Control

  • Fine-grained project configuration for image and artifact storage

  • Mirroring and pull-through caching of upstream registries' artifacts

  • Image retention and garbage collection controls

  • Scanning images for security vulnerabilities with the Trivy scanner

  • Generate SBOMs for stored images

  • Content trust with Cosign (Notary is not included)

著作権

著作権表示 © 20XX–2026-07-09 SUSE LLC および貢献者。 All rights reserved.

この文書はGNUフリー文書ライセンスのバージョン1.2または(任意で)バージョン1.3の条項に基づき、複製、頒布および改変が許可されています。ただし、変更不可部分として定められたこの著作権表示およびライセンスは、変更してはなりません。 ライセンスバージョン1.2のコピーは、'GNUフリー文書ライセンス’というタイトルのセクションに含まれています。

SUSE商標については、 https://www.suse.com/company/legal/.をご覧ください。すべての第三者の商標は、それぞれの所有者に帰属します。 商標記号(®、™など)は、SUSEおよびその関連会社の商標を示します。 アスタリスク(*)は、第三者の商標を示します。

本書のすべての情報は、細心の注意を払って編集されています。 しかし、このことは正確性を完全に保証するものではありません。 SUSE LLC、その関連会社、著者、翻訳者のいずれも誤りまたはその結果に対して一切責任を負いかねます。

1 概要

1.1 SUSE Private Registryとは

SUSE Private Registry (プライベートレジストリ) はオンプレミスのコンテナレジストリです。プライベートレジストリ は、他の SUSE サービスや製品と円滑に連携するコンテナレジストリを必要とする SUSE のお客様向けに設計されています。

1.2 SUSE Private Registry の利点は何ですか?

プライベートレジストリ は ハーバー プロジェクトに基づいており、そのコア機能に加えて追加の利点が含まれています。次に例を示します。

  • オンプレミスのコンテナレジストリ。 プライベートレジストリ は、オンライン SUSE レジストリサービスにアクセスできるローカルホストのコンテナレジストリです。

  • セキュリティ。 プライベートレジストリ は、コンテナ化された環境に対するセキュリティの考慮事項を提供します。 認証、認可、脆弱性スキャンが含まれています。

  • デプロイメントの柔軟性。プライベートレジストリ を Kubernetes 環境、例えば SUSE Rancher Prime:RKE2 にインストールできます。 高可用性のセットアップで プライベートレジストリ をデプロイすることもできます。

  • ユーザー管理。 プライベートレジストリ は、ロールベースのアクセス制御 (RBAC) による認証と認可のメカニズムを提供します。

  • *ユーザインタフェース。*コマンドラインインタフェースに加えて、Webユーザインタフェースを介して プライベートレジストリ を管理できます。

1.3 SUSE Private Registryの動作

プライベートレジストリ は オープンコンテナイニシアティブ (OCI) コンテナとして提供され、Kubernetes クラスターにデプロイされることが期待されています。プライベートレジストリ は以下のコンテナで構成されています:

  • harbor-core: ハーバー レジストリの主要コンポーネントで、プロジェクト、リポジトリ、ユーザーインタラクションの管理などのコア機能を担当します。

  • harbor-db: 画像、ユーザー、ハーバー レジストリの設定に関連するすべてのメタデータを保存するデータベースコンテナです。

  • harbor-jobservice: 画像の複製やスケジュールされたタスクなどのバックグラウンドジョブを管理するサービスで、レジストリ内の操作を効率的に処理します。

  • harbor-nginx: 受信リクエストを適切な ハーバー サービスにルーティングするリバースプロキシおよびロードバランサーで、ユーザーに対して単一のエントリポイントを提供します。

  • harbor-portal: ユーザーが ハーバー レジストリと対話し、画像を管理し、グラフィカルインターフェースを通じて設定を構成できるWebベースのユーザインタフェースです。

  • harbor-registry: 実際の画像ストレージバックエンドとして機能し、コンテナ画像の保存と取得を処理するコンテナです。

  • harbor-registryctl: ハーバー レジストリを管理するためのコマンドラインツールで、ユーザーがターミナルから直接管理タスクや設定を実行できるようにします。

  • harbor-trivy-adapter: Trivy 脆弱性スキャナーと ハーバー を統合し、コンテナイメージの脆弱性に対して自動セキュリティスキャンを可能にするコンテナです。

  • harbor-exporter: は、ハーバー メトリクスを、Prometheus によって監視および可観測性のために収集できる形式でエクスポートするコンテナです。

  • harbor-valkey: メモリ内のキー-バリューストアです。

デプロイ後、Webユーザーインターフェースを介してログインできます。 認証と承認が成功した後、製品の複数の側面を設定できます。例えば:

  • グローバル設定 を構成します。例えば、レジストリを読み取り専用モードに設定したり、プロジェクトを作成できるユーザーを制限したりします。

  • *認証*方法を選択します。

  • データベース認証モードのときにユーザーを追加し、他のユーザーにシステム 管理者ロール を割り当てます。

  • プロジェクトにリソース クォータ を適用します。

  • プライベートレジストリ インスタンス間での画像の レプリケーション を設定します。

1.4 詳細情報

詳細を取得するには、以下のソースを参照してください:

2 要件

このセクションでは、SUSE Private Registryの最小プラットフォーム要件と推奨される本番環境のサイジングについて説明します。

2.1 前提条件

  • Kubernetes クラスター バージョン 1.20 以上

  • Helm バージョン 3.2.0 以上

  • インフラストラクチャにおける永続ボリューム (PV) プロビジョナーのサポート

  • SUSE Private Registry の有効なサブスクリプション

2.2 ハードウェアおよびサイズの推奨事項

これらの値を本番環境の開始点として使用してください。保持ポリシー、イメージの変動、スキャンの同時実行、およびレプリケーショントラフィックに基づいて調整してください。==== クラスターのベースライン

スコープ推奨される本番環境の開始点

ワーカーノード

最低3台のワーカーノード

ノードの形状

ノードごとに最低 4 vCPU および 16 GiB RAM

推奨されるノードの形状

より高いスキャンおよびプッシュの同時実行のために、ノードごとに 8 vCPU および 32 GiB RAM

これらの推奨事項は、RKE2 Kubernetes に関する Rancher のガイダンスと一致しています。 詳細については、 RKE2 Kubernetes のインストール要件を参照してください。

2.2.1 永続ストレージのベースライン

コンポーネントデフォルトのチャートサイズ推奨される開始サイズ

レジストリデータ

5 Gi

500 Gi から 1 Ti

TrivyキャッシュとDB

5 Gi

20 Gi から 50 Gi

ジョブサービスログ

1 Gi

10 Gi

内部PostgreSQL(使用している場合)

1 Gi

最小 20 Gi

内部Valkey(使用している場合)

1 Gi

最小 20 Gi

チャートのデフォルトはインストール指向であり、長期的な生産能力の値として使用すべきではありません。

3 Rancher UIを使用したインストール

SUSE Private Registry UIを使用してRancherをインストールするには、以下の要件を満たし、手順に従う必要があります。

3.1 満たすべき要件は何ですか?

  • 稼働中のサポートされているKubernetesクラスターとRancherがデプロイされている環境。 詳細については、Rancherインストール要件を参照してください。

  • SUSE レジストリサブスクリプションを持つアカウントのSUSE Private Registry資格情報(ユーザー名とパスワード/トークン)。 詳細については、KubernetesのシークレットをSCCから取得するを参照してください。

3.2 SUSE Private Registry UIを使用してRancherをインストールする手順は何ですか?

ステップ 1:インストールチャートを探すために、RancherにSUSE Private Registryリポジトリのある場所を教えてください。
  1. Rancherにログインします。

  2. 左上隅の3本線メニュー(☰)をクリックし、クラスター管理を選択し、通常は`local`のクラスター名をクリックします。

  3. 左側のメニューからアプリ › リポジトリを選択します。

  4. 右上の作成ボタンをクリックし、開いたフォームを完成させます:

    1. ターゲット:OCIリポジトリを選択します。

    2. 名前:リポジトリの名前を入力します。例えば、`SUSE Private Registry`のように。

    3. 説明:オプションで、リポジトリの説明を追加します。

    4. OCIリポジトリホストURL:Enter `oci://registry.suse.com/private-registry/private-registry-helm`.

    5. 認証:`Create an HTTP Basic Auth Secret`に変更し、レジストリの資格情報のユーザー名とパスワードを入力します。

  5. 作成をクリックして確認します。

SUSE Private RegistryリポジトリをRancherに追加する方法を示すスクリーンショット
Figure 3.1: SUSE Private Registryリポジトリを追加しています。
ステップ 2:`registry.suse.com`の画像にアクセスするためのシークレットを作成します。
  1. 左上隅の3本線メニュー(☰)をクリックし、クラスター管理を選択します。

  2. シークレットを追加したいクラスターに切り替え、探索をクリックします。

  3. シークレット管理に移動するには、ストレージ › シークレットを選択し、右上の作成をクリックします。

  4. HTTP基本認証シークレットを選択し、次に`private-registry`ネームスペースを選択します。

  5. シークレットの名前として`suse-registry`を入力します。

  6. `username`と`password`のフィールドにSUSEの資格情報Section 3.1, “満たすべき要件は何ですか?”を入力します。

SUSE Private RegistryシークレットをRancherに追加する方法を示すスクリーンショット
Figure 3.2: SUSE Private Registryシークレットを追加しています。
ステップ 3:Helmチャートをインストールします。
  1. 左側のメインメニューから、アプリ › チャートを選択します。

  2. 検索ボックスに割り当てられたSUSE Private Registryリポジトリの名前を入力します。たとえば、`SUSE Private Registry`と指定します。 リストに表示されない場合は、すべてのリポジトリを更新をクリックします。

  3. チャートをクリックして、`README.md`を表示します。

  4. オプションで、インストール値をカスタマイズできます。 左側の`Edit Options`パネルのセクションをクリックして、設定可能なすべての値を表示するか、チャートのYAMLファイルで値を直接編集してください。

  5. 右上隅で、このバージョンをインストールをクリックします。

SUSE Private Registryのインストール画面を示すスクリーンショットRancher
Figure 3.3: SUSE Private Registryのインストール

4 コマンドラインを使用したインストール

以下の手順では、SUSE Private Registry(プライベートレジストリ)をKubernetesクラスターにデプロイする方法について説明します。

4.1 SUSE カスタマセンターからKubernetesのシークレットを取得する

SUSE レジストリからプライベートレジストリのイメージをダウンロードしてインストールするには、SUSE カスタマセンター(SCC)のミラーリング資格情報を持つKubernetesのシークレットが必要です。 SCCから資格情報を取得するには、以下の手順に従ってください:

  1. https://scc.suse.comでSUSE カスタマセンターにアクセスし、ログインします。

  2. 左のサイドバーからアクティブなプライベートレジストリサブスクリプションを持つ組織を選択します。

  3. 上部メニューから`Proxies`を選択します。資格情報は右上隅に表示されます。

  4. パスワードを見るには、'目’アイコンをクリックします。

  5. 取得したパスワードを含む`password.txt`ファイルを作成します。

    >head -1 ./password.txt | helm registry login registry.suse.com \
      --username <PRIVATE_REGISTRY_USERNAME> --password-stdin
  6. SUSE レジストリのためのネームスペースを作成します。

    >kubectl create namespace <PRIVATE_REGISTRY_NAMESPACE>
  7. 以下のコマンドを実行して、SCCから取得したミラーリング資格情報をKubernetesシークレットとして保存します:

    >kubectl create secret docker-registry suse-registry \
      --namespace <PRIVATE_REGISTRY_NAMESPACE> \
      --docker-server=registry.suse.com \
      --docker-username=<PRIVATE_REGISTRY_USERNAME> \
      --docker-password=$(head -1 ./password.txt)
  8. オプションで、TLS暗号化通信を使用するには、プライベートキーと証明書ファイルからTLSシークレットを作成します。

    >kubectl create secret tls suse-registry-tls \
      --namespace <PRIVATE_REGISTRY_NAMESPACE> \
      --cert=<CERTIFICATE>.pem \
      --key=<PRIVATE_KEY>.pem

4.2 プライベートレジストリを使用してHelmをインストールして実行する

以下の手順では、プライベートレジストリを使用してHelmをインストールする方法について説明します。 Helmチャートデプロイメントのために、`<RELEASE_NAME>`をカスタムリリース名に置き換えます。

  1. 取得したSUSE レジストリミラーリング資格情報を使用してSCCにログインします。

    >head -1 ./password.txt | helm registry login registry.suse.com \
      --username <SUSE_REGISTRY_USERNAME> --password-stdin
  2. 最新のプライベートレジストリ Helmチャートをインストールします。

    >helm install <RELEASE_NAME> \
      oci://registry.suse.com/private-registry/private-registry-helm \
      --namespace <PRIVATE_REGISTRY_NAMESPACE>

    プライベートレジストリ Helm チャートをインストールすると、次の出力が表示されます:

    NOTES:
    CHART VERSION: 1.1.6
    It may take several minutes for the SUSE Private Registry  1.1.2 deployment to complete.
    
    Once the deployment has finished, you will be able to open the SUSE Private Registry portal at https://core.harbor.domain
    
    To get the admin credentials, copy and run the following commands:
    
    echo Username: "admin"
    echo Password: $(kubectl get secret --namespace <PRIVATE_REGISTRY_NAMESPACE>-harbor-core <RELEASE_NAME> -o jsonpath="{.data.HARBOR_ADMIN_PASSWORD}" | base64 -d)

    Helm バージョン 4 では、インストールするチャートを指定するためにダイジェストを使用できます:

    >helm install <RELEASE_NAME> \
      oci://registry.suse.com/private-registry/private-registry-helm@sha256:<DIAGEST_OF_CHART_TO_INSTALL> \
      --namespace <PRIVATE_REGISTRY_NAMESPACE>
Tip
Tip
  • 管理者のパスワードを取得するには、次のコマンドを実行することもできます:

    >kubectl get secret \
      --namespace <PRIVATE_REGISTRY_NAMESPACE> \
      --harbor-core <RELEASE_NAME> \
      -o jsonpath="{.data.HARBOR_ADMIN_PASSWORD}" | base64 -d; echo
  • '--wait=watcher' フラグを使用して kstatus ウォッチャーを利用することで、すべてのオブジェクトがインストールを完了する準備が整っていることを確認できます。 ウォッチャーを使用すると、コマンドの実行に時間がかかる場合があります。

suse_registry_override.yaml ファイルからカスタム値でデフォルトのインストールを上書きするには、Appendix A, SUSE Private Registry Helm チャートを上書きする を参照してください。

コマンドは、いくつかの関連するコンテナのデプロイを開始し、完了するまでに数分かかる場合があります。 また、プライベートレジストリ ウェブポータルへの URL と管理者の資格情報を取得するためのコマンドを含むメッセージを表示します。

4.3 プライベートレジストリのアップグレード

Helm チャートのリリースを特定の新しいバージョンにアップグレードするには、次のコマンドを実行してください:

>helm upgrade <RELEASE_NAME> \
  oci://registry.suse.com/private-registry/private-registry-helm \
  --version <NEW_VERSION_OF_HELM_CHART> \
  --namespace <PRIVATE_REGISTRY_NAMESPACE> \

ダイジェストはHelmのバージョン 4 でのみ利用可能です。

>helm update <RELEASE_NAME> \
  oci://registry.suse.com/private-registry/private-registry-helm@sha256:<DIAGEST_OF_CHART_TO_INSTALL> \
  --namespace <PRIVATE_REGISTRY_NAMESPACE> \

5 高可用性 セットアップ

Helm を使用して、高可用性 (HA) の プライベートレジストリ を Kubernetes クラスターにデプロイできます。 HAセットアップ は、プライベートレジストリ が実行されているノードの1つが利用できなくなった場合でも、ユーザーがサービスの中断を経験しないことを保証します。

5.1 HAセットアップ のアーキテクチャ

プライベートレジストリ コンポーネントのほとんどは、現在ステートレスです。 したがって、ポッドのレプリカを増やすことでスケールでき、複数のワーカーノードで実行されることを保証します。Kubernetes サービスはポッド間の接続を保証します。

ストレージについては、ユーザーはアプリケーションデータ用に HA PostgreSQL と Valkey または Redis クラスターを提供し、画像やチャートを保存するための PVC またはオブジェクトストレージを用意する必要があります。

image::private-registry-ha.png[プライベートレジストリ HAセットアップ, width=100%]。プライベートレジストリ HAセットアップ。Kubernetes クラスターは、HA PostgreSQL と HA Valkey を使用して HAセットアップ に Ingress で構成されています。

5.2 前提条件

  • Kubernetes クラスターのバージョン 1.20 以上

  • Helm のバージョン 3.2.0 以上

  • HA Ingress コントローラー (プライベートレジストリ は外部エンドポイントを管理しません)

  • HA PostgreSQL 9.6+ (プライベートレジストリ は HA データベースのデプロイを処理しません)

  • HA Valkey または Redis (プライベートレジストリ は HA Valkey または Redis のデプロイを処理しません)

  • ノード間で共有できる永続ボリュームクレーム (PVC) または外部オブジェクトストレージ

  • SUSE Private Registry の有効なサブスクリプション

5.3 プライベートレジストリ HA で をデプロイする

  1. プライベートレジストリ Helm チャートをダウンロードします。

      $ helm pull oci://registry.suse.com/private-registry/private-registry-helm --untar
  2. Update the deployment parameters to match your requirements. Refer to Appendix B, プライベートレジストリ HAセットアップHelmチャートの例 for an example Helm chart for プライベートレジストリ HA setup. Refer to Appendix A, SUSE Private Registry Helm チャートを上書きする for a complete list of values to specify or override.

  3. Install the プライベートレジストリ Helm chart. Replace <RELEASE_NAME> with your custom release name for the Helm chart deployment.

      $ helm install <RELEASE_NAME> private-registry-helm/

6 RancherをOIDCアイデンティティプロバイダーとして構成します。

このガイドでは、RancherをOIDCアイデンティティプロバイダーとして機能させる方法を説明します。これにより、ユーザーはSUSE Private Registryの資格情報を使用して、Rancherなどの外部アプリケーションに認証できます。

6.1 手順1:oidc-provider機能フラグを有効にします。

  1. 管理者としてRancherのUIにログインします。

  2. 左上の3本線メニュー(☰)をクリックし、グローバル設定 › 機能フラグに移動します。

  3. `oidc-provider`フラグを見つけ、*その他のアクション*アイコン(⋮)をクリックし、*有効化*をクリックします。

をOIDCアイデンティティプロバイダーとして構成するRancher

6.2 ステップ2:OIDCClientリソースを作成します。

Rancherは、ダウンストリームアプリケーションを登録するために`OIDCClient`カスタムリソースを使用します。

  1. 次の内容を含む`rancher-oidc-client.yaml`という名前のファイルを作成します:

    apiVersion: management.cattle.io/v3
    kind: OIDCClient
    metadata:
      name: spr-client
    spec:
      tokenExpirationSeconds: 600
      refreshTokenExpirationSeconds: 3600
      redirectURIs:
        # Replace this with the actual callback URL of your SUSE private registry instance
        - "https://<SUSE_PRIVATE_REGISTR_URL>/c/oidc/callback"
  2. Rancherが実行されているクラスターにファイルを適用します:

    >kubectl apply -f rancher-oidc-client.yaml

6.3 ステップ3:クライアントIDとシークレットを取得します。

リソースが作成されると、Rancherは自動的に`clientID`を埋め、`clientSecret`を含むKubernetesシークレットをプロビジョニングします。

  1. 生成されたクライアントIDを取得します:

    >kubectl get oidcclient spr-client -o jsonpath="{.status.clientID}"
  2. クライアントシークレットを取得します。前のステップで取得したIDを`<YOUR_CLIENT_ID>`に置き換えることを忘れないでください:

    >kubectl get secret <YOUR_CLIENT_ID>
      -n cattle-oidc-client-secrets
      -o jsonpath="{.data.client-secret-1}" | base64 -d

6.4 ステップ4:SUSE Private Registryを構成します。

RancherをOIDCプロバイダーとして使用するようにSUSE Private Registryを構成できます。値をHelm経由で渡します。 `values-oidc.yaml`の構成で`core.configureUserSettings`ブロックを使用します。

以下は、上記で取得した資格情報を使用して、あなたのRancherエンドポイントを利用した例のブロックです。 <YOUR_CLIENT_ID>`と<YOUR_CLIENT_SECRET>`の値を置き換えてください。

core:
  configureUserSettings: |
    {
      "auth_mode": "oidc_auth",
      "oidc_name": "Rancher",
      "oidc_endpoint": "<RANCHER_URL>/oidc",
      "oidc_client_id": "<YOUR_CLIENT_ID>",
      "oidc_client_secret": "<YOUR_CLIENT_SECRET>",
      "oidc_scope": "openid,profile,offline_access",
      "oidc_verify_cert": false,
      "oidc_auto_onboard": true,
      "oidc_user_claim": "preferred_username",
      "oidc_groups_claim": "groups",
      "oidc_admin_group": "spr-admins"
    }
Note
Note

あなたのインスタンスが自己署名証明書を使用している場合、`oidc_verify_cert`は`false`に設定されていることを確認してください。Rancher `oidc_admin_group`を指定することにより、`spr-admins`グループに属する任意のRancherユーザーは、SUSE Private Registryでシステム管理者権限を自動的に付与されます。

7 ホットスポットに関する一般的な質問とその回答 (FAQ)

7.1 製品の概要と差別化要因

顧客はSUSE Private Registryのためにどのようなサブスクリプションが必要ですか?

これはRancherスイートに含まれており、Rancherプライムのアドオンとして提供されています。

アドオンの価格は他のアドオンと同じです。

ハーバー(アプリケーションコレクションまたはアップストリームから)の差別化要因は何ですか?

必要な場合はSUSE Private Registryを使用してください:

  • 製品の問題に対するレベル3(L3)サポート。

  • 予測可能なリリースサイクル。

  • 既知の脆弱性に対するパッチ適用済みイメージ。アップストリームのハーバーイメージはDocker ハブからのもので、しばしば多数の未パッチの脆弱性を含んでいます。

    時間が経つにつれて、SUSEはRancherとの標準で用意されている統合を追加し、顧客からの機能リクエストを優先していきます。

顧客はRancherプライムのサブスクリプションと同じ数のアドオンSUSE Private Registryサブスクリプションを購入する必要がありますか?

はい、SUSEセキュリティなどの他のアドオンと同様です。SUSE Private Registryサブスクリプションモデルの追加の利点は、顧客が必要なだけのデプロイメントを実行できることです。

7.2 アップストリームのハーバーとの関係

リリースサイクルはアップストリームのハーバーとどのように一致しますか?

SUSE Private Registryのリリースサイクルはアップストリームのハーバーのリリースサイクルとは独立しています。

SUSE Private Registryの新しいバージョンをリリースする際、SUSEはSUSEの品質保証およびメンテナンス要件を満たすアップストリームのハーバープロジェクトの最新バージョンを含めることを目指しています。

他のソースからハーバーを実行している顧客のために移行に関する考慮事項を公開しますか?

現在はありません。

7.3 デプロイメントとインストール

docker-composeを介してSUSE Private Registryのインストールをサポートしていますか?

いいえ。Helmチャートを使用してSUSE Private Registryをインストールおよび構成する必要があります。このチャートは、継続的な管理(Day 2オペレーション)にも使用され、GitOpsワークフローと統合できます。

ローカル(Rancherマネージャー)クラスターへのデプロイメントを推奨しますか?

いいえ。SUSEは、ダウンストリームクラスターにSUSE Private Registryをデプロイすることを推奨しています。これにより、イメージを消費する必要がある他のダウンストリームクラスターがレジストリにアクセスできるようになります。

高可用性(HA)環境のためのデプロイメントのベストプラクティスは何ですか?

HAの場合、リソースの競合を避けるために、RancherマネジメントクラスターにSUSE Private Registryをデプロイしないでください。

SUSE Private Registryを専用クラスターにデプロイするか、またはアプリケーションクラスターの1つ以上にデプロイすることができます。

手順については、Chapter 5, 高可用性 セットアップを参照してください。Postgresデータベース、ValkeyまたはRedisサーバー、およびIngressコントローラーのHAコンポーネントを自分で提供する必要があることに注意してください。これらのコンポーネントはSUSE Private Registry Helmチャートによってデプロイされず、SUSEによってサポートされていません。

SUSE Private Registry Helmチャートは最終的にアプリケーションコレクションに追加される予定ですか?

はい、SUSEは将来的にそこにチャートを公開する計画です。

Kubernetesオペレーターを出荷していますか?

SUSE Private Registryは専用のオペレーターを出荷していません。それはそのHelmチャートを使用してインストールおよび管理され、GitOpsと統合できます。SUSEは将来のリリースのためにオペレーターに基づく管理を引き続き評価しています。

7.4 セキュリティ、スキャンおよび署名

SUSE Private Registryの中に署名ツールを統合していますか?

SUSE Private Registryは画像に署名することはできませんが、Open Container Initiative (OCI) 互換の署名を保存、配布、検証することができます。

広く使用されているツールは`cosign`で、画像に署名し、署名をSUSE Private Registryに保存することができます。

画像に添付された`cosign`の署名は、SUSE Private Registryポータルから表示およびダウンロードできます。

デプロイメントプロセス中にNotaryまたはCosignを使用して画像に署名することは可能ですか?

SUSE Private Registryは`cosign`の署名を保存、配布、検証することができます。

SUSE Private Registry自体は画像に署名しません。画像はビルドプロセス中に署名し、その後、画像と一緒に署名をレジストリにアップロードする必要があります。

NotaryはSUSE Private Registryに含まれておらず、サポートされていません。

画像はTrivyのみでCommon Vulnerabilities and Exposures (CVEs)のスキャンが行われますか、それともSUSE Security (NeuVector)も使用できますか?

画像は、標準で付属しているTrivyでスキャンされます。SUSE Securityは、Trivyの追加または置き換えとして追加できます。

ClamAVや同様のマルウェアスキャンを実行することは可能ですか?

デフォルトでは、SUSE Private RegistryはTrivyを使用して画像をスキャンします。SUSE Security (NeuVector)をスキャナーとして構成することもできます。

プルスルーキャッシュシナリオでは、脆弱性基準は適用されますか?

はい、ただし既知の制限があります。アップストリームのハーバー 問題のため、スキャンが完了していないため、画像の最初のプル時には脆弱性基準は適用されません。

完全なカバレッジのために、SUSE Private RegistryをSUSE Security アドミッションコントロールと組み合わせてください。

SUSE Private Registryのコンテナイメージは強化されていますか?

はい。SUSE Private Registryのコンテナイメージは強化されています。それらはSUSE Linux Enterprise Base Container Images (SLE BCI)に基づいており、SUSE Linux Enterpriseに使用される同じエンタープライズグレードのSUSE Build Serviceで構築されています。これにより、安全なサプライチェーンが確保されます。イメージは署名されており、SUSEはSupply-chain Levels for Software Artifacts (SLSA)のアテステーションを公開しています。

SUSE Private Registryのイメージは署名されていますか?具体的には、

イメージは`cosign`で署名されています。KB 000021411で公開されたPEM形式の署名キーを保存することで、それらを検証できます。

次に、例えば次のように実行します:

cosign verify --key container-key.pem registry.suse.com/private-registry/harbor-portal:latest

7.5 レプリケーションとsync

SUSE レジストリとSUSE アプリケーションコレクションを同期するためのプラグインの計画はありますか?

はい、そのような機能が計画されています。

SUSE Private Registryはマルチサイトレプリケーションを提供していますか?

はい。SUSE Private Registryはマルチサイトのポリシーベースのイメージレプリケーション(プルとプッシュ)をサポートしています。各レジストリを独立させたまま、複数のSUSE Private Registryデプロイメント間でイメージを同期できます。

7.6 Rancherとの機能と統合

Rancher内でレジストリを拡張機能を使用して統合する計画はありますか?

はい。SUSEはRancher Primeやその他の提供物とのより深い統合を計画しています。今後検討されている強化には、シングルサインオン(SSO)統合、SUSEセキュリティスキャナーの簡素化されたセットアップ、アプリケーションコレクションのミラーリング、SUSE 監視による監視、Rancher UI拡張が含まれます。

SUSEはトレーニングカタログにレジストリを追加しますか?

これはまだ計画されていません。トレーニング資料に興味がある場合は、トレーニングチームと可能性について話し合うためにSUSEに連絡してください。

7.7 サポートとドキュメント

SUSE Private Registryに対するサポートポリシーはありますか?

はい。SUSE Private Registryのサポートポリシーは、他のRancherプライムアドオンと同じです。

SUSE Private Registryのドキュメントに情報が不足している場合、公式のハーバードキュメントを参照してもよいですか?

はい。SUSE Private Registryはハーバーに基づいているため、公式のハーバードキュメントは有用なリソースです。SUSEバージョンに特有の機能については、SUSE Private Registryドキュメントを参照してください。

Release notesは、あなたのハーバーバージョンに対応するアップストリームのSUSE Private Registryバージョンを指定します。

8 トラブルシューティング

このセクションでは、SUSE Private Registryをデプロイする際や使用する際に遭遇する可能性のある問題に対する解決策を提供します。

`401 unauthorized`をインストールしようとしたときに、SUSE Private Registryエラーが発生しています。

エラーメッセージの完全なバージョンは次のようになります:

Error: INSTALLATION FAILED:
GET "https://registry.suse.com/v2/private-registry/private-registry-helm/tags/list":
response status code 401: unauthorized:
authentication required:
[map[Action:pull Class: Name:private-registry/private-registry-helm Type:repository]]

SUSE Private Registryをインストールして使用するには、次のものが必要です:

  • この製品を含む適格なサブスクリプション、例えばRancherスイート サブスクリプションまたはSUSE Private Registryアドオン サブスクリプション。 適格なサブスクリプションをお持ちでない場合は、SUSEの担当者にお問い合わせください。

  • サブスクリプションを保持しているSUSE レジストリ組織のHelmミラーリング資格情報を使用して、SCCでSCCにログインします。 詳細については、Section 4.1, “SUSE カスタマセンターからKubernetesのシークレットを取得する”を参照してください。

A SUSE Private Registry Helm チャートを上書きする

SUSE Private Registry (プライベートレジストリ) Helm チャートはデフォルト値で配信されます。 次のいずれかの方法で Helm チャートのインストールを調整できます:

  • コマンドラインの helm install --set フラグに特定のパラメータを追加します。例えば:

    $ helm install <RELEASE_NAME> \
    oci://registry.suse.com/private-registry/private-registry-helm \
    --namespace <PRIVATE_REGISTRY_NAMESPACE> \
    --set harborAdminPassword=<MY_PASSWORD> \
    --set externalURL=https://<PRIVATE_REGISTRY_FQDN> \
    --set expose.ingress.hosts.core=<PRIVATE_REGISTRY_FQDN>
  • Create a SUSE custom suse_registry_override.yaml file and pass it to the --f flag, for example:

      $ helm install <RELEASE_NAME> \
      oci://registry.suse.com/private-registry/private-registry-helm \
      --namespace <PRIVATE_REGISTRY_NAMESPACE>
      -f suse_registry_override.yaml

A1 SUSE レジストリ Helm 上書きファイルの例

Example A1: Ingress を使用した最小限のデプロイメント
expose:
  type: ingress 1
  ingress:
    hosts:
      core: <PRIVATE_REGISTRY_FQDN> 2

externalURL: https://<PRIVATE_REGISTRY_FQDN> 3

harborAdminPassword: "<MY_PASSWORD>" 4

database:
  internal:
    password: "<MY_PASSWORD_POSTGRESQL>"

redis:
  internal:
   password: "<MY_PASSWORD_REDIS>"

1

SUSE レジストリ がどのように公開されるか。ingressloadBalancernodePort または clusterIPhis である可能性があります。デフォルトは`ingress`です。

2

Kubernetes 内部ネットワーキング設定のホスト名。

3

SUSE レジストリ アプリケーションが実行される URL。ユーザーインターフェース内のリンク、リダイレクト、および API 応答を生成するために使用されます。

4

アプリケーションの管理者パスワード。

Example A2: loadBalancer を使用した典型的なデプロイメント
expose:
  type: loadBalancer 1
  tls:
    enabled: true
    certSource: secret 2
    secret:
      secretName: <SECRET_NAME>

    auto:
      commonName: <PRIVATE_REGISTRY_FQDN> 3

externalURL: https://<PRIVATE_REGISTRY_FQDN> 4

harborAdminPassword: "<MY_PASSWORD>" 5

database:
  internal:
    password: "<MY_PASSWORD_POSTGRESQL>"

redis:
  internal:
   password: "<MY_PASSWORD_REDIS>"

1

SUSE レジストリ がどのように公開されるか。ingressloadBalancernodePort または clusterIP である可能性があります。デフォルトは`ingress`です。

2

autosecret または none である可能性があります。オプションに応じて、追加の値を含める必要がある場合があります。

3

TLS暗号化を使用する場合、このフィールドは`externalURL`の値と一致する必要があります。

4

SUSE レジストリ アプリケーションが実行される URL。ユーザーインターフェース内のリンク、リダイレクト、および API 応答を生成するために使用されます。

5

アプリケーションの管理者パスワード。

A2 Helmチャートパラメータと値を上書きします。

以下の表には、デフォルトのインストール値を上書きするために使用できるすべてのパラメータとその説明がリストされています。

グローバルパラメータ
global.imageRegistry

すべてのイメージに使用されるコンテナイメージレジストリに対するグローバル上書きを設定します。

global.imagePullSecrets

コンテナイメージレジストリにアクセスするためのグローバルプルシークレットを設定します。

共通パラメータ
harborAdminPassword

ハーバー管理者の初期パスワードを設定します。デプロイ後にポータルから変更します。デフォルトは`Harbor12345`です。

externalURL

harbor-core`サービスの外部URLを指定します。デフォルトはhttps://core.harbor.domain`です。

existingSecretAdminPasswordKey

ハーバー管理者パスワードを含むシークレット内のキー名を設定します。デフォルトは`HARBOR_ADMIN_PASSWORD`です。

imagePullSecrets

すべてのデプロイメントの`imagePullSecrets`名前を設定します。

updateStrategy.type

永続ボリュームを持つデプロイメントの更新戦略を設定します。`RollingUpdate`または`Recreate`を受け入れます。ボリュームのRWMがサポートされていない場合は`Recreate`を使用します。デフォルトは`RollingUpdate`です。

logLevel

ハーバーサービスのログレベルを設定します。fatalerrorwarninfo、`debug`または`trace`を受け入れます。デフォルトは`debug`です。

enableMigratehelmHook

Helmフックを介してデータベース移行ジョブを実行します。`true`の場合、移行ジョブを`harbor-core`から分離します。デフォルトは`false`です。

caSecretName

`ca.crt`キーを含むシークレット名を指定します。

プロキシパラメーター
proxy.httpProxy

HTTPプロキシサーバーのURLを指定します。デフォルトは`""`です。

proxy.httpsProxy

HTTPSプロキシサーバーのURLを指定します。デフォルトは`""`です。

proxy.noProxy

プロキシ設定をバイパスするURLを設定します。デフォルトは`127.0.0.1,localhost,.local,.internal`です。

proxy.components

プロキシ設定を使用するコンポーネントを設定します。デフォルトは`["core","jobservice","trivy"]`です。

公開パラメータ
expose.type

サービス公開タイプを指定します: ingress, clusterIP, nodePort または loadBalancer。デフォルトは`ingress`です。

expose.tls.enabled

TLSを有効にします。デフォルトは`true`です。

expose.tls.certSource

TLS証明書のソースを auto, secret または none として設定します。デフォルトは`auto`です。

expose.tls.auto.commonName

タイプが ingress でない場合、証明書の共通名を設定します。

expose.tls.secret.secretName

tls.crt(証明書)と tls.key(秘密鍵)を含むシークレットの名前を指定します。

expose.ingress.hosts.core

Ingress ルール内の ハーバー コアサービスホストを設定します。デフォルトは`core.harbor.domain`です。

expose.ingress.controller

Ingress コントローラーの種類を設定します。default, gce, alb, f5-bigip および ncp をサポートします。デフォルトは`default`です。

expose.ingress.kubeVersionOverride

Ingress テンプレート用の Kubernetes バージョンを上書きします。

expose.ingress.annotations

Ingress アノテーションを設定します。

expose.ingress.labels

Ingress 特有のラベルを設定します。デフォルトは`{}`です。

expose.clusterIP.name

ClusterIPサービス名を設定します。デフォルトは`harbor`です。

expose.clusterIP.annotations

ClusterIPサービスアノテーションを設定します。デフォルトは`{}`です。

expose.clusterIP.ports.httpPort

HTTPサービスポートを設定します。デフォルトは`80`です。

expose.clusterIP.ports.httpsPort

HTTPSサービスポートを設定します。デフォルトは`443`です。

expose.clusterIP.labels

ClusterIP特有のラベルを設定します。デフォルトは`{}`です。

expose.nodePort.name

NodePortサービス名を設定します。デフォルトは`harbor`です。

expose.nodePort.ports.http.port

HTTPサービスポートを設定します。デフォルトは`80`です。

expose.nodePort.ports.http.nodePort

HTTPノードポートを設定します。デフォルトは`30002`です。

expose.nodePort.ports.https.port

HTTPSサービスポートを設定します。デフォルトは`443`です。

expose.nodePort.ports.https.nodePort

HTTPSノードポートを設定します。デフォルトは`30003`です。

expose.nodePort.annotations

NodePortアノテーションを設定します。

expose.nodePort.labels

NodePort特有のラベルを設定します。デフォルトは`{}`です。

expose.loadBalancer.name

サービス名を設定します。デフォルトは`harbor`です。

expose.loadBalancer.IP

IP割り当てがサポートされている場合、loadBalancer IPを設定します。デフォルトは`""`です。

expose.loadBalancer.ports.httpPort

HTTPサービスポートを設定します。デフォルトは`80`です。

expose.loadBalancer.ports.httpsPort

HTTPSサービスポートを設定します。デフォルトは`30002`です。

expose.loadBalancer.annotations

loadBalancerサービスアノテーションを設定します。デフォルトは`{}`です。

expose.loadBalancer.labels

loadBalancer特有のラベルを設定します。デフォルトは`{}`です。

expose.loadBalancer.sourceRanges

loadBalancerSourceRangesのIPアドレス範囲を指定します。デフォルトは`[]`です。

永続性パラメータ
persistence.enabled

データの永続性を有効または無効にします。デフォルトは`true`です。

persistence.resourcePolicy

`keep`は、Helm削除操作中にPVCの削除を防ぎます。空の値は、チャート削除後にPVCを削除します。デフォルトは`keep`です。

persistence.persistentVolumeClaim.registry.existingClaim

バインディングの前に手動で作成する必要がある既存のPVC。PVCが他のコンポーネントと共有されている場合、subPathの仕様が必要です。

persistence.persistentVolumeClaim.registry.storageClass

ボリュームをプロビジョニングする`storageClass`。

persistence.persistentVolumeClaim.registry.subPath

ボリューム内のサブパス。

persistence.persistentVolumeClaim.registry.accessMode

ボリュームのアクセスモード。デフォルトは`ReadWriteOnce`です。

persistence.persistentVolumeClaim.registry.size

ボリュームのサイズ。デフォルトは`5Gi`です。

persistence.persistentVolumeClaim.registry.annotations

ボリュームの注釈。

persistence.persistentVolumeClaim.jobservice.jobLog.existingClaim

バインディングの前に手動で作成する必要がある既存のPVC。PVCが他のコンポーネントと共有されている場合、subPathの仕様が必要です。

persistence.persistentVolumeClaim.jobservice.jobLog.storageClass

ボリュームをプロビジョニングする`storageClass`。

persistence.persistentVolumeClaim.jobservice.jobLog.subPath

ボリューム内のサブパス。

persistence.persistentVolumeClaim.jobservice.jobLog.accessMode

ボリュームのアクセスモード。デフォルトは`ReadWriteOnce`です。

persistence.persistentVolumeClaim.jobservice.jobLog.size

ボリュームのサイズ。デフォルトは`1Gi`です。

persistence.persistentVolumeClaim.jobservice.jobLog.annotations

ボリュームの注釈。

persistence.persistentVolumeClaim.database.existingClaim

バインディングの前に手動で作成する必要がある既存のPVC。PVCが他のコンポーネントと共有されている場合、subPathの仕様が必要です。

persistence.persistentVolumeClaim.database.storageClass

ボリュームをプロビジョニングする`storageClass`。

persistence.persistentVolumeClaim.database.subPath

ボリューム内のサブパス。外部データベースが使用されている場合は無視されます。

persistence.persistentVolumeClaim.database.accessMode

ボリュームのアクセスモード。外部データベースが使用されている場合は無視されます。デフォルトは`ReadWriteOnce`です。

persistence.persistentVolumeClaim.database.size

ボリュームのサイズ。外部データベースが使用されている場合は無視されます。デフォルトは`1Gi`です。

persistence.persistentVolumeClaim.database.annotations

ボリュームの注釈。

persistence.persistentVolumeClaim.redis.existingClaim

バインディングの前に手動で作成する必要がある既存のPVC。PVCが他のコンポーネントと共有されている場合、subPathの仕様が必要です。

persistence.persistentVolumeClaim.redis.storageClass

ボリュームをプロビジョニングする`storageClass`。指定されていない場合はデフォルトのStorageClassが使用されます。

persistence.persistentVolumeClaim.redis.subPath

ボリューム内のサブパス。外部のValkeyが使用されている場合は無視されます。

persistence.persistentVolumeClaim.redis.accessMode

ボリュームのアクセスモード。外部のValkeyが使用されている場合は無視されます。デフォルトは`ReadWriteOnce`です。

persistence.persistentVolumeClaim.redis.size

ボリュームのサイズ。外部のValkeyが使用されている場合は無視されます。デフォルトは`1Gi`です。

persistence.persistentVolumeClaim.redis.annotations

ボリュームの注釈。

persistence.persistentVolumeClaim.trivy.existingClaim

バインディングの前に手動で作成する必要がある既存のPVC。PVCが他のコンポーネントと共有されている場合、subPathの仕様が必要です。

persistence.persistentVolumeClaim.trivy.storageClass

ボリュームをプロビジョニングする`storageClass`。指定されていない場合はデフォルトのStorageClassが使用されます。

persistence.persistentVolumeClaim.trivy.subPath

ボリューム内のサブパス。

persistence.persistentVolumeClaim.trivy.accessMode

ボリュームのアクセスモード。デフォルトは`ReadWriteOnce`です。

persistence.persistentVolumeClaim.trivy.size

ボリュームのサイズ。デフォルトは`1Gi`です。

persistence.persistentVolumeClaim.trivy.annotations

ボリュームの注釈。

persistence.imageChartStorage.disableredirect

コンテンツのバックエンドからのリダイレクト管理を制御します。サポートされていないバックエンドのリダイレクトを無効にするにはtrueに設定します。デフォルトは`false`です。

persistence.imageChartStorage.caBundleSecretName

自己署名のストレージサービス証明書用のCAバンドルを含むシークレットの名前。

persistence.imageChartStorage.type

画像とチャートのストレージタイプ:filesystemazuregcss3swift、または`oss`。デフォルトは`filesystem`です。

persistence.imageChartStorage.gcs.existingSecret

GCSサービスアカウントJSONキーを含む既存のシークレットの名前。キーは`gcs-key.json`でなければなりません。デフォルトは`""`です。

persistence.imageChartStorage.gcs.useWorkloadIdentity

GKEクラスターでのワークロードアイデンティティの使用を有効にします。デフォルトは`false`です。

nginxパラメータ
nginx.image.repository

nginxのイメージリポジトリ。デフォルトは`private-registry/harbor-nginx`です。

nginx.image.tag

nginxのイメージタグ。

nginx.replicas

実行するレプリカの数。デフォルトは`1`です。

nginx.revisionHistoryLimit

保持する古い`ReplicaSet`リビジョンの最大数。デフォルトは`10`です。

nginx.resources

コンテナに割り当てられた計算リソース。デフォルトは`undefined`です。

nginx.automountServiceAccountToken

サービスアカウントトークンの自動マウントを制御します。デフォルトは`false`です。

nginx.nodeSelector

ポッド割り当てに使用されるノードラベル。デフォルトは`{}`です。

nginx.tolerations

ポッド割り当てに使用されるトレランス。デフォルトは`[]`です。

nginx.affinity

ノードまたはポッドのアフィニティルール。デフォルトは`{}`です。

nginx.topologySpreadConstraints

リージョンやアベイラビリティゾーンなどの障害ドメインにわたるポッドの分散ルール。デフォルトは`[]`です。

nginx.podAnnotations

nginxポッドに追加されたアノテーション。デフォルトは`{}`です。

ポータルパラメータ
portal.image.repository

ポータルイメージのリポジトリの場所。デフォルトは`private-registry/harbor-portal`です。

portal.image.tag

ポータルイメージのタグ。デフォルトは`3.11`です。

portal.replicas

作成するレプリカの数。デフォルトは`1`です。

portal.revisionHistoryLimit

保持する古い`ReplicaSet`リビジョンの最大数。デフォルトは`10`です。

portal.resources

コンテナに割り当てられたリソース。デフォルトは`undefined`です。

portal.automountServiceAccountToken

サービスアカウントトークンの自動マウントを制御します。デフォルトは`false`です。

portal.nodeSelector

ポッド割り当てに使用されるノードラベル。デフォルトは`{}`です。

portal.tolerations

ポッド割り当てに使用されるトレランス。デフォルトは`[]`です。

portal.affinity

ノードとポッドのアフィニティ設定。デフォルトは`{}`です。

portal.topologySpreadConstraints

リージョンやアベイラビリティゾーンなどの障害ドメインにわたるポッドの分配を定義します。デフォルトは`[]`です。

portal.podAnnotations

ポータルポッドに追加されたアノテーション。デフォルトは`{}`です。

portal.serviceAnnotations

ポータルサービスに追加されたアノテーション。デフォルトは`{}`です。

portal.priorityClassName

ポッド実行のための優先クラス名。

portal.initContainers

コントローラーコンテナが開始する前に実行される初期コンテナ。デフォルトは`[]`です。

コアパラメータ
core.image.repository

ハーバーコアイメージのリポジトリ。デフォルトは`private-registry/harbor-core`です。

core.image.tag

ハーバーコアイメージのタグ。デフォルトは`2.11`です。

core.replicas

レプリカの数。デフォルトは`1`です。

core.revisionHistoryLimit

リビジョン履歴の制限。デフォルトは`10`です。

core.startupProbe.initialDelaySeconds

スタートアッププローブの初期遅延(秒)。デフォルトは`10`です。

core.resources

コンテナに割り当てるリソース。デフォルトは`undefined`です。

core.automountServiceAccountToken

サービスアカウントトークンをマウントします。デフォルトは`false`です。

core.nodeSelector

ポッド割り当てのためのノードラベル。デフォルトは`{}`です。

core.tolerations

ポッド割り当てのためのトレランス。デフォルトは`[]`です。

core.affinity

ノードまたはポッドのアフィニティ。デフォルトは`{}`です。

core.topologySpreadConstraints

ポッドが地域や可用性ゾーンなどの障害ドメインに分散される方法を定義する制約。デフォルトは`[]`です。

core.podAnnotations

コアポッドに追加するアノテーション。デフォルトは`{}`です。

core.serviceAnnotations

コアサービスに追加するアノテーション。デフォルトは`{}`です。

core.configureUserSettings

ユーザー設定を構成するための環境変数CONFIG_OVERWRITE_JSON内のJSON文字列。

core.quotaUpdateProvider

プロジェクトのクォータ使用量を更新するためのプロバイダー、オプションは`redis`または`db`です。デフォルトは`db`です。

core.secret

コアサーバーが他のコンポーネントと通信する際に使用されます。

core.secretName

トークンの暗号化または復号化に自分のTLS証明書と秘密鍵を使用するためのKubernetesシークレットの名前。

core.tokenKey

サービストークンに署名するために使用されるPEM形式のRSA秘密鍵。

core.tokenCert

サービストークンを検証するために使用される`core.tokenKey`によって署名されたPEM形式の証明書。

core.xsrfKey

XSRFキー、指定されていない場合は自動的に生成されます。

core.priorityClassName

ポッドを実行するための優先度クラス。

core.artifactPullAsyncFlushDuration

アーティファクトのプル時間とリポジトリのプルカウントを非同期で更新するための期間。

core.gdpr.deleteUser

GDPRに準拠したユーザー削除を有効にします。デフォルトは`false`です。

core.gdpr.auditLogsCompliant

ユーザーがシステムから削除された場合、監査ログのユーザー名をそのCRC32値に変更することでGDPR準拠を有効にします。デフォルトは`false`です。

core.initContainers

コントローラーのコンテナが起動する前に実行する初期コンテナ。デフォルトは`[]`です。

ジョブサービスのパラメータ
jobservice.image.repository

ジョブサービスイメージのリポジトリ。デフォルトは`private-registry/harbor-jobservice`です。

jobservice.image.tag

ジョブサービスイメージのタグ。デフォルトは`2.11`です。

jobservice.replicas

レプリカの数。デフォルトは`1`です。

jobservice.revisionHistoryLimit

リビジョン履歴の制限。デフォルトは`10`です。

jobservice.maxJobWorkers

ジョブワーカーの最大数。デフォルトは`10`です。

jobservice.jobLoggers

ジョブのロガー: file, database または stdout。デフォルトは`[file]`です。

jobservice.loggerSweeperDuration

ジョブログを保持する日数(`jobLoggers`が`stdout`に設定されている場合は無視されます)。デフォルトは`14`です。

jobservice.notification.webhook_job_max_retry

Webhook通知送信の最大再試行回数。デフォルトは`3`です。

jobservice.notification.webhook_job_http_client_timeout

Webhook通知送信のためのHTTPクライアントのタイムアウト(秒)。デフォルトは`3`です。

jobservice.reaper.max_update_hours

タスクが完了するまでの最大待機時間(時間)。指定された時間が経過してもタスクが完了しない場合、エラーとしてマークされますが、実行は続けられます。デフォルトは`24`です。

jobservice.reaper.max_dangling_hours

新しいタスクが作成されない状態での実行の最大時間(時間)。デフォルトは`168`です。

jobservice.resources

コンテナに割り当てる[リソース]。デフォルトは`undefined`です。

jobservice.automountServiceAccountToken

サービスアカウントトークンをマウントします。デフォルトは`false`です。

jobservice.nodeSelector

ポッド割り当てのためのノードラベル。デフォルトは`{}`です。

jobservice.tolerations

ポッド割り当てのためのトレランス。デフォルトは`[]`です。

jobservice.affinity

ノードまたはポッドのアフィニティ。デフォルトは`{}`です。

jobservice.topologySpreadConstraints

ポッドが地域や可用性ゾーンなどの障害ドメインに分散されるように定義する制約。デフォルトは`[]`です。

jobservice.podAnnotations

ジョブサービスポッドに追加するアノテーション。デフォルトは`{}`です。

jobservice.priorityClassName

ポッドを実行するための優先度クラス。

jobservice.secret

ジョブサービスが他のコンポーネントと通信する際に使用するシークレット。シークレットキーが指定されていない場合、Helmが生成します。16文字の文字列でなければなりません。

jobservice.initContainers

コントローラーのコンテナが起動する前に実行する初期コンテナ。デフォルトは`[]`です。

レジストリパラメータ
registry.registry.image.repository

レジストリイメージのリポジトリの場所。デフォルトは`private-registry/harbor-registry`です。

registry.registry.image.tag

レジストリイメージのタグ。デフォルトは`2.11`です。

registry.registry.resources

コンテナに割り当てる[リソース]。デフォルトは`undefined`です。

registry.controller.image.repository

レジストリコントローライメージのリポジトリの場所。デフォルトは`private-registry/harbor-registryctl`です。

registry.controller.image.tag

レジストリコントローライメージのタグ。デフォルトは`2.11`です。

registry.controller.resources

コンテナに割り当てる[リソース]。デフォルトは`undefined`です。

registry.replicas

レプリカインスタンスの数。デフォルトは`1`です。

registry.revisionHistoryLimit

履歴に保持する最大のリビジョン数。デフォルトは`10`です。

registry.nodeSelector

ポッド割り当てのためのノードラベル。デフォルトは`{}`です。

registry.automountServiceAccountToken

サービスアカウントトークンをマウントするかどうかを制御します。デフォルトは`false`です。

registry.tolerations

ポッド割り当てのためのトレランス。デフォルトは`[]`です。

registry.affinity

ノードまたはポッドのアフィニティ。デフォルトは`{}`です。

registry.topologySpreadConstraints

地域や可用性ゾーンなどの障害ドメインにわたるポッドの分散を定義する制約。デフォルトは`[]`です。

registry.middleware

バックエンドストレージとDockerプル受信者の間のCDNのためのミドルウェアサポート。

registry.podAnnotations

レジストリポッドに追加するアノテーション。デフォルトは`{}`です。

registry.priorityClassName

ポッド実行のための優先度クラス。

registry.secret

クライアントとレジストリストレージバックエンド間のアップロード状態を保護するシークレット。

registry.credentials.username

ハーバーコアの内部レジストリアクセスのためのユーザー名。デフォルトは`harbor_registry_user`です。

registry.credentials.password

ハーバーコアの内部レジストリアクセスのためのパスワード。デフォルトは`harbor_registry_password`です。

registry.credentials.existingSecret

htpasswd認証モードでのレジストリインスタンスアクセスのためのパスワードを含む既存の秘密。デフォルトは`""`です。

registry.credentials.htpasswdString

htpasswd文字列形式のログインとパスワード。`registry.credentials.username`と`registry.credentials.password`を除外します。デフォルトは`undefined`です。

registry.relativeurls

真の場合、Locationヘッダーに相対URLを返します。ハーバーがリバースプロキシの背後にある場合は必須です。デフォルトは`false`です。

registry.upload_purging.enabled

アップロードディレクトリのパージを有効にします。デフォルトは`true`です。

registry.upload_purging.age

アップロードディレクトリ内のファイルが削除されるまでの期間、デフォルトは1週間です。デフォルトは`168h`です。

registry.upload_purging.interval

パージ操作の間隔です。デフォルトは`24h`です。

registry.upload_purging.dryrun

アップロードパージのためのドライランモードを有効にします。デフォルトは`false`です。

registry.initContainers

コントローラーのコンテナが起動する前に実行される初期コンテナです。デフォルトは`[]`です。

Trivyパラメータ
trivy.enabled

Trivyスキャナーを有効または無効にします。デフォルトは`true`です。

trivy.image.repository

Trivyアダプターイメージのリポジトリです。デフォルトは`private-registry/harbor-trivy-adapter`です。

trivy.image.tag

Trivyアダプターイメージのタグです。デフォルトは`2.11`です。

trivy.resources

Trivyアダプターコンテナに割り当てるリソースです。デフォルトは`undefined`です。

trivy.automountServiceAccountToken

サービスアカウントトークンをマウントするかどうか。デフォルトは`false`です。

trivy.replicas

ポッドレプリカの数です。デフォルトは`1`です。

trivy.debugMode

トラブルシューティングのためにTrivyデバッグモードを有効にします。デフォルトは`false`です。

trivy.vulnType

脆弱性の種類のカンマ区切りリスト(os`と`library)。デフォルトは`os,library`です。

trivy.severity

チェックする脆弱性の深刻度のカンマ区切りリストです。デフォルトは`UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL`です。

trivy.ignoreUnfixed

修正された脆弱性のみを表示します。デフォルトは`false`です。

trivy.insecure

レジストリ証明書の検証をスキップします。デフォルトは`false`です。

trivy.skipUpdate

GitHubからのTrivyデータベースのダウンロードを無効にします。デフォルトは`false`です。

trivy.skipJavaDBUpdate

有効にした場合、`trivy-java.db`ファイルの手動ダウンロードが必要です。デフォルトは`false`です。

trivy.offlineScan

Trivyが依存関係を特定するためにAPIリクエストを送信するのを防ぎます。デフォルトは`false`です。

trivy.securityCheck

検出するセキュリティ問題のカンマ区切りリストです。デフォルトは`vuln`です。

trivy.timeout

スキャン完了までの待機時間。デフォルトは`5m0s`です。

trivy.gitHubToken

データベースダウンロードに必要なGitHubアクセストークン。デフォルトは`undefined`です。

trivy.priorityClassName

ポッドを実行するための優先度クラス。デフォルトは`undefined`です。

trivy.topologySpreadConstraints

障害ドメインにわたるポッドの分配制約を定義します。デフォルトは`undefined`です。

trivy.initContainers

メインコンテナが起動する前に実行する初期コンテナのリスト。デフォルトは`[]`です。

データベースパラメータ
database.type

データベースの種類。外部データベースを使用する場合は`external`に設定します。デフォルトは`internal`です。

database.internal.image.repository

データベースイメージのリポジトリ。デフォルトは`private-registry/harbor-db`です。

database.internal.image.tag

データベースイメージのタグ。デフォルトは`2.11`です。

database.internal.password

内部データベースのパスワード。デフォルトは`changeit`です。

database.internal.shmSizeLimit

PostgreSQLのための共有メモリサイズ制限(通常はコンテナメモリ制限の50%)。デフォルトは`512Mi`です。

database.internal.resources

データベースコンテナに割り当てられたリソース。デフォルトは`undefined`です。

database.internal.automountServiceAccountToken

サービスアカウントトークンがマウントされるかどうかを制御します。デフォルトは`false`です。

database.internal.initContainer.migrator.resources

データベースマイグレーター初期コンテナに割り当てられたリソース。デフォルトは`undefined`です。

database.internal.initContainer.permissions.resources

データベース権限初期コンテナに割り当てられたリソース。デフォルトは`undefined`です。

database.internal.nodeSelector

ポッド割り当てのためのノードラベル。デフォルトは`{}`です。

database.internal.tolerations

ポッド割り当てのためのトレランス。デフォルトは`[]`です。

database.internal.affinity

ノードまたはポッドのアフィニティ設定。デフォルトは`{}`です。

database.internal.priorityClassName

ポッドを実行するための優先度クラス。デフォルトは`undefined`です。

database.internal.livenessProbe.timeoutSeconds

ライブネスプローブのタイムアウト(秒):1-5秒)。デフォルトは`1`です。

database.internal.readinessProbe.timeoutSeconds

レディネスプローブのタイムアウト(秒):1-5秒)。デフォルトは`1`です。

database.internal.extrInitContainers

データベースコンテナが起動する前に実行される追加のinitコンテナ。デフォルトは`[]`です。

database.external.host

外部データベースのホスト名。デフォルトは`192.168.0.1`です。

database.external.port

外部データベースのポート番号。デフォルトは`5432`です。

database.external.username

外部データベースのユーザー名。デフォルトは`user`です。

database.external.password

外部データベースのパスワード。デフォルトは`password`です。

database.external.coreDatabase

コアサービスで使用されるデータベース名。デフォルトは`registry`です。

database.external.existingSecret

データベースパスワードを含む既存のシークレット。キーは`password`でなければなりません。デフォルトは`""`です。

database.external.sslmode

外部データベースの接続方法。オプション: require, verify-full, verify-ca, disable。デフォルトは`disable`です。

database.maxIdleConns

プール内のアイドル接続の最大数(0以下はアイドル接続を保持しないことを意味します)。デフォルトは`50`です。

database.maxOpenConns

データベースへのオープン接続の最大数(0以下は無制限を意味します)。デフォルトは`100`です。

database.podAnnotations

データベースポッドに追加するアノテーション。デフォルトは`{}`です。

Valkey / Redis パラメータ
redis.type

Redis のデプロイメントタイプ。外部 external 用に Redis に設定します。デフォルトは`internal`です。

redis.internal.image.repository

Redis イメージのリポジトリ。デフォルトは`private-registry/harbor-redis`です。

redis.internal.image.tag

Redis イメージのタグ。デフォルトは`7.2`です。

redis.internal.resources

Redis コンテナに割り当てられたリソース。デフォルトは`undefined`です。

redis.internal.automountServiceAccountToken

サービスアカウントトークンがマウントされるかどうかを制御します。デフォルトは`false`です。

redis.internal.nodeSelector

ポッド割り当てのためのノードラベル。デフォルトは`{}`です。

redis.internal.tolerations

ポッド割り当てのためのトレランス。デフォルトは`[]`です。

redis.internal.affinity

ノードまたはポッドのアフィニティ設定。デフォルトは`{}`です。

redis.internal.priorityClassName

Redisポッドを実行するための優先クラスです。デフォルトは`undefined`です。

redis.internal.jobserviceDatabaseIndex

ジョブサービスのデータベースインデックスです。デフォルトは`1`です。

redis.internal.registryDatabaseIndex

レジストリのデータベースインデックスです。デフォルトは`2`です。

redis.internal.trivyAdapterIndex

Trivyアダプターのデータベースインデックスです。デフォルトは`5`です。

redis.internal.harborDatabaseIndex

雑多なハーバービジネスロジックのデータベースインデックスです。デフォルトは`0`です。

redis.internal.cacheLayerDatabaseIndex

ハーバーのキャッシュレイヤーのデータベースインデックスです。デフォルトは`0`です。

redis.internal.initContainers

Redisコンテナが起動する前に実行される初期化コンテナです。デフォルトは`[]`です。

redis.external.addr

外部Redisインスタンスのアドレスです。デフォルトは`192.168.0.2:6379`です。

redis.external.sentinelMasterSet

Redisセントネルマスターセットの名前(該当する場合)。デフォルトは`undefined`です。

redis.external.coreDatabaseIndex

コアのデータベースインデックスです。デフォルトは`0`です。

redis.external.jobserviceDatabaseIndex

ジョブサービスのデータベースインデックスです。デフォルトは`1`です。

redis.external.registryDatabaseIndex

レジストリのデータベースインデックスです。デフォルトは`2`です。

redis.external.trivyAdapterIndex

Trivyアダプターのデータベースインデックスです。デフォルトは`5`です。

redis.external.harborDatabaseIndex

雑多なハーバービジネスロジックのデータベースインデックスです。デフォルトは`0`です。

redis.external.cacheLayerDatabaseIndex

ハーバーのキャッシュレイヤーのデータベースインデックスです。デフォルトは`0`です。

redis.external.username

外部Redis認証のユーザー名です。デフォルトは`undefined`です。

redis.external.password

外部Redis認証のパスワードです。デフォルトは`undefined`です。

redis.external.existingSecret

Redisパスワードを含む既存のシークレットです。キーは`REDIS_PASSWORD`でなければなりません。デフォルトは`""`です。

redis.podAnnotations

Redisポッドに追加するアノテーションです。デフォルトは`{}`です。

エクスポーターパラメータです。
exporter.replicas

実行するレプリカの数です。デフォルトは`1`です。

exporter.revisionHistoryLimit

リビジョン履歴の制限です。デフォルトは`10`です。

exporter.podAnnotations

エクスポーターポッドに追加するアノテーションです。デフォルトは`{}`です。

exporter.image.repository

エクスポータ画像のリポジトリです。デフォルトは`private-registry/harbor-exporter`です。

exporter.image.tag

エクスポータ画像のタグです。デフォルトは`2.11`です。

exporter.nodeSelector

ポッド割り当てのためのノードラベル。デフォルトは`{}`です。

exporter.tolerations

ポッド割り当てのためのトレランス。デフォルトは`[]`です。

exporter.affinity

ノードまたはポッドのアフィニティ。デフォルトは`{}`です。

exporter.topologySpreadConstraints

ポッドが地域や可用性ゾーンなどの障害ドメインにどのように分散するかを定義する制約。デフォルトは`[]`です。

exporter.automountServiceAccountToken

serviceAccountTokenをマウントするかどうかを制御します。デフォルトは`false`です。

exporter.cacheDuration

エクスポータによって収集された情報のキャッシュ期間。デフォルトは`30`です。

exporter.cacheCleanInterval

エクスポータによって収集された情報のキャッシュクリーン間隔です。デフォルトは`14400`です。

exporter.priorityClassName

ポッドを実行するための優先クラスです。デフォルトは`undefined`です。

メトリクスパラメータ
metrics.enabled

ハーバーメトリクスを有効にします。デフォルトは`false`です。

metrics.core.path

コアメトリクスのためのURLパス。デフォルトは`/metrics`です。

metrics.core.port

コアメトリクスのためのポート。デフォルトは`8001`です。

metrics.registry.path

レジストリメトリクスのためのURLパス。デフォルトは`/metrics`です。

metrics.registry.port

レジストリメトリクスのためのポート。デフォルトは`8001`です。

metrics.exporter.path

エクスポータメトリクスのためのURLパス。デフォルトは`/metrics`です。

metrics.exporter.port

エクスポータメトリクスのためのポート。デフォルトは`8001`です。

metrics.serviceMonitor.enabled

Prometheus ServiceMonitorの作成を有効にします(Prometheusus CRDが必要です)。デフォルトは`false`です。

metrics.serviceMonitor.additionalLabels

ServiceMonitorマニフェストに適用する追加のラベル。デフォルトは`""`です。

metrics.serviceMonitor.interval

ハーバーメトリクスのためのスクレイプ間隔。デフォルトは`""`です。

metrics.serviceMonitor.metricRelabelings

メトリクスの取り込み前の再ラベル付けルール。デフォルトは`[]`です。

metrics.serviceMonitor.relabelings

メトリクスのスクレイピング前の再ラベル付けルール。デフォルトは`[]`です。

トレースパラメータ
trace.enabled

トレース機能を有効にします。デフォルトは`false`です。

trace.provider

トレースプロバイダー(jaeger`または`otel)。Jaegerのバージョンは1.26以上である必要があります。デフォルトは`jaeger`です。

trace.sample_rate

トレースデータのサンプリングレート。`1`は100%をサンプリングし、`0.5`は50%をサンプリングします。デフォルトは`1`です。

trace.namespace

異なるハーバーサービスを区別するためのネームスペース。

trace.attributes

トレースプロバイダーの初期化におけるユーザー定義属性のためのキーと値の辞書。

trace.jaeger.endpoint

Jaegerトレースのエンドポイント。デフォルトは`\http://hostname:14268/api/traces`です。

trace.jaeger.username

Jaeger認証のためのユーザー名。

trace.jaeger.password

Jaeger認証のためのパスワード。

trace.jaeger.agent_host

Jaegerのエージェントホスト。

trace.jaeger.agent_port

Jaegerのエージェントポート。デフォルトは`6831`です。

trace.otel.endpoint

OpenTelemetryトレースのためのエンドポイント。デフォルトは`hostname:4318`です。

trace.otel.url_path

OpenTelemetryのためのURLパス。デフォルトは`/v1/traces`です。

trace.otel.compression

OpenTelemetryのための圧縮を有効にします。デフォルトは`false`です。

trace.otel.insecure

OpenTelemetryのための安全でない接続を確立します。デフォルトは`true`です。

trace.otel.timeout

OpenTelemetryのためのタイムアウト(秒)です。デフォルトは`10`です。

キャッシュパラメータ
cache.enabled

キャッシュレイヤーを有効にします。デフォルトは`false`です。

cache.expireHours

キャッシュレイヤーの有効期限(時間単位)です。デフォルトは`24`です。

B プライベートレジストリ HAセットアップHelmチャートの例

次の例値ファイルは、最小限のプライベートレジストリ HAセットアップに必要なパラメータを示しています。

expose:
  ingress:
    hosts:
      core: core.harbor.domain 1

externalURL: https://core.harbor.domain 2

portal:
  replicas: 2 3

core:
  replicas: 2 4

jobservice:
  replicas: 2 5

registry:
  replicas: 2 6

database:
  type: external
  external: 7
    host: "192.168.0.1"
    port: "5432"
    username: "user"
    password: "password"
    coreDatabase: "registry"
    existingSecret: "" 8
    sslmode: "disable" 9

redis:
  type: external
  external: 10
    addr: "192.168.0.2:6379" 11
    sentinelMasterSet: "" 12
    coreDatabaseIndex: "0" 13
    jobserviceDatabaseIndex: "1"
    registryDatabaseIndex: "2"
    trivyAdapterIndex: "5"
    harborDatabaseIndex: "6" 14
    cacheLayerDatabaseIndex: "7"15
    username: "" 16
    password: ""
    existingSecret: "" 17

persistence:
  enabled: true 18

1

Ingressルールのコアサービスのホスト名。

2

harbor-coreサービスの外部URL。

3 4 5 6

作成するレプリカの数。2つ以上を指定してください。

7

`external`セクションにデータベース接続の詳細を入力してください。

8

既存のシークレットを使用する場合、値は`password`でなければなりません。

9

次のいずれかの値を受け入れます:

disable

SSLを使用しないでください。

require

常にSSLを使用し、検証をスキップします。

verify-ca

常にSSLを使用します。サーバーが提示した証明書が信頼できるCAによって署名されていることを確認してください。

verify-full

常にSSLを使用します。サーバーが提示した証明書が信頼できるCAによって署名されており、サーバーホスト名が証明書のものと一致することを確認してください。

10

`external`セクションに接続情報を入力してください。

11

redisおよびredis+sentinelをサポートしています。
redisのアドレスは`<redis_host>:<redis_port>`です。
redis+sentinelのアドレスは`<sentinel1_host>:<sentinel1_port>`,<sentinel2_host>:<sentinel2_port>…​です。

12

監視するValkeyインスタンスのセットの名前。redis+sentinelをサポートするように設定する必要があります。

13

Harborが使用するライブラリが設定をサポートしていないため、`0`でなければなりません。

14

オプション。デフォルトは`0`ですが、`6`に設定することもできます。

15

オプション。デフォルトは`0`ですが、`7`に設定することもできます。

16

空の場合、デフォルトユーザーに対して認証されます。

17

使用する場合、キーは<REDIS_PASSWORD>でなければなりません。

18

すべての画像、メタデータ、スキャンを保存するために、永続性に関連する設定 (永続性パラメータ)が適切に設定されていることを確認してください。

C GNUフリー文書利用許諾契約書(GFDL)

著作権 © 2000, 2001, 2002 フリーソフトウェア財団, Inc.51 フランクリン ストリート、5階、ボストン、MA 02110-1301 USA。このライセンス文書を一字一句そのままコピーおよび配布することは許可されていますが、変更することは許可されていません。

C1 0.前文

このライセンスの目的は、マニュアル、教科書、またはその他の機能的で有用な文書を自由という意味で「フリー」にすることです。つまり、すべての人に、変更の有無にかかわらず、商用または非商用でコピーおよび再配布する実効的な自由を保証することです。第二に、このライセンスは、著者および出版社が自らの作品に対するクレジットを得る方法を保持し、他者によって行われた変更について責任を負わないことを意図しています。

このライセンスは「コピーレフト」の一種であり、文書の派生作品も同様に自由でなければならないことを意味します。これは、フリーソフトウェアのために設計されたコピーレフトライセンスであるGNU一般公衆ライセンスを補完します。

私たちは、このライセンスをフリーソフトウェアのマニュアルに使用するために設計しました。なぜなら、フリーソフトウェアにはフリーな文書が必要だからです。フリーソフトウェアには、そのソフトウェアと同じ自由を提供するマニュアルが付属しなければなりません。しかし、このライセンスはソフトウェアマニュアルに限定されるものではなく、主題に関係なく、印刷された本として発行されるかどうかにかかわらず、任意のテキスト作品に使用できます。このライセンスは、主に指導または参照を目的とする作品に推奨されます。

C2 1.適用範囲と定義

このライセンスは、このライセンスの条項に従って配布できることを著作権者が示す通知が含まれている任意のメディアにおけるマニュアルまたは他の作品に適用されます。そのような通知は、その作品をここに記載されている条件に従って使用するための、世界的でロイヤリティフリーのライセンスを無期限で付与します。以下の「文書」は、そのような任意のマニュアルまたは作品を指します。その公衆ユーザはいずれも被許諾者であり、「利用者」と呼ばれます。著作権法に基づいて許可が必要な方法で作品をコピー、変更、または配布する場合、ライセンスを受け入れたことになります。

文書の「変更された版」とは、文書またはその一部を含む作品であり、それはそのままコピーされるか、変更または別の言語に翻訳されたものを指します。

「二次セクション」とは、文書の発行者または著者と文書の全体的な主題(または関連事項)との関係のみを扱う名前付き付録または前付け部分であり、全体的な主題に直接関わる内容は含まれていません。(したがって、文書が部分的に数学の教科書である場合、二次セクションではいかなる数学も説明してはなりません。)関係は、主題または関連事項との歴史的なつながり、またはそれらに対する法的、商業的、哲学的、倫理的、政治的な立場である可能性があります。

「不変セクション」とは、文書がこのライセンスの条件の下でリリースされる旨を示す通知において、不変セクションのタイトルとして指定されている特定の二次セクションです。セクションが上記の二次セクションの定義に合致しない場合は、不変として指定することはできません。文書には、不変セクションが含まれない場合があります。文書で不変セクションを特定しない場合、不変セクションは含まれません。

「カバーテキスト」とは、文書がこのライセンスの条件の下でリリースされる旨を述べている通知において、表カバーテキストまたは裏カバーテキストとして列挙されている、ある一定の短い文章のことです。表カバーテキストは最大5語、裏カバーテキストは最大25語までとすることができます。

文書の「透過的な複製」とは、その仕様が一般の利用者にとって入手可能で、一般的なテキストエディタまたは一般的な描画プログラム(画素で構成される画像用)、あるいは広く使用されている図面エディタ(図面用)で文書を直接改訂するのに適した形式で表される機械可読の複製のことです。テキストフォーマッタへの入力またはテキストフォーマッタへの入力に適したさまざまな形式への変換に適していることも前提になります。読者による以後の変更を阻止または妨げるようにマークアップまたはマークアップのない状態が調整されている、他の点では透過的なファイル形式で行われた複製は、透過的な複製ではありません。イメージ形式は、相当量のテキストに使用されている場合、透過的ではありません。「透過的」ではない複製は、「不透明」と呼ばれます。

透過的な複製に適した形式として、マークアップのないプレーンなASCII、Texinfo入力形式、LaTeX入力形式、一般に取得可能なDTDを使用するSGMLまたはXML、標準に準拠し人による修正が可能なシンプルなHTML、PostScript、またはPDFがあります。透過的なイメージ形式には、PNG、XCF、JPGが含まれます。不透明な形式には、独自のワードプロセッサのみで読み取りおよび編集できる独自形式、DTDや処理ツールが一般に入手できないSGMLまたはXML、そして一部のワードプロセッサによって出力専用に機械生成されるHTML、PostScript、またはPDFが含まれます。

「タイトルページ」とは、印刷書籍の場合、タイトルページそのものと、タイトルページにこのライセンスで要求される内容を明瞭に表示するために必要な追加のページを指します。そのようなタイトルページがない形式の著作物の場合、「タイトルページ」は、本文の開始部分に先行する、著作物のタイトルを最も顕著に表している部分の近くにあるテキストのことを指します。

「XYZという表題の付いた」セクションとは、そのタイトルが正確にXYZになっているか、またはXYZを別の言語に翻訳しているテキストに続いてカッコ付きのXYZが含まれている文書の名前付きサブユニットのことです。(ここで、XYZは、次に示すように、「謝辞」、「献辞」、「推薦」、「履歴」などの特定のセクション名を表します。)文書を変更するときに、そのようなセクションの「タイトルを保存する」とは、この定義に従って「XYZという表題の付いた」セクションが残されることを表します。

文書は、このライセンスが文書に適用されることを示す通知の近くに保証の放棄を含めることができます。これらの保証の放棄条項は、保証の放棄に関してのみ、このライセンスに参照により組み込まれると見なされます。

C3 2.そのままの複製

利用者は、商用・非商用を問わず、任意のメディアにおいて文書を複製または頒布することができます。その際、このライセンス、著作権表示、そして文書にこのライセンスが適用されることを示すライセンス通知がすべての複製に再現され、さらにこのライセンスの条件に追加の条件が課されてはなりません。利用者は、技術的手段によって、作成または頒布する複製の読み込みまたはさらなる複製を妨げたり、制御したりすることはできません。ただし、複製と引き換えに対価を受け取ることができます。大量の複製を頒布する場合は、セクション3の条件に従う必要もあります。

すでに述べた同じ条件に従って複製を貸与したり、複製を公開したりすることもできます。

C4 3.大量の複製

もし、印刷書籍(または通常印刷されたカバーを持つメディア)の形式で100部以上の文書を公開し、かつ文書に記載されたライセンス通知がカバーテキストの記載を要求している場合は、すべてのカバーテキストが明確かつ読みやすく記載されたカバーに、これらの複製を同封しなければなりません。表カバーには表カバーテキストを、裏カバーには裏カバーテキストを記載する必要があります。また、両カバーには、これらの複製の発行者であるあなた自身が、明確かつ読みやすく表示されなければなりません。表カバーには、フルタイトルを記述し、タイトルのすべての語が同等に目立つようにする必要があります。カバーには他のマテリアルを追加することもできます。 カバーに限って変更を行った場合の複製は、文書のタイトルが保持されていて、これらの条件を満たしている限り、他の点に関してそのままの複製と見なすことができます。

いずれかのカバーで、必要なテキストが多すぎて、読みやすい状態に収まらない場合は、列挙されている最初の部分(問題なく収まる分)を実際のカバーに記載し、残りの部分を隣接ページに入れます。

文書の不透明な複製を100部以上公開または頒布する場合は、それぞれの不透明な複製とともに機械可読の透過的な複製を含めるか、それぞれの不透明な複製内あるいはその複製とともに、ネットワークの一般利用者が標準的な一般ネットワークプロトコルを使用して、追加マテリアルのない文書の完全な透過的複製をダウンロードするときにアクセスできるコンピュータネットワークの場所を明記する必要があります。後者のオプションを使用する場合は、不透明な複製の大量頒布を開始するときに十分慎重な手順を取り、この透過的な複製が、その版の不透明な複製を最後に一般頒布した後(直接またはエージェントや小売業者を通じて)少なくとも1年間、指定した場所で継続的にアクセス可能となるように配慮する必要があります。

大量の複製を再頒布する時点よりもかなり前に、文書の作者に連絡して、文書の更新版を提供する機会を与えることが推奨されますが、必須ではありません。

C5 4.変更

文書の変更された版を、すでに述べた第2項および第3項の条件に従って複製および頒布することができます。その際は、本利用許諾契約書に確実に従って、変更された版をリリースし、変更された版が文書の役割を担うようにして、その複製を所要する任意の利用者に変更された版の頒布および変更の利用許諾を与えることが前提になります。また、変更された版で次のことを行う必要があります。

  1. タイトルページ(カバーがある場合はカバー上も含め)には、文書のタイトルおよび以前の版のタイトルと区別される、異なるタイトルを使用してください。(以前の版が存在する場合は、それらを文書の履歴セクションに列挙する必要があります。)前の版と同じタイトルは、その版の元の発行者が許可を与えた場合に、使用することができます。

  2. タイトルページ上には、この要件から解放されない限り、変更の著作に責任を持つ1人以上の人物または団体と、文書の主要著者を少なくとも5名(主要著者が5名未満の場合は全て)、作者として列挙してください。

  3. タイトルページ上に、変更された版の発行者の名前を、発行者として記載します。

  4. 文書のすべての著作権表示を保持します。

  5. 変更に関する適切な著作権表示を、他の著作権表示の隣に追加します。

  6. 著作権表示の直後に、本利用許諾契約書の条項に従って変更された版を利用するための許可を一般利用者に与える利用許諾通告を、次の補遺に示す形式で含めます。

  7. その利用許諾通告に、不変セクションの全リスト、および文書の利用許諾通告で指定されている必須カバーテキストを保持します。

  8. 本利用許諾契約書の変更されていない複製を含めます。

  9. 「履歴」という表題のセクションを保持して、そのタイトルを保持し、タイトルページに記載されているとおりに、変更された版のタイトル、年度、新しい作者、発行者を少なくとも示す項目を追加します。文書に「履歴」というセクションがない場合は、そのタイトルページに記載されているとおりに文書のタイトル、年度、作者、発行者を示すセクションを作成し、前の文章に記載されているとおりに変更された版を示す項目を追加します。

  10. 文書の透過的な複製に一般利用者がアクセスできるように文書で指定されている場合は、そのネットワークの場所、およびその文書の基盤となった前の版に対応して文書で指定されているネットワークの場所を保持します。 これらは、「履歴」セクションに配置することができます。文書自体よりも4年以上前に発行された著作物の場合、または参照されているその版の元の発行者が許可を与えている場合は、そのネットワークの場所を省略することができます。

  11. 「謝辞」または「献辞」という表題のセクションの場合は、そのセクションのタイトルを保持し、セクション内に、それぞれの貢献者謝辞またはその中の献辞(またはその両方)のすべての内容と意味合いを保持します。

  12. 文書のすべての不変セクションを保持し、そのテキストおよびタイトルを未変更のままにします。セクション番号またはそれと同等の要素は、セクションタイトルの一部と見なされません。

  13. 「推薦」という表題の任意のセクションを削除します。そのようなセクションは、変更された版に含めることはできません。

  14. 既存のセクションのタイトルを変更して、「推薦」という表題にしたり、タイトルが不変セクションと矛盾したりしないようにします。

  15. 保証の放棄を保持します。

変更された版に、二次セクションと見なされ、文書から複製されたマテリアルを含まない新しい前付けセクションまたは付録が含まれる場合は、これらの一部またはすべてを任意に「不変」として指定することができます。これを行うには、変更された版の利用許諾表示内で列挙されている不変セクションにそのタイトルを追加します。これらのタイトルは、他のすべてのセクションタイトルと異なっている必要があります。

「推薦」という表題のセクションを追加することができますが、その際は、変更された版のさまざまな当事者による推薦—​以外の要素が含まれていないことが前提になります。たとえば、専門家による評価、または文が標準的な信頼できる定義として組織によって承認されていることを示すという宣言文などが相当します。

表カバーテキストとして最大5語の短い文、および裏カバーテキストとして最大25語の短い文を、変更された版のカバーテキストのリストの最後に追加できます。表カバーテキストの短い文1つおよび裏カバーテキストの短い文1つのみを、1つのエンティティ(またはそのエンティティによる手配を通じて)追加できます。文書に、あなたまたはあなたが代理を務める同じエンティティによる手配で以前に追加された同じカバーのカバーテキストがすでに含まれている場合は、別のものを追加することはできません。ただし、古いものを追加した前の発行者から明示的な許可を得た場合は、古いものを置き換えることができます。

文書の著者および発行者は、本ライセンスによって、その名前を宣伝目的で使用したり、変更された版の推奨を主張または暗示したりする許可を与えるものではありません。

C6 5.文書の結合

文書は、すでに述べた変更された版に関するセクション4の条件に従って、本利用許諾契約書の下でリリースされた他の文書と結合することができます。その際は、その組み合わせの中に、元の全文書のすべての不変セクションを未変更のまま含めて、そのすべてを結合された著作物の不変セクションとしてその利用許諾表示に列挙し、そのすべての保証の放棄を保持することが前提となります。

結合された著作物には、本利用許諾契約書の複製を1つのみ含める必要があります。複数の同一の不変セクションは、単一の複製で置き換えることができます。同じ名前だが内容の異なる複数の不変セクションがある場合は、そのような各セクションのタイトルを固有なものにします。その際は、その終わりに、カッコ付きで、そのセクションの元の作者または発行者の名前(既知の場合)、あるいは固有の番号を追加します。不変セクションのリスト内のセクションタイトルには、結合された著作物の利用許諾表示の場合と同じ調整を加えます。

組み合わせでは、さまざまな元の文書の「履歴」という表題のセクションを結合して、1つの「履歴」というセクションを構築する必要があります。同じように、「謝辞」という表題のセクション、および「献辞」という表題のセクションも結合します。「推薦」という表題のすべてのセクションを削除する必要があります。

C7 6.文書のコレクション

文書および本利用許諾契約書の下でリリースされた他の文書から成るコレクションを作成して、さまざまな文書に含まれる本利用許諾契約書の個々の複製を、コレクションに含まれる単一の複製で置き換えることができますが、他のすべての点での各文書のそのままの複製に関する本利用許諾契約書の規則に従うことが前提になります。

そのようなコレクションから単一の文書を抽出し、その文書を本利用許諾契約書のもとで個別に頒布することができますが、その際は本利用許諾契約書の写しを抽出した文書に挿入し、その文書の逐語的な複製に関して他のすべての点でも本利用許諾契約書に従う必要があります。

C8 7.独立した著作物の集積

文書またはその派生物を、他の個別かつ独立した文書や著作物とともに、ストレージまたは頒布メディアの一つのボリューム内または上にまとめたものは、もしその編集による著作権が、個々の著作物が許す範囲を超えて編集物の利用者の法的権利を制限するために使われない場合、「集積物」と呼ばれます。文書が集積に含まれる場合、本利用許諾契約書は、それ自体が文書の派生著作物ではない集積内の他の著作物に適用されません。

セクション3のカバーテキスト要件がこれらの文書の複製に適用され、かつ文書が集積全体の半分未満である場合、文書を囲むように配置されたカバー(または文書が電子形式の場合は、それに相当する電子的なカバー)に文書のカバーテキストを表示することができます。それ以外の場合は、集積全体の印刷されたカバー上に表示する必要があります。

C9 8.翻訳

翻訳は一種の変更と見なされるため、セクション4の条件に従って文書の翻訳を配布することができます。不変セクションを翻訳で置き換えるには、著作権者からの特別な許可が必要ですが、これらの不変セクションの元のバージョンのほかに、一部またはすべての不変セクションの翻訳を含めることができます。 本利用許諾契約書、文書内のすべての利用許諾表示、および保証の放棄の翻訳を含めることができますが、その際は、本利用許諾契約書の元の英語版、およびそれらの利用許諾表示と保証の放棄の元の版も含めることが前提になります。本利用許諾契約書、利用許諾表示、または保証の放棄の翻訳と元の版との間に不一致がある場合は、元の版が優先されます。

文書内のセクションに、「謝辞」、「献辞」、または「履歴」という表題が付いている場合は、そのタイトルを保持するための要件により、通常は実際のタイトルを変更する必要があります。

C10 9.消滅

利用者は、本利用許諾契約書に明示的に記載されている形態を除き、文書を複製、改変、二次利用許諾、および頒布してはなりません。別の方法で文書を複製、改変、二次利用許諾、または頒布しようとするのは無効であり、本利用許諾契約書の下で利用者の権利は自動的に消滅します。ただし、本利用許諾契約書の下で利用者から複製物または権利を受領した関係者は、完全に遵守している限り、そのライセンスは終了しません。

C11 1.本利用許諾契約書の将来の改訂

フリーソフトウェア財団は、GNUフリー文書利用許諾契約書の新版または改訂版を随時公表することがあります。そのような新版は、精神的には現行版と同様ですが、新たな問題や懸案事項に対応するために細部が異なる可能性があります。 https://www.gnu.org/copyleft/.を参照してください。

本利用許諾契約書の各版には、区別するための版番号が設定されます。文書に、それに適用される本利用許諾契約書の特定の版番号と「後継版」が指定されている場合、利用者は、その指定された版の条項、またはフリーソフトウェア財団によって公開された(ドラフトではない)任意の後継版の条項のいずれかを選択して従うことができます。文書に、本利用許諾契約書の版番号が指定されていない場合、利用者は、フリーソフトウェア財団からこれまでに公開された任意の版を選択することができます。

C12 補遺:文書への\'96\'7b利用許諾契約書の使用方法

  Copyright (c) YEAR YOUR NAME.
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.2
  or any later version published by the Free Software Foundation;
  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
  A copy of the license is included in the section entitled "GNU
  Free Documentation License".

不変セクション、表カバーテキスト、および裏カバーテキストがある場合は、「with…​Texts.」の行を次のように置き換えます。

  with the Invariant Sections being LIST THEIR TITLES, with the
  Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.

カバーテキストのない不変セクションが含まれている場合、またはこの3つの他の組み合わせの場合は、その2つの代替要素を状況に合わせて統合します。

文書に非自明なプログラムコードの例が含まれている場合は、GNU一般公衆利用許諾契約書(GPL)など、あなたが選択したフリーソフトウェアのライセンスの下でこれらの例を並行してリリースし、フリーソフトウェアでの利用を可能にすることを推奨します。