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:
Updates ハーバー 2.14.3 to 2.15.1 (Release Notes v2.15.1).
Updates Trivy version 0.68.2 to 0.70.0 with adapter v0.36.0 general availability (GA) (Release Notes v0.70.0).
Component updates:
Updates
k8s.io/client-goto 0.34.1.Updates
aws-sdk-goto 1.55.8.Updates
go-ldapto 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.Builderandstrings.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-composev1 anddocker-composev2.Calls the
/v2/auth/tokenapplication 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
timeoutSecondsandfailureThresholdconfigurable via values.Fixes extra environment variables for the exporter.
Installs
PodDisruptionBudgetresources when the replica count is greater than one.
Upgrade notes:
No breaking changes in this release.
2 Release 1.1.3 #
Security updates:
Updates ハーバー 2.14.2 to 2.14.4 (Release Notes v2.14.4).
Updates Trivy version 0.68.2 to 0.70.0 with adapter v0.36.0 (Release Notes v0.70.0).
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/tokenAPI 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:
Update ハーバー 2.14.1 to 2.14.2 (Release Notes v2.14.2)
Trivy version update 0.67.2 to 0.68.2 (Release Notes v0.68.2)
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:
Updated ハーバー 2.13.2 to 2.14.1 (Release Notes v2.14.1)
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
--internalnetworks remain protected).CVE-2025-29923: go-redis allows potential out of order responses when
CLIENT SETINFOtimes 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 詳細情報 #
詳細を取得するには、以下のソースを参照してください:
ハーバー プロジェクトのホームページは https://goharbor.io/. にあります。
ハーバー の使用は https://goharbor.io/docs. に詳述されています。
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をインストールする手順は何ですか? #
Rancherにログインします。
左上隅の3本線メニュー(☰)をクリックし、を選択し、通常は`local`のクラスター名をクリックします。
左側のメニューから › を選択します。
右上のボタンをクリックし、開いたフォームを完成させます:
ターゲット:を選択します。
名前:リポジトリの名前を入力します。例えば、`SUSE Private Registry`のように。
説明:オプションで、リポジトリの説明を追加します。
OCIリポジトリホストURL:Enter `oci://registry.suse.com/private-registry/private-registry-helm`.
認証:`Create an HTTP Basic Auth Secret`に変更し、レジストリの資格情報のユーザー名とパスワードを入力します。
をクリックして確認します。
左上隅の3本線メニュー(☰)をクリックし、を選択します。
シークレットを追加したいクラスターに切り替え、をクリックします。
シークレット管理に移動するには、 › を選択し、右上のをクリックします。
シークレットを選択し、次に`private-registry`ネームスペースを選択します。
シークレットの名前として`suse-registry`を入力します。
`username`と`password`のフィールドにSUSEの資格情報Section 3.1, “満たすべき要件は何ですか?”を入力します。
左側のメインメニューから、 › を選択します。
検索ボックスに割り当てられたSUSE Private Registryリポジトリの名前を入力します。たとえば、`SUSE Private Registry`と指定します。 リストに表示されない場合は、をクリックします。
チャートをクリックして、`README.md`を表示します。
オプションで、インストール値をカスタマイズできます。 左側の`Edit Options`パネルのセクションをクリックして、設定可能なすべての値を表示するか、チャートのYAMLファイルで値を直接編集してください。
右上隅で、をクリックします。
4 コマンドラインを使用したインストール #
以下の手順では、SUSE Private Registry(プライベートレジストリ)をKubernetesクラスターにデプロイする方法について説明します。
4.1 SUSE カスタマセンターからKubernetesのシークレットを取得する #
SUSE レジストリからプライベートレジストリのイメージをダウンロードしてインストールするには、SUSE カスタマセンター(SCC)のミラーリング資格情報を持つKubernetesのシークレットが必要です。 SCCから資格情報を取得するには、以下の手順に従ってください:
https://scc.suse.comでSUSE カスタマセンターにアクセスし、ログインします。
左のサイドバーからアクティブなプライベートレジストリサブスクリプションを持つ組織を選択します。
上部メニューから`Proxies`を選択します。資格情報は右上隅に表示されます。
パスワードを見るには、'目’アイコンをクリックします。
取得したパスワードを含む`password.txt`ファイルを作成します。
>head -1 ./password.txt | helm registry login registry.suse.com \ --username <PRIVATE_REGISTRY_USERNAME> --password-stdinSUSE レジストリのためのネームスペースを作成します。
>kubectl create namespace <PRIVATE_REGISTRY_NAMESPACE>以下のコマンドを実行して、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)オプションで、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>`をカスタムリリース名に置き換えます。
取得したSUSE レジストリミラーリング資格情報を使用してSCCにログインします。
>head -1 ./password.txt | helm registry login registry.suse.com \ --username <SUSE_REGISTRY_USERNAME> --password-stdin最新のプライベートレジストリ 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>
管理者のパスワードを取得するには、次のコマンドを実行することもできます:
>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 で をデプロイする #
プライベートレジストリ Helm チャートをダウンロードします。
$ helm pull oci://registry.suse.com/private-registry/private-registry-helm --untar
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.
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機能フラグを有効にします。 #
管理者としてRancherのUIにログインします。
左上の3本線メニュー(☰)をクリックし、 › に移動します。
`oidc-provider`フラグを見つけ、*その他のアクション*アイコン(⋮)をクリックし、*有効化*をクリックします。
6.2 ステップ2:OIDCClientリソースを作成します。 #
Rancherは、ダウンストリームアプリケーションを登録するために`OIDCClient`カスタムリソースを使用します。
次の内容を含む`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"Rancherが実行されているクラスターにファイルを適用します:
>kubectl apply -f rancher-oidc-client.yaml
6.3 ステップ3:クライアントIDとシークレットを取得します。 #
リソースが作成されると、Rancherは自動的に`clientID`を埋め、`clientSecret`を含むKubernetesシークレットをプロビジョニングします。
生成されたクライアントIDを取得します:
>kubectl get oidcclient spr-client -o jsonpath="{.status.clientID}"クライアントシークレットを取得します。前のステップで取得した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"
}あなたのインスタンスが自己署名証明書を使用している場合、`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.yamlfile and pass it to the--fflag, 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 上書きファイルの例 #
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>"
SUSE レジストリ がどのように公開されるか。 | |
Kubernetes 内部ネットワーキング設定のホスト名。 | |
SUSE レジストリ アプリケーションが実行される URL。ユーザーインターフェース内のリンク、リダイレクト、および API 応答を生成するために使用されます。 | |
アプリケーションの管理者パスワード。 |
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>"
SUSE レジストリ がどのように公開されるか。 | |
| |
TLS暗号化を使用する場合、このフィールドは`externalURL`の値と一致する必要があります。 | |
SUSE レジストリ アプリケーションが実行される URL。ユーザーインターフェース内のリンク、リダイレクト、および API 応答を生成するために使用されます。 | |
アプリケーションの管理者パスワード。 |
A2 Helmチャートパラメータと値を上書きします。 #
以下の表には、デフォルトのインストール値を上書きするために使用できるすべてのパラメータとその説明がリストされています。
global.imageRegistryすべてのイメージに使用されるコンテナイメージレジストリに対するグローバル上書きを設定します。
global.imagePullSecretsコンテナイメージレジストリにアクセスするためのグローバルプルシークレットを設定します。
harborAdminPasswordハーバー管理者の初期パスワードを設定します。デプロイ後にポータルから変更します。デフォルトは`Harbor12345`です。
externalURLharbor-core`サービスの外部URLを指定します。デフォルトはhttps://core.harbor.domain`です。existingSecretAdminPasswordKeyハーバー管理者パスワードを含むシークレット内のキー名を設定します。デフォルトは`HARBOR_ADMIN_PASSWORD`です。
imagePullSecretsすべてのデプロイメントの`imagePullSecrets`名前を設定します。
updateStrategy.type永続ボリュームを持つデプロイメントの更新戦略を設定します。`RollingUpdate`または`Recreate`を受け入れます。ボリュームのRWMがサポートされていない場合は`Recreate`を使用します。デフォルトは`RollingUpdate`です。
logLevelハーバーサービスのログレベルを設定します。
fatal、error、warn、info、`debug`または`trace`を受け入れます。デフォルトは`debug`です。enableMigratehelmHookHelmフックを介してデータベース移行ジョブを実行します。`true`の場合、移行ジョブを`harbor-core`から分離します。デフォルトは`false`です。
caSecretName`ca.crt`キーを含むシークレット名を指定します。
proxy.httpProxyHTTPプロキシサーバーのURLを指定します。デフォルトは`""`です。
proxy.httpsProxyHTTPSプロキシサーバーの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.enabledTLSを有効にします。デフォルトは`true`です。
expose.tls.certSourceTLS証明書のソースを
auto,secretまたはnoneとして設定します。デフォルトは`auto`です。expose.tls.auto.commonNameタイプが
ingressでない場合、証明書の共通名を設定します。expose.tls.secret.secretNametls.crt(証明書)とtls.key(秘密鍵)を含むシークレットの名前を指定します。expose.ingress.hosts.coreIngress ルール内の ハーバー コアサービスホストを設定します。デフォルトは`core.harbor.domain`です。
expose.ingress.controllerIngress コントローラーの種類を設定します。
default,gce,alb,f5-bigipおよびncpをサポートします。デフォルトは`default`です。expose.ingress.kubeVersionOverrideIngress テンプレート用の Kubernetes バージョンを上書きします。
expose.ingress.annotationsIngress アノテーションを設定します。
expose.ingress.labelsIngress 特有のラベルを設定します。デフォルトは`{}`です。
expose.clusterIP.nameClusterIPサービス名を設定します。デフォルトは`harbor`です。
expose.clusterIP.annotationsClusterIPサービスアノテーションを設定します。デフォルトは`{}`です。
expose.clusterIP.ports.httpPortHTTPサービスポートを設定します。デフォルトは`80`です。
expose.clusterIP.ports.httpsPortHTTPSサービスポートを設定します。デフォルトは`443`です。
expose.clusterIP.labelsClusterIP特有のラベルを設定します。デフォルトは`{}`です。
expose.nodePort.nameNodePortサービス名を設定します。デフォルトは`harbor`です。
expose.nodePort.ports.http.portHTTPサービスポートを設定します。デフォルトは`80`です。
expose.nodePort.ports.http.nodePortHTTPノードポートを設定します。デフォルトは`30002`です。
expose.nodePort.ports.https.portHTTPSサービスポートを設定します。デフォルトは`443`です。
expose.nodePort.ports.https.nodePortHTTPSノードポートを設定します。デフォルトは`30003`です。
expose.nodePort.annotationsNodePortアノテーションを設定します。
expose.nodePort.labelsNodePort特有のラベルを設定します。デフォルトは`{}`です。
expose.loadBalancer.nameサービス名を設定します。デフォルトは`harbor`です。
expose.loadBalancer.IPIP割り当てがサポートされている場合、loadBalancer IPを設定します。デフォルトは`""`です。
expose.loadBalancer.ports.httpPortHTTPサービスポートを設定します。デフォルトは`80`です。
expose.loadBalancer.ports.httpsPortHTTPSサービスポートを設定します。デフォルトは`30002`です。
expose.loadBalancer.annotationsloadBalancerサービスアノテーションを設定します。デフォルトは`{}`です。
expose.loadBalancer.labelsloadBalancer特有のラベルを設定します。デフォルトは`{}`です。
expose.loadBalancer.sourceRangesloadBalancerSourceRangesの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画像とチャートのストレージタイプ:
filesystem、azure、gcs、s3、swift、または`oss`。デフォルトは`filesystem`です。persistence.imageChartStorage.gcs.existingSecretGCSサービスアカウントJSONキーを含む既存のシークレットの名前。キーは`gcs-key.json`でなければなりません。デフォルトは`""`です。
persistence.imageChartStorage.gcs.useWorkloadIdentityGKEクラスターでのワークロードアイデンティティの使用を有効にします。デフォルトは`false`です。
nginx.image.repositorynginxのイメージリポジトリ。デフォルトは`private-registry/harbor-nginx`です。
nginx.image.tagnginxのイメージタグ。
nginx.replicas実行するレプリカの数。デフォルトは`1`です。
nginx.revisionHistoryLimit保持する古い`ReplicaSet`リビジョンの最大数。デフォルトは`10`です。
nginx.resourcesコンテナに割り当てられた計算リソース。デフォルトは`undefined`です。
nginx.automountServiceAccountTokenサービスアカウントトークンの自動マウントを制御します。デフォルトは`false`です。
nginx.nodeSelectorポッド割り当てに使用されるノードラベル。デフォルトは`{}`です。
nginx.tolerationsポッド割り当てに使用されるトレランス。デフォルトは`[]`です。
nginx.affinityノードまたはポッドのアフィニティルール。デフォルトは`{}`です。
nginx.topologySpreadConstraintsリージョンやアベイラビリティゾーンなどの障害ドメインにわたるポッドの分散ルール。デフォルトは`[]`です。
nginx.podAnnotationsnginxポッドに追加されたアノテーション。デフォルトは`{}`です。
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.xsrfKeyXSRFキー、指定されていない場合は自動的に生成されます。
core.priorityClassNameポッドを実行するための優先度クラス。
core.artifactPullAsyncFlushDurationアーティファクトのプル時間とリポジトリのプルカウントを非同期で更新するための期間。
core.gdpr.deleteUserGDPRに準拠したユーザー削除を有効にします。デフォルトは`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_retryWebhook通知送信の最大再試行回数。デフォルトは`3`です。
jobservice.notification.webhook_job_http_client_timeoutWebhook通知送信のための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.existingSecrethtpasswd認証モードでのレジストリインスタンスアクセスのためのパスワードを含む既存の秘密。デフォルトは`""`です。
registry.credentials.htpasswdStringhtpasswd文字列形式のログインとパスワード。`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.enabledTrivyスキャナーを有効または無効にします。デフォルトは`true`です。
trivy.image.repositoryTrivyアダプターイメージのリポジトリです。デフォルトは`private-registry/harbor-trivy-adapter`です。
trivy.image.tagTrivyアダプターイメージのタグです。デフォルトは`2.11`です。
trivy.resourcesTrivyアダプターコンテナに割り当てるリソースです。デフォルトは`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.skipUpdateGitHubからのTrivyデータベースのダウンロードを無効にします。デフォルトは`false`です。
trivy.skipJavaDBUpdate有効にした場合、`trivy-java.db`ファイルの手動ダウンロードが必要です。デフォルトは`false`です。
trivy.offlineScanTrivyが依存関係を特定するために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.shmSizeLimitPostgreSQLのための共有メモリサイズ制限(通常はコンテナメモリ制限の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データベースポッドに追加するアノテーション。デフォルトは`{}`です。
redis.typeRedis のデプロイメントタイプ。外部
external用に Redis に設定します。デフォルトは`internal`です。redis.internal.image.repositoryRedis イメージのリポジトリ。デフォルトは`private-registry/harbor-redis`です。
redis.internal.image.tagRedis イメージのタグ。デフォルトは`7.2`です。
redis.internal.resourcesRedis コンテナに割り当てられたリソース。デフォルトは`undefined`です。
redis.internal.automountServiceAccountTokenサービスアカウントトークンがマウントされるかどうかを制御します。デフォルトは`false`です。
redis.internal.nodeSelectorポッド割り当てのためのノードラベル。デフォルトは`{}`です。
redis.internal.tolerationsポッド割り当てのためのトレランス。デフォルトは`[]`です。
redis.internal.affinityノードまたはポッドのアフィニティ設定。デフォルトは`{}`です。
redis.internal.priorityClassNameRedisポッドを実行するための優先クラスです。デフォルトは`undefined`です。
redis.internal.jobserviceDatabaseIndexジョブサービスのデータベースインデックスです。デフォルトは`1`です。
redis.internal.registryDatabaseIndexレジストリのデータベースインデックスです。デフォルトは`2`です。
redis.internal.trivyAdapterIndexTrivyアダプターのデータベースインデックスです。デフォルトは`5`です。
redis.internal.harborDatabaseIndex雑多なハーバービジネスロジックのデータベースインデックスです。デフォルトは`0`です。
redis.internal.cacheLayerDatabaseIndexハーバーのキャッシュレイヤーのデータベースインデックスです。デフォルトは`0`です。
redis.internal.initContainersRedisコンテナが起動する前に実行される初期化コンテナです。デフォルトは`[]`です。
redis.external.addr外部Redisインスタンスのアドレスです。デフォルトは`192.168.0.2:6379`です。
redis.external.sentinelMasterSetRedisセントネルマスターセットの名前(該当する場合)。デフォルトは`undefined`です。
redis.external.coreDatabaseIndexコアのデータベースインデックスです。デフォルトは`0`です。
redis.external.jobserviceDatabaseIndexジョブサービスのデータベースインデックスです。デフォルトは`1`です。
redis.external.registryDatabaseIndexレジストリのデータベースインデックスです。デフォルトは`2`です。
redis.external.trivyAdapterIndexTrivyアダプターのデータベースインデックスです。デフォルトは`5`です。
redis.external.harborDatabaseIndex雑多なハーバービジネスロジックのデータベースインデックスです。デフォルトは`0`です。
redis.external.cacheLayerDatabaseIndexハーバーのキャッシュレイヤーのデータベースインデックスです。デフォルトは`0`です。
redis.external.username外部Redis認証のユーザー名です。デフォルトは`undefined`です。
redis.external.password外部Redis認証のパスワードです。デフォルトは`undefined`です。
redis.external.existingSecretRedisパスワードを含む既存のシークレットです。キーは`REDIS_PASSWORD`でなければなりません。デフォルトは`""`です。
redis.podAnnotationsRedisポッドに追加するアノテーションです。デフォルトは`{}`です。
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.automountServiceAccountTokenserviceAccountTokenをマウントするかどうかを制御します。デフォルトは`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.enabledPrometheus ServiceMonitorの作成を有効にします(Prometheusus CRDが必要です)。デフォルトは`false`です。
metrics.serviceMonitor.additionalLabelsServiceMonitorマニフェストに適用する追加のラベル。デフォルトは`""`です。
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.endpointJaegerトレースのエンドポイント。デフォルトは`\http://hostname:14268/api/traces`です。
trace.jaeger.usernameJaeger認証のためのユーザー名。
trace.jaeger.passwordJaeger認証のためのパスワード。
trace.jaeger.agent_hostJaegerのエージェントホスト。
trace.jaeger.agent_portJaegerのエージェントポート。デフォルトは`6831`です。
trace.otel.endpointOpenTelemetryトレースのためのエンドポイント。デフォルトは`hostname:4318`です。
trace.otel.url_pathOpenTelemetryのためのURLパス。デフォルトは`/v1/traces`です。
trace.otel.compressionOpenTelemetryのための圧縮を有効にします。デフォルトは`false`です。
trace.otel.insecureOpenTelemetryのための安全でない接続を確立します。デフォルトは`true`です。
trace.otel.timeoutOpenTelemetryのためのタイムアウト(秒)です。デフォルトは`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 18Ingressルールのコアサービスのホスト名。 | |
harbor-coreサービスの外部URL。 | |
作成するレプリカの数。2つ以上を指定してください。 | |
`external`セクションにデータベース接続の詳細を入力してください。 | |
既存のシークレットを使用する場合、値は`password`でなければなりません。 | |
次のいずれかの値を受け入れます:
| |
`external`セクションに接続情報を入力してください。 | |
redisおよびredis+sentinelをサポートしています。 | |
監視するValkeyインスタンスのセットの名前。redis+sentinelをサポートするように設定する必要があります。 | |
Harborが使用するライブラリが設定をサポートしていないため、`0`でなければなりません。 | |
オプション。デフォルトは`0`ですが、`6`に設定することもできます。 | |
オプション。デフォルトは`0`ですが、`7`に設定することもできます。 | |
空の場合、デフォルトユーザーに対して認証されます。 | |
使用する場合、キーは<REDIS_PASSWORD>でなければなりません。 | |
すべての画像、メタデータ、スキャンを保存するために、永続性に関連する設定 (永続性パラメータ)が適切に設定されていることを確認してください。 |
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人以上の人物または団体と、文書の主要著者を少なくとも5名(主要著者が5名未満の場合は全て)、作者として列挙してください。
タイトルページ上に、変更された版の発行者の名前を、発行者として記載します。
文書のすべての著作権表示を保持します。
変更に関する適切な著作権表示を、他の著作権表示の隣に追加します。
著作権表示の直後に、本利用許諾契約書の条項に従って変更された版を利用するための許可を一般利用者に与える利用許諾通告を、次の補遺に示す形式で含めます。
その利用許諾通告に、不変セクションの全リスト、および文書の利用許諾通告で指定されている必須カバーテキストを保持します。
本利用許諾契約書の変更されていない複製を含めます。
「履歴」という表題のセクションを保持して、そのタイトルを保持し、タイトルページに記載されているとおりに、変更された版のタイトル、年度、新しい作者、発行者を少なくとも示す項目を追加します。文書に「履歴」というセクションがない場合は、そのタイトルページに記載されているとおりに文書のタイトル、年度、作者、発行者を示すセクションを作成し、前の文章に記載されているとおりに変更された版を示す項目を追加します。
文書の透過的な複製に一般利用者がアクセスできるように文書で指定されている場合は、そのネットワークの場所、およびその文書の基盤となった前の版に対応して文書で指定されているネットワークの場所を保持します。 これらは、「履歴」セクションに配置することができます。文書自体よりも4年以上前に発行された著作物の場合、または参照されているその版の元の発行者が許可を与えている場合は、そのネットワークの場所を省略することができます。
「謝辞」または「献辞」という表題のセクションの場合は、そのセクションのタイトルを保持し、セクション内に、それぞれの貢献者謝辞またはその中の献辞(またはその両方)のすべての内容と意味合いを保持します。
文書のすべての不変セクションを保持し、そのテキストおよびタイトルを未変更のままにします。セクション番号またはそれと同等の要素は、セクションタイトルの一部と見なされません。
「推薦」という表題の任意のセクションを削除します。そのようなセクションは、変更された版に含めることはできません。
既存のセクションのタイトルを変更して、「推薦」という表題にしたり、タイトルが不変セクションと矛盾したりしないようにします。
保証の放棄を保持します。
変更された版に、二次セクションと見なされ、文書から複製されたマテリアルを含まない新しい前付けセクションまたは付録が含まれる場合は、これらの一部またはすべてを任意に「不変」として指定することができます。これを行うには、変更された版の利用許諾表示内で列挙されている不変セクションにそのタイトルを追加します。これらのタイトルは、他のすべてのセクションタイトルと異なっている必要があります。
「推薦」という表題のセクションを追加することができますが、その際は、変更された版のさまざまな当事者による推薦—以外の要素が含まれていないことが前提になります。たとえば、専門家による評価、または文が標準的な信頼できる定義として組織によって承認されていることを示すという宣言文などが相当します。
表カバーテキストとして最大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)など、あなたが選択したフリーソフトウェアのライセンスの下でこれらの例を並行してリリースし、フリーソフトウェアでの利用を可能にすることを推奨します。



