39.2. 拡張スクリプトとスタイルシートの読み込み
拡張スクリプトとスタイルシートは、URL がブラウザーからアクセス可能であれば、任意の https://
URL でホストできます。ファイルは、パブリックにアクセスできるルートを使用してプラットフォーム上の Pod からや OpenShift Container Platform 外部の別のサーバー上の Pod からホストできます。
スクリプトとスタイルシートを追加するには、openshift-web-console
namespace で webconsole-config
ConfigMap を編集します。Web コンソール設定は ConfigMap の webconsole-config.yaml
キーにあります。
$ oc edit configmap/webconsole-config -n openshift-web-console
スクリプトを追加するには、extensions.scriptURLs
プロパティーを更新します。値は URL の配列です。
スタイルシートを追加するには、extensions.stylesheetURLs
プロパティーを更新します。値は URL の配列です。
extensions.stylesheetURLs
設定の例
apiVersion: v1 kind: ConfigMap data: webconsole-config.yaml: | apiVersion: webconsole.config.openshift.io/v1 extensions: scriptURLs: - https://example.com/scripts/menu-customization.js - https://example.com/scripts/nav-customization.js stylesheetURLs: - https://example.com/styles/logo.css - https://example.com/styles/custom-styles.css [...]
ConfigMap を保存した後、Web コンソールコンテナーは数分以内に新規の拡張ファイルについて自動的に更新されます。
スクリプトとスタイルシートは正しいコンテンツタイプで提供する必要があります。そうしないと、それらはブラウザーで実行されません。 スクリプトは Content-Type: application/javascript
、スタイルシートは Content-Type: text/css
で提供する必要があります。
最良の実践例として、拡張スクリプトを Immediately Invoked Function Expression (IIFE) でラップすることができます。これにより、Web コンソールや他の拡張で使用される名前と競合するグローバル変数を作成することを防ぐことができます。以下に例を示します。
(function() { // Put your extension code here... }());
以降のセクションの例では、Web コンソールをカスタマイズする一般的な方法を示します。
拡張の他の例については、GitHub の OpenShift Origin リポジトリーを参照してください。
39.2.1. 拡張プロパティーの設定
特定の拡張について環境ごとに異なるテキストを使用する場合、Web コンソール設定で環境を定義し、同じ拡張スクリプトを環境全体で使用できます。
拡張プロパティーを追加するには、openshift-web-console
namespace で webconsole-config
ConfigMap を 編集します。Web コンソール設定は ConfigMap の webconsole-config.yaml
キーにあります。
$ oc edit configmap/webconsole-config -n openshift-web-console
extensions.properties
の値を更新します。 これはキーと値のペアのマップです。
apiVersion: v1 kind: ConfigMap data: webconsole-config.yaml: | apiVersion: webconsole.config.openshift.io/v1 extensions: [...] properties: doc_url: https://docs.openshift.com key1: value1 key2: value2 [...]
これによって、以下のコードが実行された場合と同様に、拡張からアクセスできるグローバル変数が生成されます。
window.OPENSHIFT_EXTENSION_PROPERTIES = { doc_url: "https://docs.openshift.com", key1: "value1", key2: "value2" }