2.4. アドオン


2.4.1. 概要

CDK を使用すると、cluster up により提供される dashilla OpenShift 設定をアドオンメカニズムで拡張できます。

アドオンは、.addon 拡張子が付いたテキストファイルを含むディレクトリーです。このディレクトリーには、JSON テンプレートファイルなどの他のリソースファイルを含めることもできます。ただし、アドオンごとに 1 つの .addon ファイルのみが許可されます。

以下の例は、アドオンの名前と説明、追加のメタデータ、および適用する実際のアドオンコマンドなど、アドオンの内容を示しています。

例: anyuid アドオン定義ファイル

# Name: anyuid                                                                          1
# Description: Allows authenticated users to run images under a non pre-allocated UID   2
# Required-Vars: ACME_TOKEN                                                             3
# OpenShift-Version: >3.6.0                                                             4
# Minishift-Version: >1.22.0                                                            5

mytoken := oc sa get-token oauth-client                                                 6

oc new-app -p OPENSHIFT_OAUTH_CLIENT_SECRET=#{mytoken}                                  7
oc adm policy add-scc-to-group anyuid system:authenticated                              8

1
(必須) アドオンの名前。
2
(必須 アドオンの説明。
3
(必要に応じて) 必要な挿入変数のコンマ区切りリスト。「変数の挿入」を参照してください。
4
(必要に応じて) 特定のアドオンの実行に必要な OpenShift バージョン。「OpenShift バージョンセマンティクス」を参照してください。
5
(必要に応じて) 特定のアドオンの実行に必要な CDK バージョン。「最小バージョンセマンティクス」を参照してください。
6
実際のアドオンコマンドを実行し、その出力を変数に保存します。内部変数 を参照してください。
7
実際の追加コマンドです。この場合、コマンドは mytoken 変数の値を使用して oc バイナリーを実行します。
8
実際の追加コマンドです。この場合、コマンドは oc バイナリーを実行します。
注記
  • 「#」文字で始まるコメント行は、ファイルのどこにでも挿入できます。
  • ! 文字で始まるコマンドは、実行の失敗を無視します。そのため、アドオンがべき等になります (つまり、アドオンの最終的な動作を変更せずに、コマンドは複数回実行できます)。

有効なアドオンは、初期クラスタープロビジョニングが正常に完了した直後に、minishift start 時に適用されます。

2.4.2. OpenShift-Version セマンティクス

アドオンメタデータの一部として、アドオンを適用するために実行中の OpenShift バージョンを指定できます。これを実行するには、任意の OpenShift-Version メタデータフィールドを指定できます。セマンティクスは以下のとおりです。

>3.6.0

アドオンを適用するには、3.6.0 を超える OpenShift バージョンを実行する必要があります。

>=3.6.0

アドオンを適用するには、OpenShift バージョン 3.6.0 以降を実行している必要があります。

3.6.0

アドオンを適用するには、OpenShift バージョン 3.6.0 を実行する必要があります。

>=3.5.0, <3.8.0

OpenShift バージョンは 3.5.0 以上 3.8.0 未満にする必要があります。

>=3.5.0, <=3.8.0

OpenShift バージョンは 3.5.0 以上 3.8.0 以下にする必要があります。

注記
  • metadata フィールド OpenShift-Version がアドオンヘッダーで指定されていない場合、アドオンはすべてのバージョンの OpenShift に対して適用できます。
  • OpenShift-Version では、バージョンの形式は <major>.<minor>.<patch> のみをサポートします。

2.4.3. Minishift-Version セマンティクス

アドオンメタデータの一部として、アドオンを適用するために実行する必要のある Minishift バージョンを指定できます。これを行うには、オプションの Minishift-Version メタデータフィールドを指定できます。セマンティクスは以下のとおりです。

>1.22.0

アドオンを適用するには、1.22.0 より大きい minishift バージョンを実行する必要があります。

>=1.22.0

アドオンを適用するには、1.22.0 以上の minishift バージョンを実行する必要があります。

1.22.0

アドオンを適用するには、minishift バージョン 1.22.0 を実行する必要があります。

>=1.21.0, <1.25.0

minishift バージョンは 1.21.0 以上でなければなりませんが、1.25.0 未満です。

>=1.22.0, <=1.25.0

minishift バージョンは 1.22.0 以上でなければなりませんが、1.25.0 以下である必要があります。

注記
  • アドオンヘッダーで metadata フィールド Minishift-Version が指定されていない場合、アドオンは CDK のバージョンに対して適用できます。
  • Minishift-Version では、バージョンの形式は <major>.<minor>.<patch> のみをサポートします。

2.4.4. アドオン依存関係の定義

アドオン依存関係は、Depends-On メタデータフィールドを使用して定義できます。複数の依存関係は、アドオン名のコンマ区切りリストを使用して定義できます。

例: アドオン定義ファイルのアドオン依存関係の定義

# Name: example
# Description: Shows the use of the Depends-On metadata field
# Depends-On: anyuid, admin-user

echo Depends on the anyuid and admin-user add-ons, requiring them to be installed.

2.4.5. アドオンコマンド

本セクションでは、アドオンファイルに追加できるコマンドを説明します。CDK アドオンのドメイン固有の小さな言語を形成します。

ssh
ssh でアドオンコマンドを起動する場合は、CDK 管理の仮想マシン内でコマンドを実行できます。これは、minishift ssh の実行と似ており、仮想マシンで任意のコマンドを実行します。minishift ssh コマンドの使用方法は、「SSH を使用した CDK 仮想マシンへの接続」を参照してください。
oc

oc でアドオンコマンドを起動する場合は、ホストにキャッシュされた oc バイナリーを使用して、指定された oc コマンドを実行します。コマンドラインから oc --as system:admin …​ を実行するのと似ています。

注記

oc コマンドは system:admin として実行されます。

openshift
openshift でアドオンコマンドを起動する場合、これは OpenShift コンテナーに存在する oc バイナリーを使用してコマンドを実行します。つまり、ファイルパラメーターやその他のシステム固有のパラメーターは、ホストではなくコンテナーの環境と一致する必要があります。
docker
docker でアドオンコマンドを起動すると、CDK 仮想マシン内の Docker デーモンに対して docker コマンドを実行します。これは、単一ノードの OpenShift クラスターを実行しているのと同じデーモンです。これは、ホストで eval $(minishift docker-env) を実行し、docker コマンドを実行するのと似ています。minishift docker-env も参照してください。
echo
echo でアドオンコマンドを起動すると、echo コマンドの後の引数がコンソールに出力されます。これは、アドオンの実行中に追加のフィードバックを提供するために使用できます。
sleep
sleep でアドオンコマンドを起動すると、指定した秒数だけ待機します。これは、特定のリソースをクエリーする前に oc などのコマンドに数秒かかる可能性がある場合に便利です。
cat
cat でアドオンコマンドがを起動する場合は、cat コマンドに続く引数を有効なファイルパスにする必要があります。これにより、有効なファイルの内容をコンソールに出力するか、ファイルパスが無効であればエラーメッセージが表示されます。これは、別のコマンドでファイルの内容を使用するのに便利です。
注記

undefined コマンドの使用を試みると、アドオンが解析される際にエラーが発生します。

2.4.6. 変数の挿入

CDK では、アドオンコマンド内で変数を使用できます。変数の形式は #{<variable-name>} です。以下の例は、OpenShift ルーティング接尾辞が openshift コマンドに挿入され、OpenShift レジストリーのセキュリティー保護の一環として新規証明書を作成する方法を示しています。使用された変数 #{routing-suffix} は組み込みアドオン変数の一部です。

例: routing-suffix 変数の使用

$ openshift admin ca create-server-cert \
  --signer-cert=/var/lib/origin/openshift.local.config/master/ca.crt \
  --signer-key=/var/lib/origin/openshift.local.config/master/ca.key \
  --signer-serial=/var/lib/origin/openshift.local.config/master/ca.serial.txt \
  --hostnames='docker-registry-default.#{routing-suffix},docker-registry.default.svc.cluster.local,172.30.1.1' \
  --cert=/etc/secrets/registry.crt \
  --key=/etc/secrets/registry.key

2.4.6.1. 組み込み変数

常に挿入に使用できる組み込み変数が複数存在しています。以下の表は、これらの変数を示しています。

表2.1 サポートされる組み込みアドオン変数
変数説明

ip

CDK 仮想マシンの IP。

routing-suffix

アプリケーションの OpenShift ルーティング接尾辞。

addon-name

現在のアドオンの名前。

user

SSH を介してコマンドを実行するために CDK が使用するユーザー。

2.4.6.2. 動的変数

minishift addons apply コマンドおよび minishift start コマンドも適用されます。これにより、--addon-env フラグも適用され、挿入用の変数を動的に渡すことができます。以下に例を示します。

$ minishift addons apply --addon-env PROJECT_USER=user acme

--addon-env フラグは、挿入用に複数の変数を定義するために複数回指定できます。

動的変数の指定は、永続的な設定値の設定 と併用することもできます。

$ minishift config set addon-env PROJECT_USER=user
$ minishift addons apply acme
ヒント

minishift config set コマンドを使用する場合は、複数の変数をコンマ区切りにする必要があります。

また、アドオンが適用される際に、環境変数の値で変数を動的に挿入する可能性もあります。この場合には、変数値の前に env を付ける必要があります。

$ minishift config set addon-env PROJECT_USER=env.USER        1
$ minishift addons apply acme                                 2
1
env 接頭辞を使用すると、「#{PROJECT_USER}」を「env.USER」に置き換える代わりに、環境変数 USER の値が使用されます。環境変数が設定されていないと、挿入は行われません。
2
アドオンが適用されると、アドオンコマンドの #{PROJECT_USER} が環境変数 USER の値に置き換えられます。

アドオンの開発者は、変数名を Required-Vars メタデータヘッダーに追加することで、アドオンの適用時に変数の値が提供されるようにすることができます。複数の変数はコンマ区切りにする必要があります。

# Name: acme
# Description: ACME add-on
# Required-Vars: PROJECT_USER

Var-Defaults メタデータヘッダーを使用して変数のデフォルト値を指定することもできます。Var-Defaults は、<key>=<value> の形式で指定する必要があります。複数のデフォルトのキーと値のペアはカンマで区切る必要があります。

# Name: acme
# Description: ACME add-on
# Required-Vars: PROJECT_USER
# Var-Defaults: PROJECT_USER=user
注記
  • =, はメタ文字で、キーまたは値の一部として使用できません。
  • Var-Defaults キーの値として「NULL」、「Null」、「Null」、または「null」が指定されている場合は、空の値が設定されます。以下は例になります。

    # Var-Defaults: PROJECT_USER=null
  • --addon-env を使用するか、minishift config set addon-env を設定してコマンドラインで指定される変数値は、Var-Defaults よりも優先されます。

2.4.6.3. 内部変数

アドオンは変数の定義を許可します。これらの変数は、アドオンコマンド の出力を保存するために使用できます。

たとえば、oc コマンド出力を mytoken 変数に保存し、以下のように後続のアドオンコマンドで使用できます。

mytoken := oc sa get-token oauth-client
oc new-app -p OPENSHIFT_OAUTH_CLIENT_SECRET=#{mytoken}

2.4.7. デフォルトのアドオン

CDK は、開発を支援する共通の OpenShift カスタマイズを提供する一連のビルトインアドオンを提供します。minishift setup-cdk では、Minishift は自動的に xpaas アドオン、anyuid アドオン、および admin-user アドオンをインストールして有効にします。デフォルトのアドオンをインストールするには、以下を実行します。

$ minishift addons install --defaults

このコマンドは、デフォルトのアドオンインストールディレクトリー $MINISHIFT_HOME/addons に展開します。インストールされたアドオンの一覧を表示するには、以下のコマンドを実行します。

$ minishift addons list --verbose=true

このコマンドは、インストールされているアドオンの一覧を出力します。少なくとも、anyuid アドオンが表示されるはずです。これは、事前に割り当てられた UID を使用しないイメージを実行できるようにする重要なアドオンです。デフォルトでは、これは OpenShift では使用できません。

表2.2 デフォルトのアドオン
アドオン名説明

anyuid

デフォルトのセキュリティーコンテキスト制約を変更し、Pod が任意の UID で実行できるようにします。

admin-user

「admin」という名前のユーザーを作成し、cluster-admin ロールを割り当てます。

che

Eclipse Che 統合開発環境のインスタンスを実行します。

eap-cd

JBoss EAP CD テンプレートをインポートします。

htpasswd-identity-provider

ユーザーは、OpenShift インスタンスのデフォルトのログインユーザー名およびパスワードを変更および追加できます。

registry-route

OpenShift レジストリーのエッジ終端ルートを作成します。

xpaas

xPaaS テンプレートをインポートします。

注記

eap-cd アドオンは、JBoss EAP CD 19 のテンプレートを提供します。最新バージョンの JBoss EAP CD を使用するには、アップストリームの eap-cd アドオンを使用します。アップストリームアドオンのインストール方法は、「コミュニティーによるアドオン」を参照してください。

2.4.7.1. コミュニティーによるアドオン

複数のデフォルトアドオンの他に、CDK 用にコミュニティーで開発したアドオンが多数あります。コミュニティーアドオンは minishift-addons リポジトリーにあります。リポジトリー のアドオンに関する情報をすべて取得できます。インストール手順は、README を参照してください。

2.4.8. アドオンのインストール

アドオンは minishift addons install コマンドでインストールされます。

以下の例は、アドオンのインストール方法を示しています。

例: アドオンのインストール

$ minishift addons install <path_to_addon_directory>

2.4.9. アドオンの有効化および無効化

アドオンは minishift addons enable コマンドで有効にされ、minishift addons disable コマンドで無効にされます。有効にするアドオンは、minishift start 時に自動的に実行されます。

以下の例は、anyuid アドオンを有効にして無効にする方法を示しています。

例: anyuid アドオンの有効化

$ minishift addons enable anyuid

例: anyuid アドオンの無効化

$ minishift addons disable anyuid

2.4.9.1. アドオンの優先度

アドオンを有効にすると、優先度を指定することもできます。これにより、アドオンが適用される順序が決定されます。

以下の例は、優先度が高い レジストリー アドオンを有効にする方法を示しています。

例: 優先順位を持つレジストリーアドオンの有効化

$ minishift addons enable registry --priority=5

アドオンの priority 属性は、アドオンの適用順序を決定します。デフォルトでは、アドオンの優先度は 0 です。優先度の値が低いアドオンが最初に適用されます。

以下の例では、anyuid アドオン、registry アドオン、eap アドオンは、それぞれの優先度 0、5、および 10 で有効にされています。つまり、anyuid が最初に適用され、その後に registry が続き、最後に eap アドオンが最後に適用されます。

例: 明示的な優先度でのコマンドの出力の一覧表示

$ minishift addons list
- anyuid         : enabled    P(0)
- registry       : enabled    P(5)
- eap            : enabled    P(10)

注記

2 つのアドオンの優先順位が同じ場合は、適用される順序は判断されません。

2.4.10. アドオンの適用

アドオンは minishift addons apply コマンドを使用して明示的に実行できます。有効なアドオンと無効なアドオンの両方に apply コマンドを使用できます。1 つのコマンドで複数のアドオンを適用するには、スペースで区切られたアドオン名を指定します。

以下の例は、anyuid アドオンおよび admin-user アドオンを明示的に適用する方法を示しています。

例: anyuid アドオンおよび admin-user アドオンの適用

$ minishift addons apply anyuid admin-user

2.4.11. アドオンの削除

アドオンは minishift addons remove コマンドを使用して削除できます。これは minishift addons apply のミラーコマンドであり、アドオンが有効かどうかに関わらず、同様に使用できます。指定したアドオンがインストールされ、<addon_name>.addon.remove ファイルがある場合、minishift addons remove は、このファイルで指定されたコマンドを実行します。

1 つのコマンドで複数のアドオンを削除するには、スペースで区切られたアドオン名を指定します。以下の例は、admin-user アドオンを明示的に削除する方法を示しています。

例: admin-user アドオンの削除

$ minishift addons remove admin-user
-- Removing addon 'admin-user':.
admin user deleted

2.4.12. アドオンのアンインストール

アドオンは、minishift addons uninstall コマンドを使用してアンインストールできます。これは minishift addons install のミラーコマンドであり、アドオンが有効かどうかに関わらず、同様に使用できます。指定したアドオンがインストールされている場合、minishift addons uninstall は対応するアドオンディレクトリーを $MINISHIFT_HOME/addons から削除します。

以下の例は、admin-user アドオンを明示的にアンインストールする方法を示しています。

例: admin-user アドオンのアンインストール

$ minishift addons uninstall admin-user
Add-on 'admin-user' uninstalled

2.4.13. カスタムアドオンの作成

カスタムアドオンを作成するには、ディレクトリーを作成し、そのディレクトリーに、拡張子 .addon で少なくとも 1 つのテキストファイルを作成する必要があります (例: admin-role.addon)。

このファイルには、アドオンの一部として実行するコマンドと、Name および Description メタデータフィールドが含まれている必要があります。

以下の例は、開発者ユーザーに cluster-admin 権限を付与するアドオンの定義を示しています。

例: admin-role のアドオン定義

# Name: admin-role
# Description: Gives the developer user cluster-admin privileges

oc adm policy add-role-to-user cluster-admin developer

アドオンを定義したら、以下を実行してインストールできます。

$ minishift addons install <ADDON_DIR_PATH>
ヒント

複数の行でメタデータを作成することもできます。

例: 複数行の説明が含まれるアドオン定義

# Name: prometheus
# Description: This template creates a Prometheus instance preconfigured to gather OpenShift and
# Kubernetes platform and node metrics and report them to admins. It is protected by an
# OAuth proxy that only allows access for users who have view access to the prometheus
# namespace. You may customize where the images (built from openshift/prometheus
# and openshift/oauth-proxy) are pulled from via template parameters.
# Url: https://prometheus.io/

CDK アドオンインストールディレクトリー $MINISHIFT_HOME/addons で、アドオンを直接編集することもできます。アドオンにエラーがある場合は、addons コマンドの実行時には表示されませんが、これは minishift start プロセス中は適用されないことに注意してください。

アドオンの削除手順を提供するには、拡張子 .addon.remove でテキストファイルを作成できます (例: admin-user.addon.remove)。.addon ファイルと同様に、Name および Description メタデータフィールドが必要です。.addon.remove ファイルが存在する場合は、remove コマンドで適用できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.