0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【備忘】GKEからコンテナに対して環境変数を渡す

Last updated at Posted at 2022-01-03

GKEからコンテナに対して環境変数を渡す

やりたいこと

Javaで下記のような設定ファイルを用意したとする。
image.png

application.ymlでlocal用の設定とstg用の設定を使い分けるようにしたい場合がある。

application.yml

spring:
  profiles:
    active: ${APPLICATION_ENV:local}

${APPLICATION_ENV:local}で環境変数「APPLICATION_ENV」に値がない場合、デフォルトではlocalの設定を使用する(application-local.ymlを読み込む)。
GKE上でアプリを動作させる場合、「APPLICATION_ENV」にstgを設定してapplication-stg.ymlを読み込みたい。

ConfigMapを作成する

ConfigMapとは

ConfigMapとはデータをキーバリュー形式で保存できる機能。コンテナから設定(環境変数とか)としてConfigMapを参照できる。

ConfigMapを作成する

作り方として色々あるが、私は次のやり方で作成した。

Cloud Shellを起動して下記ファイルを作成する。

hoge@cloudshell:~$ vi config.yml

config.yml(ConfigMapの元)

apiVersion: v1
kind: ConfigMap
metadata:
  name: env-config
  namespace: default
data:
  APPLICATION_ENV: stg

ConfigMap作成

hoge@cloudshell:~$ kubectl apply -f config.yml

GCP上のKubernetes Engine >> ConfigMapとSecretに対象のConfigMapが作成されていることを確認する。
image.png

ワークロードでConfigMapを読み込むようにする

デプロイメントを編集してワークロードを更新する。

Kubernetes Engine >> ワークロード >> 対象のワークロードを選択 >> YAMLタブをクリック
編集モードでデプロイメントのyamlに - env以下を設定して保存する

    spec:
      containers:
      - env:
        - name: APPLICATION_ENV
          valueFrom:
            configMapKeyRef:
              key: APPLICATION_ENV
              name: env-config

以上で環境変数をコンテナが読み込める。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?