《OpenShift / RHEL / DevSecOps 汇总目录》
本文在 OpenShift 4.11 中已验证。
文章目录
OpenShift Dev Spaces 说明
红帽 OpenShift Dev Spaces 是一款基于浏览器的云原生应用开发 Web IDE,它是 RedHat 在线应用开发平台 CordeReady Workspace 的升级产品。新版 Dev Spaces 不再需要单独的红帽 RHSSO 作为身份认证登录,而且还支持使用 VS Code 和 IDEA Intellij 作为 IDE 开发界面,并能够使用对应展工具。
环境要求
- OpenShift Dev Spaces 目前支持在 OpenShift 4.10 以上版本的运行环境。
- 在 OpenShift 中已经有多个用户,包括集群管理员和一般用户。
管理员安装 OpenShift Dev Spaces 环境
- 使用集群管理员使用默认配置安装 OpenShift Dev Spaces Operator,此安装过程将自动安装 DevWorkspace Operator。说明:OpenShift Dev Spaces Operator 用来管理 WebIDE 自身的生命周期,而 DevWorkspace Operator 是用来管理每个应用项目的生命周期。
- 新建一个项目,例如 ocp-devspaces。
- 在 ocp-devspaces 项目中进入安装好的 OpenShift Dev Spaces Operator,然后使用缺省配置创建一个 Red Hat OpenShift Dev Spaces instance Specification 实例。
- 部署完成后在 “开发者” 视图中可以看到以下部署的资源。点击 che-gateway 右上方的 “打开 URI” 进入 OpenShift Dev Spaces 登录页面。
租户创建 Workspace
- 使用 OpenShift 的一般用户登录 OpenShift Dev Spaces。
- 在 Create Workspace 页面中为 Git Repo URL 提供 https://github.com/liuxiaoyu-git/go-hello-world,然后点击 “Create & Open”。
- 等待 Workspace 启动完成。
- 上一步完成后会自动进入 IDE 页面。如果没有,可以进入 Workspaces 列表,然后点击 Open 即可进入 IDE 页面。
另外也可访问 https://devspaces.<OCP-SUB-DOMAIN-NAME>/dashboard/#/workspace/<USER-NAME>-devspaces/<WORDSPACE-NAME> 的方式用 WebIDE 打开一个 Workspace。
例如:https://devspaces.apps.cluster-n9cx7.n9cx7.sandbox2115.opentlc.com/dashboard/#/workspace/user1-devspaces/go-hello-world-sample - 在进入 VS Code IDE 后即可进行应用代码开发。
- 可以在 Extension 中安装所需插件。如下图,因为导入应用是 Go 开发的,因此会自动提示安装 Go Extension。
Git Repo 的应用代码缺省使用标准式样的 IDE 进行操作。之所以能够如上图那样用 VS Code 式样的 IDE 进行编辑,是由于在 hello-world-quarkus/.che/che-editor.yaml 文件中有以下配置:
id: che-incubator/che-code/insiders
registryUrl: https://eclipse-che.github.io/che-plugin-registry/main/v3
另外,还可使用如下配置使用 IDEA Intellij 式样的 IDE 界面:
id: che-incubator/intellij-community/latest
registryUrl: https://eclipse-che.github.io/che-plugin-registry/main/v3
了解 DevWorkspace Operator 中 CRD 的功能
每个 Workspace 对应一个 Git Repo 或 ZIP 类型的代码源。而每个 Workspace 就是 DevWorkspace Operator 中名为 DevWorkspace 的 CRD 运行的一个实例,这可以从 DevWorkspace Operator 中已有的 DevWorkspace CRD 实例数量以及名称得到确认。
每个 Workspace 实例会缺省在 项目中创建部署对应的部署,以提供租户开发者通过 Web IDE 操作应用代码。
另外,DevWorkspace Operator 中的 DevWorkspaceTemplate 代表和 WebIDE 相关的配置,例如 WebIDE 样式、快捷操作命令和用到的组件等,其中所有操作命令是在组件定义的 Pod 中运行的。
参考
https://l0rd.io/posts/vs-code-crw