ページの先頭行へ戻る
Enterprise Postgres 17 SP1 オペレーターユーザーズガイド

2.3.16 コンテナの環境変数定義

FEPClusterとそのコンテナで、環境変数を追加できます。これにより、例えばHTTP_PROXYを定義し閉じたネットワークからプロキシサーバを介してインターネットにあるクラウドなどのサービスを利用することができるようになります。

環境変数は任意のSecretにkey/value形式で定義します。環境変数が定義されたSecret名をカスタムリソースに定義することによって、構築されたコンテナ内で環境変数が適用されます。

環境変数はPodに含まれるすべてのコンテナで共通して利用できるグローバルな環境変数と、コンテナごとに異なるローカルな環境変数を定義できます。

グローバルな環境変数とローカルな環境変数に同じ名前の環境変数を定義した場合は、ローカルな環境変数の値が優先されます。

2.3.16.1 環境変数を定義するSecretの例

環境変数を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

2.3.16.2 カスタムリソースの定義例

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の追加、変更をすることはできません。

2.3.16.3 環境変数の更新

環境変数が定義されたSecretの内容を更新した後、Podを再起動することで最新の環境変数がコンテナに反映されます。

Podの再起動は、FEPActionカスタムリソースのspec.fepAction.typeにrestartを指定することで実行できます。詳細は、“オペレーターリファレンス”の“FEPActionカスタムリソースパラメータ”を参照してください。