6.2. 挂载 ConfigMap
要将非机密配置数据挂载到工作区中,请使用 Kubernetes ConfigMap。
使用 Kubernetes ConfigMap,您可以挂载非敏感数据,如应用程序的配置值。
将 Kubernetes ConfigMap 挂载到您组织的 OpenShift Dev Spaces 实例的 OpenShift 集群中的 Dev Workspace
容器。
先决条件
-
对目标 OpenShift 集群具有管理权限的活动
oc
会话。请参阅 CLI 入门。 -
在用户项目中,您创建新的 ConfigMap 或确定要挂载到所有
Dev Workspace
容器的现有 ConfigMap。
流程
将 ConfigMap 挂载所需的标签添加到 ConfigMap 中。
oc label configmap <ConfigMap_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-configmap=true
$ oc label configmap <ConfigMap_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-configmap=true
Copy to Clipboard Copied! 可选:使用注解来配置如何挂载 ConfigMap。
表 6.2. 可选注解 注解 描述 controller.devfile.io/mount-path:
指定挂载路径。
默认为
/etc/config/ <ConfigMap_name>
。controller.devfile.io/mount-as:
指定如何挂载资源:
文件
、子路径
或env
。默认为
文件
。mount-as:file
将键和值作为挂载路径中的文件挂载。mount-as:subpath
使用子路径中的键和值挂载挂载路径中的键和值。mount-as:env
将键和值作为环境变量挂载到所有Dev Workspace
容器中。
例 6.2. 将 ConfigMap 作为环境变量挂载
kind: ConfigMap apiVersion: v1 metadata: name: my-settings labels: controller.devfile.io/mount-to-devworkspace: 'true' controller.devfile.io/watch-configmap: 'true' annotations: controller.devfile.io/mount-as: env data: <env_var_1>: <value_1> <env_var_2>: <value_2>
kind: ConfigMap
apiVersion: v1
metadata:
name: my-settings
labels:
controller.devfile.io/mount-to-devworkspace: 'true'
controller.devfile.io/watch-configmap: 'true'
annotations:
controller.devfile.io/mount-as: env
data:
<env_var_1>: <value_1>
<env_var_2>: <value_2>
当您启动一个工作区时,< ;env_var_1>
; 和 < env_var_
2> 环境变量将在 Dev Workspace
容器中提供。
6.2.1. 挂载 Git 配置
user.name
和 user.email
字段会自动设置为 git 供应商中的 gitconfig
内容,连接到 Git-provider 访问令牌 或通过 OAuth 生成的令牌,如果供应商的用户配置集页面中设置了用户名和电子邮件。
按照下面的说明在工作区中挂载 Git 配置文件。
先决条件
- 已登陆到集群。
流程
准备新的 OpenShift ConfigMap。
kind: ConfigMap apiVersion: v1 metadata: name: workspace-userdata-gitconfig-configmap namespace: <user_namespace> labels: controller.devfile.io/mount-to-devworkspace: 'true' controller.devfile.io/watch-configmap: 'true' annotations: controller.devfile.io/mount-as: subpath controller.devfile.io/mount-path: /etc/ data: gitconfig: <gitconfig content>
kind: ConfigMap apiVersion: v1 metadata: name: workspace-userdata-gitconfig-configmap namespace: <user_namespace>
1 labels: controller.devfile.io/mount-to-devworkspace: 'true' controller.devfile.io/watch-configmap: 'true' annotations: controller.devfile.io/mount-as: subpath controller.devfile.io/mount-path: /etc/ data: gitconfig: <gitconfig content>
2 Copy to Clipboard Copied! 应用 ConfigMap。
oc apply -f - <<EOF <ConfigMap_prepared_in_step_1> EOF
$ oc apply -f - <<EOF <ConfigMap_prepared_in_step_1> EOF
Copy to Clipboard Copied!
验证
- 使用 Git 提供程序主机的远程 Git 存储库的 URL,启动新的工作区。
-
启动工作区后,在
tools
容器中运行一个新的终端,并运行git config --get-regexp user ""
。您的 Git 用户名和电子邮件应当会显示在输出中。