Environment Variable Management
アプリケーションの環境変数情報はYAMLファイルにハードコーディングすることができますが、再利用性に欠けます。運用の観点から、アプリケーションを実行するコードとアプリケーションに注入される設定コードを分離することで、再利用性を大幅に向上させることができます。アプリケーションの内部設定値は外部で管理され、KubernetesのSecret ConfigMapリソースを使用してコンテナに注入することができます。
Secretは、パスワード、APIキー、SSHキーなどのセキュリティに敏感な情報をコンテナに注入する際に使用されます。
ConfigMapは、非機密の設定情報をコンテナに注入するために使用されます。
環境変数リスト
これは、アプリケーションの環境変数として登録されたSecretおよびConfigMap情報を管理するためのインターフェースです:

① Env/Properties設定情報のリスト。
- Name: 環境変数の名前。
- Secret/ConfigMap Name: 環境変数を管理するSecretまたはConfigMapの名前。Kubernetes環境では、アプリケーションによって使用される環境変数はSecret/ConfigMapとして管理されます。
- Type: 画面に次のように表示されます:
- ConfigMapの場合、ConfigMapのみが表示されます。
- Secretの場合、特定のタイプの秘密が表示されます(dockerconfigjson、opaque、tls、service-account-token、basic-authなど)。
- Opaque (generic): ConfigMapと同じ目的で使用できる汎用の秘密です。機密データをコンテナに渡すためにも使用できます。
- Dockerconfigjson: Docker イメージリポジトリにアクセスするための認証情報に使用されます。Kubernetes はコンテナを管理するため、イメージリポジトリへのアクセスが必要であり、Docker Hub や ECR のようなプライベートイメージリポジトリには追加の認証が必要です。dockerconfigjson は、これらのプライベートレジストリにアクセスするために使用されるシークレットです。
- tls: TLS 証明書をシークレットとして管理するのに役立ちます。TLS 証明書情報がシークレットに保存されると、Pod やサービスなどのオブジェクトはそれを使用して暗号化された通信を行うことができます。
- service-account-token: RBAC(ロールベースのアクセス制御)のための重要な Kubernetes API リソースである ServiceAccount に関連しています。ServiceAccount は Pod にリンクされ、その権限を設定します。ServiceAccount が接続されると、認証情報を含むトークンが自動的にシークレットとして作成されます。
- basic-auth: 基本認証のための資格情報を保存するために提供されるタイプです。
このシークレットタイプを使用する場合、シークレットのデータフィールドには次の 2 つのキーのいずれかが含まれている必要があります:
username: 認証用のユーザー名、
password: 認証用のパスワードまたはトークン。
- Namespace: シークレット/ConfigMap がデプロイされているクラスターの名前空間。
- Microservice: 現在環境変数を使用しているマイクロサービス/アプリケーションの名前。
- Action: 環境変数情報のための追加のアクションボタン。
- Edit : 環境変数の編集ページに移動します。
- Delete : 環境変数を削除します。ブロック削除が ON の場合、ユーザーは削除を行うことができません。
② ConfigMap インポート: Kubernetes にデプロイされた Secrets/ConfigMaps から選択して登録できます。
③ 新しいシークレット/ConfigMap リソースを作成します。
④ シークレット/ConfigMap 情報を削除します。ブロック削除が ON の場合、ユーザーは削除を行うことができません。
⑤ 名前または名前空間に関する検索値でビューをフィルタリングします。

環境変数の作成
環境変数リスト画面から、「新規追加」ボタンをクリックして新しいSecret/ConfigMapを作成します。
ConfigMapの作成 (ファイルタイプ)
これは、ConfigMap作成ページの各項目の詳細な説明です。

① タイプ: 環境変数を保存するためにConfigMapとSecretのタイプから選択します。
② 名前: アプリケーションの構成情報を管理するConfigMapの名前です。
③ 名前空間: プロファイルに登録されている名前空間のリストからConfigMapを使用する名前空間を選択します。
④ ConfigMapタイプ: ConfigMapは、プロパティとファイル形式の両方をサポートしています。詳細は以下の通りです。
- プロパティ: 構成情報をキー/バリュー形式で登録できるタイプです。
- ファイル: 既存の構成ファイルを登録できるタイプです。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ マウントパス: ファイルタイプを選択した場合、ファイルがアプリケーションに注入され、マウントされるパスを入力します。
⑥ ファイル追加: 複数のファイルを入力でき、追加のファイルごとに追加ボタンをクリックします。
⑦ 削除ボタン: 追加されたファイル情報を削除します。
⑧ キャンセル: ConfigMap作成ページからキャンセルします。
⑨ 保存: 入力した情報を保存してConfigMapを作成します。
ConfigMapの作成 (プロパティタイプ)

