第12章 関数の設定
12.1. CLI を使用した関数からのシークレットおよび Config Map へのアクセス
関数がクラスターにデプロイされた後に、それらはシークレットおよび Config Map に保存されているデータにアクセスできます。このデータはボリュームとしてマウントすることも、環境変数に割り当てることもできます。Knative CLI を使用して、このアクセスを対話的に設定するか、関数設定 YAML ファイルを編集して手動で設定できます。
シークレットおよび Config Map にアクセスするには、関数をクラスターにデプロイする必要があります。この機能は、ローカルで実行している関数では利用できません。
シークレットまたは Config Map の値にアクセスできない場合、デプロイメントは失敗し、アクセスできない値を指定するエラーメッセージが表示されます。
12.1.1. シークレットおよび Config Map への関数アクセスの対話的な変更
kn func config
対話型ユーティリティーを使用して、関数がアクセスするシークレットおよび Config Map を管理できます。使用可能な操作には、config map とシークレットに環境変数として保存されている値のリスト表示、追加、および削除、およびボリュームのリスト表示、追加、および削除が含まれます。この機能を使用すると、クラスターに保存されているどのデータを関数からアクセスできるかを管理できます。
前提条件
- OpenShift Serverless Operator および Knative Serving がクラスターにインストールされている。
-
Knative (
kn
) CLI がインストールされている。 - 関数を作成している。
手順
関数プロジェクトディレクトリーで以下のコマンドを実行します。
$ kn func config
あるいは、
--path
または-p
オプションを使用して、関数プロジェクトディレクトリーを指定できます。対話型インターフェイスを使用して必要な操作を実行します。たとえば、ユーティリティーを使用して設定したボリュームのリストを表示すると、以下のような出力が生成されます。
$ kn func config ? What do you want to configure? Volumes ? What operation do you want to perform? List Configured Volumes mounts: - Secret "mysecret" mounted at path: "/workspace/secret" - Secret "mysecret2" mounted at path: "/workspace/secret2"
このスキームは、対話型ユーティリティーで利用可能なすべての操作と、それらに移動する方法を示しています。
kn func config ├─> Environment variables │ ├─> Add │ │ ├─> ConfigMap: Add all key-value pairs from a config map │ │ ├─> ConfigMap: Add value from a key in a config map │ │ ├─> Secret: Add all key-value pairs from a secret │ │ └─> Secret: Add value from a key in a secret │ ├─> List: List all configured environment variables │ └─> Remove: Remove a configured environment variable └─> Volumes ├─> Add │ ├─> ConfigMap: Mount a config map as a volume │ └─> Secret: Mount a secret as a volume ├─> List: List all configured volumes └─> Remove: Remove a configured volume
オプション: 変更を反映させるため、関数をデプロイします。
$ kn func deploy -p test
12.1.2. 特殊なコマンドを使用したシークレットおよび Config Map への関数アクセスの対話的な変更
kn func config
ユーティリティーを実行するたびにダイアログ全体を移動して、直前のセクションで示されているように、必要な操作を選択する必要があります。ステップを保存するには、kn func config
コマンドのより具体的なフォームを実行することで、特定の操作を直接実行します。
設定した環境変数をリスト表示するには、以下を実行します。
$ kn func config envs [-p <function-project-path>]
関数設定に環境変数を追加するには、以下を実行します。
$ kn func config envs add [-p <function-project-path>]
関数設定から環境変数を削除するには、以下を実行します。
$ kn func config envs remove [-p <function-project-path>]
設定したボリュームをリスト表示するには、以下を実行します。
$ kn func config volumes [-p <function-project-path>]
関数設定にボリュームを追加するには、以下を実行します。
$ kn func config volumes add [-p <function-project-path>]
関数設定からボリュームを削除するには、以下を実行します。
$ kn func config volumes remove [-p <function-project-path>]