This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第 6 章 在工作区中使用凭证和配置
您可以在工作区中使用凭证和配置。
要做到这一点,将凭证和配置挂载到您机构 OpenShift Dev Spaces 实例的 OpenShift 集群中的 Dev Workspace
容器中:
如果您需要允许集群中的 Dev Workspace
Pod 访问需要身份验证的容器 registry,请为 Dev Workspace
Pod 创建 镜像拉取 Secret。
挂载过程使用标准 Kubernetes 挂载机制,需要对现有资源应用额外的标签和注解。在启动新的工作区或重启现有工作区时,资源会被挂载。
您可以为各种组件创建永久挂载点:
-
Maven 配置,如 特定于用户的
settings.xml
文件 - SSH 密钥对
- Git-provider 访问令牌
- AWS 授权令牌
- 配置文件
- 持久性存储
6.1. 挂载 Secret 复制链接链接已复制到粘贴板!
要将机密数据挂载到工作区中,请使用 Kubernetes Secret。
使用 Kubernetes Secret,您可以挂载用户名、密码、SSH 密钥对、身份验证令牌(如 AWS)和敏感配置。
将 Kubernetes Secret 挂载到您机构 OpenShift Dev Spaces 实例的 OpenShift 集群中的 Dev Workspace
容器。
先决条件
-
一个活跃的
oc
会话,它具有到目标 OpenShift 集群的管理权限。请参阅开始使用 CLI。 -
在用户项目中,您要创建新的 Secret,或确定要挂载到所有
Dev Workspace
容器的现有 Secret。
流程
将挂载 Secret 所需的标签添加到 Secret 中。
oc label secret <Secret_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-secret=true
$ oc label secret <Secret_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-secret=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 使用注解来配置 Secret 的挂载方式。
Expand 表 6.1. 可选注解 注解 描述 controller.devfile.io/mount-path:
指定挂载路径。
默认为
/etc/secret/ <Secret_name>
。controller.devfile.io/mount-as:
指定如何挂载资源:
文件
、子路径
或env
。默认为
文件
。mount-as :文件将
键和值挂载为挂载路径中的文件。mount-as: 子路径
使用子路径卷挂载在挂载路径中挂载键和值。mount-as: env
将键和值作为环境变量挂载到所有Dev Workspace
容器中。
例 6.1. 将 Secret 挂载为文件
当您启动一个工作区时,dev Workspace
容器中将提供 /home/user/.m2/settings.xml
文件。
使用 Maven,您可以为 settings.xml
文件设置自定义路径。例如:
mvn --settings /home/user/.m2/settings.xml clean install
$ mvn --settings /home/user/.m2/settings.xml clean install
6.1.1. 创建镜像拉取 secret 复制链接链接已复制到粘贴板!
要允许机构 OpenShift Dev Spaces 实例的 OpenShift 集群中的 Dev Workspace
Pod 访问需要身份验证的容器 registry,请创建一个镜像 pull Secret。
您可以使用 oc
或 .dockercfg
文件或 config.json
文件创建镜像 pull Secret。
6.1.1.1. 使用 oc创建镜像拉取 Secret 复制链接链接已复制到粘贴板!
先决条件
-
一个活跃的
oc
会话,它具有到目标 OpenShift 集群的管理权限。请参阅开始使用 CLI。
流程
在用户项目中,使用私有容器 registry 详情和凭证创建镜像 pull Secret:
oc create secret docker-registry <Secret_name> \ --docker-server=<registry_server> \ --docker-username=<username> \ --docker-password=<password> \ --docker-email=<email_address>
$ oc create secret docker-registry <Secret_name> \ --docker-server=<registry_server> \ --docker-username=<username> \ --docker-password=<password> \ --docker-email=<email_address>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在镜像 pull Secret 中添加以下标签:
oc label secret <Secret_name> controller.devfile.io/devworkspace_pullsecret=true controller.devfile.io/watch-secret=true
$ oc label secret <Secret_name> controller.devfile.io/devworkspace_pullsecret=true controller.devfile.io/watch-secret=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.2. 从 .dockercfg 文件创建镜像 pull Secret 复制链接链接已复制到粘贴板!
如果您已将私有容器 registry 的凭证存储在 .dockercfg
文件中,您可以使用该文件创建镜像 pull Secret。
先决条件
-
一个活跃的
oc
会话,它具有到目标 OpenShift 集群的管理权限。请参阅开始使用 CLI。 -
base64
命令行工具安装在您要使用的操作系统中。
流程
将
.dockercfg
文件编码为 Base64:cat .dockercfg | base64 | tr -d '\n'
$ cat .dockercfg | base64 | tr -d '\n'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在用户项目中创建一个新的 OpenShift Secret:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用 Secret:
oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.3. 从 config.json 文件创建镜像 pull Secret 复制链接链接已复制到粘贴板!
如果您已将私有容器 registry 的凭证存储在 $HOME/.docker/config.json
文件中,您可以使用该文件来创建镜像 pull Secret。
先决条件
-
一个活跃的
oc
会话,它具有到目标 OpenShift 集群的管理权限。请参阅开始使用 CLI。 -
base64
命令行工具安装在您要使用的操作系统中。
流程
将
$HOME/.docker/config.json
文件编码为 Base64。cat config.json | base64 | tr -d '\n'
$ cat config.json | base64 | tr -d '\n'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在用户项目中创建一个新的 OpenShift Secret:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用 Secret:
oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_the_previous_step> EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2. 使用 Git-provider 访问令牌 复制链接链接已复制到粘贴板!
GitHub、GitLab、Bitbucket 或 Microsoft Azure Repos 的 OAuth 需要 由机构的 OpenShift Dev Spaces 实例的管理员配置。如果管理员无法为 OpenShift Dev Spaces 用户配置它,则临时解决方案是将个人访问令牌作为 Kubernetes Secret 应用。
将访问令牌挂载为 Secret 可让 OpenShift Dev Spaces 服务器访问创建工作区期间克隆的远程存储库,包括访问存储库的 /.che
和 /.vscode
文件夹。
在您的机构 OpenShift Dev Spaces 实例的 OpenShift 集群的用户项目中应用 Secret。
应用 Secret 后,您可以使用托管在 GitHub、GitLab、Bitbucket Server 或 Microsoft Azure Repos 上的私有 Git 存储库克隆来创建工作区。
您可以为每个 Git 供应商创建并应用多个访问令牌 Secret。您必须在用户项目中应用每个 Secret。
先决条件
- 具有运行机构的 OpenShift Dev Spaces 实例的集群的集群管理员权限。
已登陆到集群。
提示在 OpenShift 中,您可以使用
oc
命令行工具登录到集群:oc login "https://devspaces-<openshift_deployment_name>.<domain_name>" --username=<my_user>
$ oc login "https://devspaces-<openshift_deployment_name>.<domain_name>" --username=<my_user>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
- 在 Git 提供程序的网站上生成您的访问令牌。
将您的访问令牌编码为 Base64。
提示如果安装了 base64 命令行工具,可以使用命令行:
echo -n '<your_access_token_string>' | base64
$ echo -n '<your_access_token_string>' | base64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
进入
"https://devspaces- <openshift_deployment_name& gt; . <domain_name> "/api/user/id
,以获取您的 OpenShift Dev Spaces 用户 ID。 准备新的 OpenShift Secret。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
访问
"https://devspaces-<openshift_deployment_name>.<domain_name>"/api/kubernetes/namespace
来获取您的 OpenShift Dev Spaces 用户命名空间作为name
。 切换到集群中的 OpenShift Dev Spaces 用户命名空间。
提示在 OpenShift 中:
oc
命令行工具可以返回集群中当前处于的命名空间,您可以使用它来检查当前的命名空间:oc project
$ oc project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果需要,您可以在命令行中切换到 OpenShift Dev Spaces 用户命名空间:
oc project <your_user_namespace>
$ oc project <your_user_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
应用 Secret。
提示在 OpenShift 中,您可以使用
oc
命令行工具:oc apply -f - <<EOF <Secret_prepared_in_step_5> EOF
$ oc apply -f - <<EOF <Secret_prepared_in_step_5> EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 使用 Git 提供程序主机的远程 Git 存储库的 URL 来启动新的工作区。
- 进行一些更改,并从工作区推送到远程 Git 存储库。