① タイプ: 環境変数を保存するためにConfigMapとSecretのタイプから選択します。 ② 名前: アプリケーションの設定情報を管理するためのConfigMapの名前です。
③ 名前空間: プロファイルに登録されている名前空間のリストからConfigMapを使用する名前空間を選択します。
④ ConfigMapタイプ: 適切なプロパティを選択します:
- プロパティ: 設定情報をキー/バリュー形式で登録できるタイプです。
- ファイル: 既存の設定ファイルを登録できるタイプです。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ データ(データ登録): アプリケーションの設定情報を以下のように入力します:
- キー: 環境変数のキーです。
- 値: 環境変数の値です。
- 環境変数: 実際のアプリケーションで注入して使用できるenv名です。
- Springプロパティ(オプション): application.yamlファイルのプロパティにマッピングされる変数名を入力します。
⑥ 追加ボタン: 追加ボタンをクリックすることで新しい設定情報を追加できます。このページでは、複数の設定情報を作成できます。
⑦ 削除ボタン: 追加された設定情報を削除できます。
⑧ 保存: 入力した情報を保存してConfigMapを作成します。
シークレットの作成(オペークタイプ)
これはシークレット作成ページの各項目の詳細な説明です。

① タイプ: シークレットのタイプを選択します。シークレットは、パスワード、APIキー、SSHキーなどの機密情報をコンテナに注入する必要がある場合に使用されます。
② 名前: シークレットの名前を入力します。
③ 名前空間: プロファイルに登録されている名前空間のリストからシークレットの名前空間を選択します。
④ シークレットタイプ: Secrets support 両方の Opaque と kubernetes.io/dockerconfigjson 形式。
- Opaque: 設定情報をキー/バリュー形式で登録するための方法です。(詳細な説明は環境変数リストセクションにあります)。
- kubernetes.io/dockerconfigjson: イメージレジストリにアクセスするための認証情報を登録するための方法です。(詳細な説明は環境変数リストセクションにあります)。
⑤ データ(データ登録):設定データを入力するのと同様にデータを入力します。
- キー:環境変数のキー。
- 値:環境変数の値。
- 環境変数:実際のアプリケーションで注入して使用できるenv名。
- Springプロパティ(オプション):application.yamlファイルのプロパティにマッピングされる変数名を入力します。
⑥ 追加ボタン:複数のキー・バリューのデータペアを入力でき、新しいものごとに追加ボタンをクリックします。
⑦ 削除ボタン:特定のキー・バリューのデータを削除します。
⑧ 保存:入力した情報を保存してシークレットを作成します。
シークレットの作成 (kubernetes.io/dockerconfigjson タイプ)
このセクションでは、dockerconfigjsonタイプのシークレット作成ページの各項目について詳細な説明を提供します。

① タイプ:ConfigMapまたはシークレットを作成しているかを選択します。
② 名前:シークレットの名前を入力します。
③ 名前空間:プロファイルに登録されている名前空間のリストからシークレットの名前空間を選択します。
④ シークレットタイプ:シークレットはOpaqueおよびkubernetes.io/dockerconfigjson 形式の両方をサポートします。
- Opaque:設定情報をキー/バリュー形式で登録するための方法です。(詳細な説明は環境変数リストセクションにあります。)
- kubernetes.io/dockerconfigjson : イメージレジストリにアクセスするための認証情報を登録する方法です。(詳細な説明は環境変数リストセクションにあります。)
⑤ イメージレジストリ: これはプロジェクト設定に登録されたイメージレジストリのリストです。作成中のシークレットを使用して認証したいイメージレジストリを選択してください。
⑥ 保存ボタン: 入力した情報を保存してシークレットを作成します。
環境変数のインポート
環境変数リストから、シークレット/ConfigMapをインポートするために「ファイルをインポート」ボタンをクリックします。
ConfigMapのインポート (プロパティタイプ)
このセクションでは、プロパティタイプの既存のConfigMapをインポートする方法について説明します。

