第 12 章 配置功能
12.1. 使用 CLI 从功能访问 secret 和配置映射
将功能部署到集群后,可以访问存储在 secret 和配置映射中的数据。此数据可以挂载为卷,或分配到环境变量。您可以使用 Knative CLI 以互动方式配置此访问,或者通过编辑功能配置 YAML 文件来手动配置。
要访问 secret 和配置映射,必须在集群中部署该功能。此功能不适用于本地运行的函数。
如果无法访问 secret 或配置映射值,则部署会失败,并显示一条错误消息,指定不可访问的值。
12.1.1. 以互动方式修改对 secret 和配置映射的功能访问
您可以使用 kn func config
互动程序来管理您的功能访问的 secret 和配置映射。可用的操作包括列表、添加和删除配置映射和 secret 中存储的值,以及列出、添加和删除卷。通过此功能,您可以管理集群中存储的数据,可以被您的功能访问。
先决条件
- 在集群中安装了 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. 使用专用命令以互动方式修改对 secret 和配置映射的功能访问
每次运行 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>]