6.3.6. namespace スコープのカスタム Helm チャートリポジトリーの追加
Helm リポジトリーのクラスタースコープの HelmChartRepository カスタムリソース定義 (CRD) は、管理者が Helm リポジトリーをカスタムリソースとして追加できるようにします。namespace スコープの ProjectHelmChartRepository CRD により、適切なロールベースアクセス制御 (RBAC) パーミッションのあるプロジェクトメンバーは、任意の、ただし固有の namespace スコープの Helm リポジトリーリソースを作成できます。このようなプロジェクトメンバーは、クラスタースコープと namespace スコープ両方の Helm リポジトリーリソースからチャートを表示できます。
- 管理者は、ユーザーが namespace スコープの Helm リポジトリーリソースを作成するのを制限できます。ユーザーを制限することで、管理者はクラスターロールではなく namespace ロールを使用して RBAC を柔軟に制御できます。これにより、ユーザーの不要なパーミッション昇格を回避し、承認されていないサービスまたはアプリケーションへのアクセスを防ぎます。
- namespace スコープの Helm リポジトリーを追加しても、既存のクラスタースコープの Helm リポジトリーの動作には影響を及ぼしません。
適切な RBAC パーミッションを持つ通常のユーザーまたはプロジェクトメンバーとして、カスタムの namespace スコープの Helm チャートリポジトリーをクラスターに追加し、Developer Catalog でこれらのリポジトリーから Helm チャートへのアクセスを有効にできます。
手順
新規の namespace スコープの Helm Chart Repository を追加するには、Helm Chart Repository カスタムリソース (CR) を namespace に追加する必要があります。
namespace スコープの Helm Chart Repository CR のサンプル
apiVersion: helm.openshift.io/v1beta1 kind: ProjectHelmChartRepository metadata: name: <name> spec: url: https://my.chart-repo.org/stable # optional name that might be used by console name: <chart-repo-display-name> # optional and only needed for UI purposes description: <My private chart repo> # required: chart repository URL connectionConfig: url: <helm-chart-repository-url>たとえば、
my-namespacenamespace スコープの Azure サンプルチャートリポジトリーを追加するには、以下を実行します。$ cat <<EOF | oc apply --namespace my-namespace -f - apiVersion: helm.openshift.io/v1beta1 kind: ProjectHelmChartRepository metadata: name: azure-sample-repo spec: name: azure-sample-repo connectionConfig: url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs EOFこの出力から、namespace スコープの Helm Chart Repository CR が作成されていることが分かります。
出力例
projecthelmchartrepository.helm.openshift.io/azure-sample-repo createdWeb コンソールで Developer Catalog に移動し、チャートリポジトリーの Helm チャートが
my-namespacenamespace に表示されることを確認します。たとえば、Chart リポジトリー フィルターを使用して、リポジトリーから Helm チャートを検索します。
図6.3 namespace のチャートリポジトリーフィルター
あるいは、以下のコマンドを実行します。
$ oc get projecthelmchartrepositories --namespace my-namespace出力例
NAME AGE azure-sample-repo 1m注記クラスター管理者または適切な RBAC パーミッションを持つ通常ユーザーが特定の namespace のすべてのチャートリポジトリーを削除すると、その特定の namespace の +Add ビュー、Developer Catalog、および左側のナビゲーションパネルで Helm オプションを表示することはできません。