FEPClusterとそのコンテナで、環境変数を追加できます。これにより、例えばHTTP_PROXYを定義し閉じたネットワークからプロキシサーバを介してインターネットにあるクラウドなどのサービスを利用することができるようになります。
環境変数は任意のSecretにkey/value形式で定義します。環境変数が定義されたSecret名をカスタムリソースに定義することによって、構築されたコンテナ内で環境変数が適用されます。
環境変数はPodに含まれるすべてのコンテナで共通して利用できるグローバルな環境変数と、コンテナごとに異なるローカルな環境変数を定義できます。
グローバルな環境変数とローカルな環境変数に同じ名前の環境変数を定義した場合は、ローカルな環境変数の値が優先されます。
環境変数をSecretで定義する例を説明します。
環境変数の名前をkeyに、値をbase64でエンコードしてvalueに指定します。
下記はFEPClusterのPodに含まれるコンテナ共通で適用されるグローバルな環境変数の定義例です。Secret“global-env-secret”にHTTP_PROXYとMY_API_SERVER_KEYの2つの環境変数を定義しています。Valueには#以降に書かれている値をbase64でエンコードした値を定義しています。
Secretの名前は任意で、“2.3.16.2 カスタムリソースの定義例”で説明するカスタムリソースに指定します。
SecretのNamespaceはカスタムリソースをアプライするNamespaceを指定します。
kind: Secret apiVersion: v1 metadata: name: global-env-secret namespace: my-namespace data: HTTP_PROXY: aHR0cDovL215LnByb3h5LnNlcnZlci5pcDo4MDgwCg== # http://my.proxy.server.ip:8080 MY_API_SERVER_KEY: NjBjZDgzMmMtNDNjZC00ZTI5LWE0N2QtZGI2MjU1MDNkYzJjCg== # 60cd832c-43cd-4e29-a47d-db625503dc2c type: Opaque
下記はFEPサーバのコンテナのローカルに指定する環境変数の例です。Secret“local-env-secret”には、global-env-secretと異なるMY_API_SERVER_KEYが指定されています。
kind: Secret apiVersion: v1 metadata: name: local-env-secret namespace: my-namespace data: HTTP_PROXY: aHR0cDovL215LnByb3h5LnNlcnZlci5pcDo4MDgwCg== # http://my.proxy.server.ip:8080 MY_API_SERVER_KEY: BjBjZDgzMmMtNDNjZC00ZTI5LWE0N2QtZGI2MjU1MDNkYzJjCg== # 0cd832c-43cd-4e29-a47d-db625503dc2c type: Opaque
FEPClusterカスタムリソースを構築するときに、グローバルな環境変数とローカルな環境変数を指定する例を説明します。
すべてのPodに共通して適用するグローバルな環境変数を定義したSecret“global-env-secret”をspec.globalEnvSecに指定します。
FEPサーバのコンテナに適用する環境変数を定義したSecret“local-env-secret”をspec.fep.fepEnvSecに指定します。
kind: FEPCluster
apiVersion: fep.fujitsu.io/v2
metadata:
name: my-cluster
namespace: my-namespace
spec:
globalEnvSec: global-env-secret
fep:
fepEnvSec: local-env-secret
このとき、global-env-secretとlocal-env-secretには値が異なる環境変数MY_API_SERVER_KEYが定義されていますが、FEPサーバのコンテナではlocal-env-secretに定義された値“0cd832c-43cd-4e29-a47d-db625503dc2c”が適用されます。
そのほかのコンテナごとに環境変数を適用するためのパラメータは“オペレーターリファレンス”を参照してください。
環境変数を定義したSecretの指定は、カスタムリソースの作成時のみ定義できます。カスタムリソース作成後にSecretの追加、変更をすることはできません。
環境変数が定義されたSecretの内容を更新した後、Podを再起動することで最新の環境変数がコンテナに反映されます。
Podの再起動は、FEPActionカスタムリソースのspec.fepAction.typeにrestartを指定することで実行できます。詳細は、“オペレーターリファレンス”の“FEPActionカスタムリソースパラメータ”を参照してください。