6.3. カスタム Helm チャートリポジトリーの設定
以下の方法のいずれかを使用して、OpenShift Container Platform クラスターに Helm チャートをインストールできます。
- CLI
- Web コンソールの Developer パースペクティブ。
Web コンソールの Developer パースペクティブの Developer Catalog には、クラスターで利用可能な Helm チャートが表示されます。デフォルトで、これは Red Hat Helm チャートリポジトリーの OpenShift Helm チャートの一覧を表示します。チャートの一覧については、Red Hat Helm インデックス
ファイルを参照してください。
クラスター管理者は、デフォルトのリポジトリーとは別に複数の Helm チャートリポジトリーを追加し、Developer Catalog でこれらのリポジトリーから Helm チャートを表示できます。
6.3.1. OpenShift Container Platform クラスターでの Helm チャートのインストール
前提条件
- 実行中の OpenShift Container Platform クラスターがあり、ログインしている。
- Helm がインストールされている。
手順
新規プロジェクトを作成します。
$ oc new-project vault
Helm チャートのリポジトリーをローカルの Helm クライアントに追加します。
$ helm repo add openshift-helm-charts https://charts.openshift.io/
出力例
"openshift-helm-charts" has been added to your repositories
リポジトリーを更新します。
$ helm repo update
サンプルの HashiCorp Vault をインストールします。
$ helm install example-vault openshift-helm-charts/hashicorp-vault
出力例
NAME: example-vault LAST DEPLOYED: Fri Mar 11 12:02:12 2022 NAMESPACE: vault STATUS: deployed REVISION: 1 NOTES: Thank you for installing HashiCorp Vault!
チャートが正常にインストールされたことを確認します。
$ helm list
出力例
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION example-vault vault 1 2022-03-11 12:02:12.296226673 +0530 IST deployed vault-0.19.0 1.9.2
6.3.2. 開発者パースペクティブを使用した Helm チャートのインストール
Web コンソールまたは CLI コンソールの Developer パースペクティブを使用して、Developer Catalog に一覧表示されている Helm チャートからチャートを選択し、インストールできます。Helm チャートをインストールして Helm リリースを作成し、Web コンソールの Developer パースペクティブに表示できます。
前提条件
- Web コンソールにログインしており、Developer パースペクティブ に切り替えている。
手順
Developer Catalog で提供される Helm チャートから Helm リリースを作成するには、以下を実行します。
- Developer パースペクティブで、+Add ビューに移動し、プロジェクトを選択します。次に、Helm Chart オプションをクリックし、Developer Catalog にすべての Helm チャートを表示します。
- チャートを選択し、チャートの説明、README、チャートについてのその他の詳細を確認します。
Install Helm Chart をクリックします。
図6.1 Developer カタログの Helm チャート
Install Helm Chart ページで以下を行います。
- リリースの固有の名前を Release Name フィールドに入力します。
- Chart Version ドロップダウンリストから必要なチャートのバージョンを選択します。
Form View または YAML View を使用して Helm チャートを設定します。
注記利用可能な場合は、YAML View と Form View 間で切り替えることができます。ビューの切り替え時に、データは永続化されます。
- Install をクリックして Helm リリースを作成します。リリースが表示される Topology ビューにリダイレクトされます。Helm チャートにリリースノートがある場合、チャートは事前に選択され、右側のパネルにそのリリースのリリースノートが表示されます。
サイドパネルで Actions ボタンを使用するか、または Helm リリースを右クリックして Helm リリースのアップグレード、ロールバック、またはアンインストールを実行できます。
6.3.3. Web 端末での Helm の使用
Web コンソールの Developer パースペクティブで Web 端末を初期化して Helm を使用できます。詳細は Web 端末の使用 を参照してください。
6.3.4. OpenShift Container Platform でのカスタム Helm チャートの作成
手順
新規プロジェクトを作成します。
$ oc new-project nodejs-ex-k
OpenShift Container Platform オブジェクトが含まれる Node.js チャートのサンプルをダウンロードします。
$ git clone https://github.com/redhat-developer/redhat-helm-charts
サンプルチャートを含むディレクトリーに移動します。
$ cd redhat-helm-charts/alpha/nodejs-ex-k/
Chart.yaml
ファイルを編集し、チャートの説明を追加します。apiVersion: v2 1 name: nodejs-ex-k 2 description: A Helm chart for OpenShift 3 icon: https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.svg 4 version: 0.2.1 5
チャートが適切にフォーマットされていることを確認します。
$ helm lint
出力例
[INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed
直前のディレクトリーレベルに移動します。
$ cd ..
チャートをインストールします。
$ helm install nodejs-chart nodejs-ex-k
チャートが正常にインストールされたことを確認します。
$ helm list
出力例
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nodejs-chart nodejs-ex-k 1 2019-12-05 15:06:51.379134163 -0500 EST deployed nodejs-0.1.0 1.16.0
6.3.5. カスタム Helm チャートリポジトリーの追加
クラスター管理者は、カスタムの Helm チャートリポジトリーをクラスターに追加し、Developer Catalog のこれらのリポジトリーから Helm チャートへのアクセスを有効にできます。
手順
新規の Helm Chart リポジトリーを追加するには、Helm Chart Repository カスタムリソース (CR) をクラスターに追加する必要があります。
Helm チャートリポジトリー CR のサンプル
apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: <name> spec: # optional name that might be used by console # name: <chart-display-name> connectionConfig: url: <helm-chart-repository-url>
たとえば、Azure サンプルチャートリポジトリーを追加するには、以下を実行します。
$ cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: azure-sample-repo spec: name: azure-sample-repo connectionConfig: url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs EOF
Web コンソールで Developer Catalog に移動し、チャートリポジトリーの Helm チャートが表示されることを確認します。
たとえば、Chart リポジトリー フィルターを使用して、リポジトリーから Helm チャートを検索します。
図6.2 チャートリポジトリーのフィルター
注記クラスター管理者がすべてのチャートリポジトリーを削除する場合は、+Add ビュー、Developer Catalog、および左側のナビゲーションパネルで Helm オプションを表示できません。
6.3.6. Helm チャートリポジトリーを追加するための認証情報および CA 証明書の作成
一部の Helm チャートリポジトリーに接続するには、認証情報とカスタム認証局 (CA) 証明書が必要です。Web コンソールと CLI を使用して認証情報と証明書を追加することができます。
手順
認証情報と証明書を設定し、CLI を使用して Helm チャートリポジトリーを追加します。
openshift-config
namespace で、PEM でエンコードされた形式のカスタム CA 証明書でConfigMap
を作成し、これを設定マップ内のca-bundle.crt
キーに保存します。$ oc create configmap helm-ca-cert \ --from-file=ca-bundle.crt=/path/to/certs/ca.crt \ -n openshift-config
openshift-config
namespace で、クライアント TLS 設定を追加するためにSecret
オブジェクトを作成します。$ oc create secret tls helm-tls-configs \ --cert=/path/to/certs/client.crt \ --key=/path/to/certs/client.key \ -n openshift-config
クライアント証明書とキーは PEM でエンコードされた形式であり、それぞれ
tls.crt
およびtls.key
キーに保存される必要があります。以下のように Helm リポジトリーを追加します。
$ cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: <helm-repository> spec: name: <helm-repository> connectionConfig: url: <URL for the Helm repository> tlsConfig: name: helm-tls-configs ca: name: helm-ca-cert EOF
ConfigMap
およびSecret
は、tlsConfig
およびca
フィールドを使用して HelmChartRepository CR で使用されます。これらの証明書は、Helm リポジトリー URL への接続に使用されます。デフォルトでは、認証されたユーザーはすべて設定済みのチャートにアクセスできます。ただし、証明書が必要なチャートリポジトリーの場合は、以下のように
openshift-config
namespace でhelm-ca-cert
設定マップおよびhelm-tls-configs
シークレットへの読み取りアクセスを提供する必要があります。$ cat <<EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: openshift-config name: helm-chartrepos-tls-conf-viewer rules: - apiGroups: [""] resources: ["configmaps"] resourceNames: ["helm-ca-cert"] verbs: ["get"] - apiGroups: [""] resources: ["secrets"] resourceNames: ["helm-tls-configs"] verbs: ["get"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: openshift-config name: helm-chartrepos-tls-conf-viewer subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: 'system:authenticated' roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: helm-chartrepos-tls-conf-viewer EOF
6.3.7. 証明書レベルでの Helm チャートのフィルターリング
Developer Catalog の認定レベルに基づいて Helm チャートをフィルターできます。
手順
- Developer パースペクティブで、+Add ビューに移動してプロジェクトを選択します。
- Developer Catalog タイルから、Helm Chart オプションを選択して Developer Catalog ですべての Helm チャートを表示します。
Helm チャートの一覧の左側にあるフィルターを使用して、必要なチャートをフィルターします。
- Chart Repositories フィルターを使用して、Red Hat Certification Charts または OpenShift Helm Charts が提供したチャートをフィルターします。
- Source フィルターを使用して、Partners、Community または Red Hat から提供されるチャートをフィルターします。認定チャートはアイコン ( ) で表示されます。
プロバイダータイプが 1 つしかない場合は、Source フィルターは表示されません。
必要なチャートを選択してインストールできるようになりました。
6.3.8. Helm チャートリポジトリーの無効化
HelmChartRepository
の disabled
プロパティーを true
に設定して、カタログにある特定の Helm チャートリポジトリーからの Helm チャートを無効にできます。
手順
CLI を使用して Helm チャートリポジトリーを無効にするには、
disabled: true
フラグをカスタムリソースに追加します。たとえば、Azure サンプルチャートリポジトリーを削除するには、以下を実行します。$ cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: azure-sample-repo spec: connectionConfig: url:https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs disabled: true EOF
Web コンソールを使用して、最近追加された Helm チャートリポジトリーを無効にするには、以下を実行します。
-
Custom Resource Definitions に移動し、
HelmChartRepository
カスタムリソースを検索します。 - Instances に移動し、無効にするリポジトリーを見つけ、その名前をクリックします。
YAML タブに移動し、
spec
セクションにdisabled: true
フラグを追加し、Save
をクリックします。例
spec: connectionConfig: url: <url-of-the-repositoru-to-be-disabled> disabled: true
リポジトリーは無効にされ、カタログには表示されなくなります。
-
Custom Resource Definitions に移動し、