第 3 章 配置 Dev Spaces
本节论述了 Red Hat OpenShift Dev Spaces 的配置选项。
3.1. 了解 CheCluster
自定义资源
OpenShift Dev Spaces 的默认部署由 Red Hat OpenShift Dev Spaces Operator 的 CheCluster
自定义资源参数组成。
CheCluster
自定义资源是一个 Kubernetes 对象。您可以通过编辑 CheCluster
自定义资源 YAML 文件来配置它。此文件包含用于配置每个组件的部分: devWorkspace
,cheServer
,pluginRegistry
,devfileRegistry
,database
,dashboard
和 imagePuller
。
Red Hat OpenShift Dev Spaces Operator 将 CheCluster
自定义资源转换为 OpenShift Dev Spaces 安装的每个组件可用的配置映射。
OpenShift 平台将配置应用到每个组件,并创建必要的 Pod。当 OpenShift 检测到一个组件的配置中有更改时,它会相应地重启 Pod。
例 3.1. 配置 OpenShift Dev Spaces 服务器组件的主要属性
-
在
cheServer
组件部分中应用CheCluster
自定义资源 YAML 文件及适当的修改。 -
Operator 生成
che
ConfigMap
。 -
OpenShift 会检测
ConfigMap
中的更改,并触发 OpenShift Dev Spaces Pod 重启。
其他资源
3.1.1. 在安装过程中使用 dsc 配置 CheCluster
自定义资源
要使用适当的配置部署 OpenShift Dev Spaces,请在安装 OpenShift Dev Spaces 的过程中编辑 CheCluster
自定义资源 YAML 文件。否则,OpenShift Dev Spaces 部署使用 Operator 默认配置参数。
先决条件
-
具有 OpenShift 集群的管理权限的活跃的
oc
会话。请参阅开始使用 CLI。 -
dsc
.请参阅: 第 2.1 节 “安装 dsc 管理工具”。
流程
创建一个
che-operator-cr-patch.yaml
YAML 文件,其中包含要配置的CheCluster
自定义资源的子集:spec: <component>: <property_to_configure>: <value>
部署 OpenShift Dev Spaces 并应用
che-operator-cr-patch.yaml
文件中描述的更改:$ dsc server:deploy \ --che-operator-cr-patch-yaml=che-operator-cr-patch.yaml \ --platform <chosen_platform>
验证
验证配置的属性的值:
$ oc get configmap che -o jsonpath='{.data.<configured_property>}' \ -n openshift-devspaces
3.1.2. 使用 CLI 配置 CheCluster 自定义资源
要配置正在运行的 OpenShift Dev Spaces 实例,请编辑 CheCluster
自定义资源 YAML 文件。
先决条件
- OpenShift 上的 OpenShift Dev Spaces 实例。
-
一个活跃的
oc
会话,它具有到目标 OpenShift 集群的管理权限。请参阅开始使用 CLI。
流程
编辑集群中的 CheCluster 自定义资源:
$ oc edit checluster/devspaces -n openshift-devspaces
- 保存并关闭该文件以应用更改。
验证
验证配置的属性的值:
$ oc get configmap che -o jsonpath='{.data.<configured_property>}' \ -n openshift-devspaces
3.1.3. CheCluster
自定义资源字段参考
本节论述了可用于自定义 CheCluster
自定义资源的所有字段。
-
例 3.2 “一个最小的
CheCluster
自定义资源示例。” - 表 3.1 “开发环境配置选项。”
- 表 3.4 “OpenShift Dev Spaces 组件配置。”
- 表 3.5 “DevWorkspace operator 组件配置。”
- 表 3.6 “与 OpenShift Dev Spaces 服务器组件相关的常规配置设置。”
- 表 3.7 “与 OpenShift Dev Spaces 安装使用的插件 registry 组件相关的配置设置。”
- 表 3.8 “与 OpenShift Dev Spaces 安装使用的 Devfile registry 组件相关的配置设置。”
- 表 3.9 “与 OpenShift Dev Spaces 安装使用的 Database 组件相关的配置设置。”
- 表 3.10 “与 OpenShift Dev Spaces 安装使用的 Dashboard 组件相关的配置设置。”
- 表 3.11 “Kubernetes Image Puller 组件配置。”
- 表 3.12 “OpenShift Dev Spaces 服务器指标组件配置。”
- 表 3.13 “网络、OpenShift Dev Spaces 身份验证和 TLS 配置。”
- 表 3.14 “配置存储 OpenShift Dev Spaces 镜像的替代 registry。”
-
表 3.15 “
CheCluster
自定义资源状态
定义 OpenShift Dev Spaces 安装的状态”
例 3.2. 一个最小的 CheCluster
自定义资源示例。
apiVersion: org.eclipse.che/v2 kind: CheCluster metadata: name: devspaces spec: devEnvironments: defaultNamespace: template: '<username>-che' storage: pvcStrategy: 'common' components: database: externalDb: false metrics: enable: true
属性 | 描述 |
---|---|
containerBuildConfiguration | 容器构建配置。 |
defaultComponents | 应用到 DevWorkspace 的默认组件。这些默认组件应该在 Devfile 不包含任何组件时使用。 |
defaultEditor |
要使用的工作区创建的默认编辑器。它可以是插件 ID 或 URI。插件 ID 必须具有 |
defaultNamespace | 用户的默认命名空间。 |
defaultPlugins | 应用到 DevWorkspace 的默认插件。 |
disableContainerBuildCapabilities | 禁用容器构建功能。 |
maxNumberOfRunningWorkspacesPerUser | 每个用户运行工作区的最大数量。值 -1 允许用户运行无限数量的工作区。 |
maxNumberOfWorkspacesPerUser | 用户可以保留的工作空间总数,包括停止和运行。值 -1 允许用户保持无限数量的工作区。 |
nodeSelector | 节点选择器限制可运行工作区 pod 的节点。 |
podSchedulerName | 工作区 pod 的 Pod 调度程序。如果没有指定,pod 调度程序将设置为集群中的默认调度程序。 |
secondsOfInactivityBeforeIdling | 以秒为单位的工作区闲置超时。这个超时是工作区在没有活动时会被闲置的持续时间。要禁用因为不活跃而闲置工作区,请将此值设置为 -1。 |
secondsOfRunBeforeIdling | 以秒为单位为工作区运行超时。这个超时是工作区运行的最长持续时间。要禁用工作区运行超时,请将此值设置为 -1。 |
serviceAccount | 启动工作区时由 DevWorkspace operator 使用的 ServiceAccount。 |
startTimeoutSeconds | StartTimeoutSeconds 决定工作区在自动失败前可以启动的最长时间(以秒为单位)。如果没有指定,则使用默认值 300 秒(5 分钟)。 |
storage | 工作区持久性存储。 |
容限(tolerations) | 工作区 pod 的 pod 容限限制了工作区 pod 可以运行的情况。 |
trustedCerts | 可信证书设置。 |
属性 | 描述 |
---|---|
autoProvision | 指明是否允许自动创建用户命名空间。如果设置为 false,则集群管理员必须预先创建用户命名空间。 |
模板 |
如果您不预先创建用户命名空间,此字段定义了在启动第一个工作区时创建的 Kubernetes 命名空间。您可以使用 < |
属性 | 描述 |
---|---|
perUserStrategyPvcConfig |
使用每个用户 PVC 策略时 |
perWorkspaceStrategyPvcConfig |
使用 |
pvcStrategy |
OpenShift Dev Spaces 服务器的持久性卷声明策略。支持的策略有: |
属性 | 描述 |
---|---|
cheServer | 与 OpenShift Dev Spaces 服务器相关的常规配置设置。 |
dashboard | 与 OpenShift Dev Spaces 安装使用的仪表板相关的配置设置。 |
数据库 | 与 OpenShift Dev Spaces 安装使用的数据库相关的配置设置。 |
devWorkspace | DevWorkspace Operator 配置。 |
devfileRegistry | 与 OpenShift Dev Spaces 安装使用的 devfile registry 相关的配置设置。 |
imagePuller | Kubernetes Image Puller 配置。 |
metrics | OpenShift Dev Spaces 服务器指标配置。 |
pluginRegistry | 与 OpenShift Dev Spaces 安装使用的插件 registry 相关的配置设置。 |
属性 | 描述 |
---|---|
runningLimit |
弃用,而是使用 |
属性 | 描述 |
---|---|
clusterRoles |
分配给 OpenShift Dev Spaces ServiceAccount 的 ClusterRole。默认角色为: - < |
debug | 为 OpenShift Dev Spaces 服务器启用调试模式。 |
部署 | 部署覆盖选项。 |
extraProperties |
除了从 |
logLevel |
OpenShift Dev Spaces 服务器的日志级别: |
proxy | Kubernetes 集群的代理服务器设置。OpenShift 集群不需要额外的配置。通过为 OpenShift 集群指定这些设置,您可以覆盖 OpenShift 代理配置。 |
属性 | Description |
---|---|
部署 | 部署覆盖选项。 |
disableInternalRegistry | 禁用内部插件 registry。 |
externalPluginRegistries | 外部插件 registry。 |
openVSXURL | 打开 VSX registry URL。如果省略了嵌入式实例。 |
属性 | Description |
---|---|
部署 | 部署覆盖选项。 |
disableInternalRegistry | 禁用内部 devfile registry。 |
externalDevfileRegistries | 外部 devfile registry 服务示例可直接使用 devfile。 |
属性 | 描述 |
---|---|
credentialsSecretName |
secret 包括 PostgreSQL |
部署 | 部署覆盖选项。 |
externalDb |
指示 Operator 部署专用数据库。默认情况下,将专用 PostgreSQL 数据库部署为 OpenShift Dev Spaces 安装的一部分。当 |
postgresDb | OpenShift Dev Spaces 服务器用于连接数据库的 PostgreSQL 数据库名称。 |
postgresHostName |
OpenShift Dev Spaces 服务器连接的 PostgreSQL 数据库主机名。仅在使用外部数据库时覆盖这个值。参阅字段 |
postgresPort |
OpenShift Dev Spaces 服务器连接的 PostgreSQL 数据库端口。仅在使用外部数据库时覆盖这个值。参阅字段 |
pvc | PostgreSQL 数据库的 PVC 设置。 |
属性 | Description |
---|---|
部署 | 部署覆盖选项。 |
headerMessage | 仪表板标头消息。 |
属性 | 描述 |
---|---|
enable |
安装和配置社区支持的 Kubernetes Image Puller Operator。当您在不提供任何 specs 的情况下将值设为 |
spec | Kubernetes Image Puller spec,用于在 CheCluster 中配置镜像拉取程序。 |
属性 | 描述 |
---|---|
enable |
为 OpenShift Dev Spaces 服务器端点启用 |
属性 | 描述 |
---|---|
annotations | 定义将为 Ingress 设置的注解(OpenShift 平台的路由)。kubernetes 平台的默认值为:kubernetes.io/ingress.class: \nginx\ nginx.ingress.kubernetes.io/proxy-read-timeout: \3600\, nginx.ingress.kubernetes.io/proxy-connect-timeout: \3600\, nginx.ingress.kubernetes.io/ssl-redirect: \true\ |
auth | 身份验证设置。 |
domain | 对于 OpenShift 集群,Operator 使用域为路由生成主机名。生成的主机名遵循以下模式: che-<devspaces-namespace>.<domain>。<devspaces-namespace> 是创建 CheCluster CRD 的命名空间。与标签一同使用,它会创建一个非默认 Ingress 控制器提供的路由。对于 Kubernetes 集群,它包含一个全局入口域。没有默认值:您必须指定它们。 |
hostname | 安装的 OpenShift Dev Spaces 服务器的公共主机名。 |
labels | 定义将为 Ingress 设置的标签(OpenShift 平台的路由)。 |
tlsSecretName |
用于设置 Ingress TLS 终止的 secret 名称。如果字段是空字符串,则使用默认集群证书。secret 必须具有 |
属性 | 描述 |
---|---|
hostname | 从中拉取镜像的替代容器 registry 的可选主机名或 URL。这个值覆盖 OpenShift Dev Spaces 部署中涉及的所有默认容器镜像中定义的容器 registry 主机名。这对在受限环境中安装 OpenShift Dev Spaces 特别有用。 |
机构 | 从中拉取镜像的替代 registry 的可选仓库名称。这个值覆盖 OpenShift Dev Spaces 部署中涉及的所有默认容器镜像中定义的容器 registry 组织。这对在受限环境中安装 OpenShift Dev Spaces 特别有用。 |
属性 | 描述 |
---|---|
chePhase | 指定 OpenShift Dev Spaces 部署的当前阶段。 |
cheURL | OpenShift Dev Spaces 服务器的公共 URL。 |
cheVersion | 当前安装的 OpenShift Dev Spaces 版本。 |
devfileRegistryURL | 内部 devfile registry 的公共 URL。 |
gatewayPhase | 指定网关部署的当前阶段。 |
message | 人类可读的消息,指示 OpenShift Dev Spaces 部署处于当前阶段的原因。 |
pluginRegistryURL | 内部插件 registry 的公共 URL。 |
postgresVersion | 使用的镜像的 PostgreSQL 版本。 |
reason | 简短的 CamelCase 消息,指示 OpenShift Dev Spaces 部署处于当前阶段的原因。 |
workspaceBaseDomain | 解析的工作区基域。这是 spec 中相同名称明确定义的属性的副本,或者在 spec 中未定义,且我们在 OpenShift 上运行,则自动解析了路由的 basedomain。 |