① タイプ: ConfigMapをインポートするかシークレットをインポートするかを選択します。
② 名前: ConfigMapの名前を入力します。
③ 名前空間: プロファイルに登録されている名前空間のリストからConfigMapの名前空間を選択します。
④ ConfigMapタイプ: ConfigMapはプロパティ形式とファイル形式の両方をサポートしています。
- プロパティ: 構成情報がキー/バリュー形式で登録される形式です。
- ファイル: 既存の構成ファイルを登録するための形式です。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ ConfigMaps: これは、③で選択した名前空間にデプロイされたConfigMapsのリストを表示します。インポートしたいConfigMapを選択してください。
⑥ データ (データ登録): 選択したConfigMapのキー・バリューのデータを表示します。このキー・バリュー情報はインポートプロセス中に変更することはできません。
⑦ 保存ボタン: 入力した情報を保存します。
ConfigMapのインポート (ファイルタイプ)
このセクションでは、ファイルタイプのConfigMapインポートページの各項目について詳しく説明します。

タイプ、名前、名前空間の情報は、以前に設定されたものと同じです。
① ConfigMap タイプ: ConfigMaps はプロパティとファイル形式をサポートします。プロパティ: 構成情報がキー/値形式で登録される形式。ファイル: 既存の構成ファイルを登録するための形式です。たとえば、SpringBoot の application.yaml ファイルを分離して管理するために使用します。
② ConfigMaps: 選択した名前空間にデプロイされた ConfigMaps のリストを表示します。インポートしたい ConfigMap を選択してください。
③ マウントパス: ファイル形式が選択された場合、アプリケーションにファイルがマウントされるパスを入力します。
④ ファイル登録: 選択した ConfigMap の構成データを表示します。
⑤ 保存ボタン: 入力した情報を保存します。
シークレットのインポート (Env)
このセクションでは、環境変数用の既存のシークレットをインポートする方法について説明します。

タイプ、名前、名前空間の情報は、以前に設定されたものと同じです。 ① シークレット: 選択した名前空間にデプロイされたシークレットのリストを表示します。インポートしたいシークレットを選択してください。
② シークレットタイプ: 選択したシークレットの特定のタイプを表示します。この項目は変更できません。
③ データ (データ登録): 選択したシークレットの詳細データを表示します。
④ 保存ボタン: 入力した情報を保存します。
シークレットのインポート (File)
このセクションでは、ファイルベースの構成用の既存のシークレットをインポートする方法について説明します。

タイプ、名前、名前空間の情報は、以前に設定されたものと同じです。 ① シークレット: 選択したネームスペースにデプロイされたシークレットのリストを表示します。インポートしたいシークレットを選択してください。
② シークレットタイプ: 選択したシークレットの特定のタイプを表示します。この項目は変更できません。
③ マウントパス: シークレットデータがアプリケーションにマウントされるパスです。
④ readOnly: マウントされたシークレットが読み取り専用かどうかを設定します。
⑤ 保存ボタン: 入力した情報を保存します。
環境変数の編集
ConfigMap (ファイル) の編集
このセクションでは、ファイルタイプのConfigMap編集ページの各項目について詳しく説明します。

① マウントパス: ファイル形式が選択された場合、ファイルがアプリケーションにマウントされるパスを入力します。
② ファイル登録: 新しい構成ファイルを追加するか、既存のファイルを変更します。
③ 削除ボタン: 既存のファイルを削除します。
④ 保存ボタン: 入力した情報を保存します。
ConfigMap (プロパティ) の編集
このセクションでは、プロパティタイプのConfigMap編集ページの各項目について詳しく説明します。

① データ (データ登録): 選択したシークレットの詳細データを表示します。
② プロパティの追加: ユーザーが新しいプロパティを追加できるようにします。

③ 編集ボタン: クリックすると、選択したものを編集するためのモーダルポップアップが開きます。

④ 削除ボタン: 既存のプロパティを削除します。
⑤ 保存ボタン: 入力した情報を保存します。
シークレットの編集 (kubernetes.io/dockerconfigjson)
Secrets of the dockerconfigjson type cannot be edited.

シークレットの編集 (オペーク)
このセクションでは、オペークタイプのシークレット編集ページの各項目についての詳細な説明を提供します。

① データ (データ登録): 選択したシークレットの詳細データを表示します。
② プロパティの追加: ユーザーが新しいプロパティを追加できるようにします:

③ 編集ボタン: クリックすると、選択したものを編集するためのモーダルポップアップが開きます。

⑤ 保存ボタン: 入力した情報を保存します。
シークレットの編集 (ファイル)
このセクションでは、詳細な説明を提供します。

① マウントパス: ファイル形式が選択された場合、アプリケーションにファイルがマウントされるパスを入力します。
② ファイル登録: 新しい構成ファイルを追加するか、既存のものを修正します。
シークレットの編集 (他のタイプ - トークンタイプ)

① データ (データ登録): 選択したシークレットの詳細データを表示します。
② 保存ボタン: 入力した情報を保存します。