第 3 章 配置 OpenShift Dev Spaces
本节介绍了 Red Hat OpenShift Dev Spaces 的配置选项。
3.1. 了解 CheCluster
自定义资源
OpenShift Dev Spaces 的默认部署由 Red Hat OpenShift Dev Spaces Operator 包含一个 CheCluster
自定义资源参数。
CheCluster
自定义资源是一个 Kubernetes 对象。您可以通过编辑 CheCluster
自定义资源 YAML 文件来配置它。此文件包含用于配置每个组件的部分: auth
、database
、服务器
、存储
。
Red Hat OpenShift Dev Spaces Operator 会将 CheCluster
自定义资源转换为可由 OpenShift Dev Spaces 安装的每个组件使用的配置映射。
OpenShift 平台将配置应用于每个组件,并创建必要的 Pod。当 OpenShift 检测到组件配置中更改时,它会相应地重启 Pod。
例 3.1. 配置 OpenShift Dev Spaces 服务器组件的主要属性
-
在
服务器组件
部分中应用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
会话。请参阅 OpenShift 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 实例。
-
具有目标 OpenShift 集群的管理权限的活跃
oc
会话。请参阅 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
Custom Resource 字段参考
本节论述了自定义 CheCluster
自定义资源的所有字段。
-
例 3.2 “最小的
CheCluster
自定义资源示例。” -
表 3.1 “
CheCluster
自定义资源服务器设置
,与 OpenShift Dev Spaces 服务器组件相关。” -
表 3.2 “
CheCluster
自定义资源数据库配置
设置与 OpenShift Dev Spaces 使用的数据库相关。” -
表 3.3 “与 OpenShift Dev Spaces 使用的身份验证相关的自定义资源定义。
”
-
表 3.4 “
CheCluster
自定义资源存储配置
设置与 OpenShift Dev Spaces 使用的持久性存储相关。” -
表 3.5 “
CheCluster
自定义资源k8s
配置设置,特定于 OpenShift 中的 OpenShift Dev Spaces 安装。” -
表 3.6 “
CheCluster
自定义资源指标
设置,与 OpenShift Dev Spaces 使用的 OpenShift Dev Spaces 指标集合相关。” -
表 3.7 “
CheCluster
自定义资源状态
定义 OpenShift Dev Spaces 安装的观察状态”
例 3.2. 最小的 CheCluster
自定义资源示例。
apiVersion: org.eclipse.che/v1 kind: CheCluster metadata: name: devspaces spec: auth: externalIdentityProvider: false database: externalDb: false server: selfSignedCert: false gitSelfSignedCert: false tlsSupport: true storage: pvcStrategy: 'common' pvcClaimSize: '1Gi'
属性 | 描述 |
---|---|
airGapContainerRegistryHostname | 用来从中拉取镜像的替代容器 registry 的可选主机名或 URL。这个值会覆盖 Che 部署中涉及的所有默认容器镜像中定义的容器 registry 主机名。这在受限环境中安装 Che 特别有用。 |
airGapContainerRegistryOrganization | 要从中拉取镜像的替代容器 registry 的可选存储库名称。这个值会覆盖在 Che 部署中涉及的所有默认容器镜像中定义的容器 registry 组织。这对在受限环境中安装 OpenShift Dev Spaces 特别有用。 |
allowUserDefinedWorkspaceNamespaces |
已弃用。此标志的值会被忽略。定义允许用户指定 Kubernetes 命名空间或与默认 OpenShift 项目不同的 OpenShift 项目。在未配置 OpenShift OAuth 的情况下,它不会将 RECOMMENDED 设置为 |
cheClusterRoles |
将分配给 Che ServiceAccount 的 ClusterRole 的逗号分隔列表。每个角色必须具有 |
cheDebug |
为 Che 服务器启用 debug 模式。默认值为 |
cheFlavor |
已弃用。此标志的值会被忽略。指定安装的一种变体。对于上游 Che 安装或 Red Hat OpenShift Dev Spaces(以前称为 Red Hat CodeReady Workspaces)安装的选项是 |
cheHost |
已安装的 Che 服务器的公共主机名。当省略值时,Operator 将自动设置的值。请参阅 |
cheHostTLSSecret |
包含用来保护已安装 Che 服务器的自定义主机名的证书或路由的 secret 名称。secret 必须具有 |
cheImage | 覆盖 Che 部署中使用的容器镜像。这不包括容器镜像标签。省略或为空,以使用 Operator 提供的默认容器镜像。 |
cheImagePullPolicy |
覆盖 Che 部署中使用的镜像拉取策略。默认值为 |
cheImageTag | 覆盖 Che 部署中使用的容器镜像标签。省略或为空,以使用 Operator 提供的默认镜像标签。 |
cheLogLevel |
Che 服务器的日志级别: |
cheServerIngress | Che 服务器入口自定义设置。 |
cheServerRoute | Che 服务器路由自定义设置。 |
cheWorkspaceClusterRole |
自定义集群角色绑定到 Che 工作区的用户。该角色必须具有 |
customCheProperties |
除了已从 |
dashboardCpuLimit | 覆盖仪表板部署中使用的 CPU 限值。内核中.(500M = .5 个内核)。默认为 500m。 |
dashboardCpuRequest | 覆盖仪表板部署中使用的 CPU 请求。内核中.(500M = .5 个内核)。默认为 100m。 |
dashboardImage | 覆盖仪表板部署中使用的容器镜像。这包括镜像标签。省略或为空,以使用 Operator 提供的默认容器镜像。 |
dashboardImagePullPolicy |
覆盖仪表板部署中使用的镜像拉取策略。默认值为 |
dashboardIngress | 已弃用。此标志的值会被忽略。仪表板入口自定义设置。 |
dashboardMemoryLimit | 覆盖仪表板部署中使用的内存限值。默认值为 256Mi。 |
dashboardMemoryRequest | 覆盖仪表板部署中使用的内存请求。默认值为 16Mi。 |
dashboardRoute | 已弃用。此标志的值会被忽略。仪表板路由自定义设置。 |
devfileRegistryCpuLimit | 覆盖 devfile registry 部署中使用的 CPU 限制。内核中.(500M = .5 个内核)。默认为 500m。 |
devfileRegistryCpuRequest | 覆盖 devfile registry 部署中使用的 CPU 请求。内核中.(500M = .5 个内核)。默认为 100m。 |
devfileRegistryImage | 覆盖 devfile registry 部署中使用的容器镜像。这包括镜像标签。省略或为空,以使用 Operator 提供的默认容器镜像。 |
devfileRegistryIngress | 已弃用。此标志的值会被忽略。devfile registry 入口自定义设置。 |
devfileRegistryMemoryLimit | 覆盖 devfile registry 部署中使用的内存限值。默认值为 256Mi。 |
devfileRegistryMemoryRequest | 覆盖 devfile registry 部署中使用的内存请求。默认值为 16Mi。 |
devfileRegistryPullPolicy |
覆盖 devfile registry 部署中使用的镜像拉取策略。默认值为 |
devfileRegistryRoute | 已弃用。此标志的值会被忽略。devfile registry 路由自定义设置。 |
devfileRegistryUrl |
弃用了 |
disableInternalClusterSVCNames | 已弃用。此标志的值会被忽略。禁用内部集群 SVC 名称用法,以便在组件间通信以加快流量并避免代理问题。 |
externalDevfileRegistries |
提供示例、就绪使用的 devfile registry 的外部 devfile registry。除了专用的 devfile registry 中(当 |
externalDevfileRegistry |
指示 Operator 是否在部署专用 devfile registry 服务器。默认情况下,启动一个专用的 devfile registry 服务器。当 |
externalPluginRegistry |
指示 Operator 是否部署专用的插件 registry 服务器。默认情况下启动专用的插件 registry 服务器。当 |
gitSelfSignedCert |
启用后,来自 |
nonProxyHosts |
将直接到达的主机列表,绕过代理。指定通配符域使用以下格式 |
pluginRegistryCpuLimit | 覆盖插件 registry 部署中使用的 CPU 限制。内核中.(500M = .5 个内核)。默认为 500m。 |
pluginRegistryCpuRequest | 覆盖插件 registry 部署中使用的 CPU 请求。内核中.(500M = .5 个内核)。默认为 100m。 |
pluginRegistryImage | 覆盖插件 registry 部署中使用的容器镜像。这包括镜像标签。省略或为空,以使用 Operator 提供的默认容器镜像。 |
pluginRegistryIngress | 已弃用。此标志的值会被忽略。插件 registry 入口自定义设置。 |
pluginRegistryMemoryLimit | 覆盖插件 registry 部署中使用的内存限值。默认值为 256Mi。 |
pluginRegistryMemoryRequest | 覆盖插件 registry 部署中使用的内存请求。默认值为 16Mi。 |
pluginRegistryPullPolicy |
覆盖插件 registry 部署中使用的镜像拉取策略。默认值为 |
pluginRegistryRoute | 已弃用。此标志的值会被忽略。插件 registry 路由自定义设置。 |
pluginRegistryUrl |
提供现成的 devfile 示例插件 registry 的公共 URL。仅在需要外部 devfile registry 时设置此项。请参阅 |
proxyPassword |
代理服务器的密码。仅在需要代理配置时使用。请参阅 |
proxyPort |
代理服务器的端口。仅在配置代理时使用。另请参阅 |
proxySecret |
包含代理服务器 |
proxyURL |
代理服务器的 URL(协议+主机名)。这会推动 Che 服务器和工作区容器中的 |
proxyUser |
代理服务器的用户名。仅在配置代理时使用。另请参阅 |
selfSignedCert | 已弃用。此标志的值会被忽略。Che Operator 将自动检测路由器证书是否自签名并将其传播到其他组件,如 Che 服务器。 |
serverCpuLimit | 覆盖 Che 服务器部署到内核中使用的 CPU 限值。(500M = .5 个内核)。默认为 1。 |
serverCpuRequest | 覆盖 Che 服务器部署到内核中使用的 CPU 请求。(500M = .5 个内核)。默认为 100m。 |
serverExposureStrategy |
已弃用。此标志的值会被忽略。设置服务器和工作区风险类型。可能的值有 |
serverMemoryLimit | 覆盖 Che 服务器部署中使用的内存限值。默认值为 1Gi。 |
serverMemoryRequest | 覆盖 Che 服务器部署中使用的内存请求。默认值为 512Mi。 |
serverTrustStoreConfigMapName |
带有公共证书的 ConfigMap 名称,添加到 Che 服务器的 Java 信任存储中。在添加 OpenShift OAuth 提供程序时,这通常需要此提供程序,该提供程序使用自签名证书签名的 HTTPS 端点。Che 服务器必须了解它的 CA 证书才能请求它。默认禁用此设置。Config Map 必须具有 |
singleHostGatewayConfigMapLabels | ConfigMap 中需要包括网关配置的标签。 |
singleHostGatewayConfigSidecarImage | 用于向网关提供配置的网关 sidecar 的镜像。省略或为空,以使用 Operator 提供的默认容器镜像。 |
singleHostGatewayImage | 单一主机模式中网关的镜像。省略或为空,以使用 Operator 提供的默认容器镜像。 |
tlsSupport | 已弃用。指示 Operator 在 TLS 模式中部署 Che。默认启用。禁用 TLS 有时会导致一些 Che 组件出现故障。 |
useInternalClusterSVCNames |
弃用了 |
workspaceNamespaceDefault |
定义在用户未覆盖时为用户创建工作区的 Kubernetes 默认命名空间。可以使用 < |
workspacePodNodeSelector | 限制可运行工作空间 pod 的节点的节点选择器。 |
workspacePodTolerations | pod 容限放置在工作区 pod 上,以限制运行工作区 pod。 |
workspacesDefaultPlugins | 应用于 Devworkspaces 的默认插件。 |
属性 | 描述 |
---|---|
chePostgresContainerResources | PostgreSQL 容器自定义设置 |
chePostgresDb |
Che 服务器用来连接到 DB 的 PostgreSQL 数据库名称。默认为 |
chePostgresHostName |
Che 服务器用来连接到的 PostgreSQL 数据库主机名。默认为 |
chePostgresPassword | Che 服务器用来连接到 DB 的 PostgreSQL 密码。当省略或留空时,它将被设置为自动生成的值。 |
chePostgresPort |
Che 服务器用来连接到的 PostgreSQL 数据库端口。默认为 5432。仅在使用外部数据库时覆盖此值。请参阅 |
chePostgresSecret |
包含 PostgreSQL |
chePostgresUser |
Che 服务器用来连接到 DB 的 PostgreSQL 用户。默认为 |
externalDb |
指示 Operator 是否在部署专用数据库。默认情况下,专用 PostgreSQL 数据库作为 Che 安装的一部分部署。当 |
postgresImage | 覆盖 PostgreSQL 数据库部署中使用的容器镜像。这包括镜像标签。省略或为空,以使用 Operator 提供的默认容器镜像。 |
postgresImagePullPolicy |
覆盖 PostgreSQL 数据库部署中使用的镜像拉取策略。默认值为 |
postgresVersion |
指明要使用的 PostgreSQL 版本镜像。允许的值有: |
pvcClaimSize |
数据库的持久性卷声明的大小。默认值为 |
属性 | 描述 |
---|---|
debug | 已弃用。此标志的值会被忽略。调试内部身份提供程序。 |
externalIdentityProvider |
已弃用。此标志的值会被忽略。指示 Operator 是否部署专用身份提供程序(Keycloak 或 RH SSO 实例)。指示 Operator 是否在部署专用身份提供程序(Keycloak 还是 RH-SSO 实例)。默认情况下,专用身份提供程序服务器作为 Che 安装的一部分部署。当 |
gatewayAuthenticationSidecarImage | 在启用 NativeUserMode 时负责身份验证的网关 sidecar。请参阅 oauth2-proxy 或 openshift/oauth-proxy。 |
gatewayAuthorizationSidecarImage | 在启用 NativeUserMode 时负责授权的网关 sidecar。请参阅 kube-rbac-proxy 或 openshift/kube-rbac-proxy |
gatewayHeaderRewriteSidecarImage | 已弃用。此标志的值会被忽略。Sidecar 功能现在在 Traefik 插件中实施。 |
identityProviderAdminUserName |
已弃用。此标志的值会被忽略。覆盖身份提供程序管理员用户的名称。默认为 |
identityProviderClientId |
已弃用。此标志的值会被忽略。用于 Che 的身份提供程序的名称,Keycloak 或 RH-SSO, |
identityProviderContainerResources | 已弃用。此标志的值会被忽略。身份提供程序容器自定义设置。 |
identityProviderImage | 已弃用。此标志的值会被忽略。覆盖身份提供程序、Keycloak 或 RH-SSO 部署中使用的容器镜像。这包括镜像标签。省略或为空,以使用 Operator 提供的默认容器镜像。 |
identityProviderImagePullPolicy |
已弃用。此标志的值会被忽略。覆盖身份提供程序、Cloak 或 RH-SSO、部署中使用的镜像拉取策略。默认值为 |
identityProviderIngress | 已弃用。此标志的值会被忽略。Ingress 自定义设置。 |
identityProviderPassword |
已弃用。此标志的值会被忽略。覆盖 Keycloak 管理员用户的密码。使用外部身份提供程序时覆盖此值。请参阅 |
identityProviderPostgresPassword |
已弃用。此标志的值会被忽略。身份提供程序(Keycloak 或 RH-SSO)的密码用于连接数据库。使用外部身份提供程序时覆盖此值。请参阅 |
identityProviderPostgresSecret |
已弃用。此标志的值会被忽略。包含身份提供程序、Cloak 或 RH-SSO |
identityProviderRealm |
已弃用。此标志的值会被忽略。用于 Che 的身份提供程序、Keycloak 或 RH-SSO 域的名称。使用外部身份提供程序时覆盖此值。请参阅 |
identityProviderRoute | 已弃用。此标志的值会被忽略。路由自定义设置. |
identityProviderSecret |
已弃用。此标志的值会被忽略。包含身份提供程序 |
identityProviderURL |
身份提供程序服务器的公共 URL(Keycloak / RH-SSO 服务器)。仅在需要使用外部身份提供程序时进行设置。请参阅 |
initialOpenShiftOAuthUser |
已弃用。此标志的值会被忽略。要使用 OpenShift OAuth 身份验证操作,请创建一个新的用户帐户,因为 kubeadmin 无法使用。如果值为 true,则将为 HTPasswd 身份提供程序创建一个新的 OpenShift OAuth 用户。如果值为 false 且用户已创建,则将被删除。如果值为空,则不执行任何操作。用户的凭证由 Operator 存储在 'openshift-config' 命名空间中的 |
nativeUserMode | 已弃用。此标志的值会被忽略。启用原生用户模式。目前仅适用于 OpenShift 和 DevWorkspace 引擎。原生用户模式直接使用 OpenShift OAuth 作为身份提供程序,而不使用 Keycloak。 |
oAuthClientName |
用于设置 OpenShift 一侧的身份联合的 OpenShift |
oAuthSecret |
OpenShift |
openShiftoAuth |
已弃用。此标志的值会被忽略。启用身份提供程序(Keycloak / RHSSO)与 OpenShift OAuth 集成。默认情况下,OpenShift 上的空值。这将允许用户通过 OpenShift 登录直接登录其 OpenShift 用户,并让他们的工作区在个人 OpenShift 命名空间下创建。警告: |
updateAdminPassword |
已弃用。此标志的值会被忽略。强制默认 |
属性 | 描述 |
---|---|
postgresPVCStorageClassName | 专用于 PostgreSQL 数据库的持久性卷声明的存储类。当省略或留空时,会使用默认存储类。 |
preCreateSubPaths |
指示 Che 服务器启动一个特殊的 Pod,以便在持久性卷中预先创建一个子路径。默认为 |
pvcClaimSize |
工作区的持久性卷声明的大小。默认值为 |
pvcJobsImage |
覆盖用于在持久性卷中创建子路径的容器镜像。这包括镜像标签。省略或为空,以使用 Operator 提供的默认容器镜像。另请参阅 |
pvcStrategy |
Che 服务器的持久性卷声明策略。这可以是:'common'(一个卷中的所有工作区 PVC)、 |
workspacePVCStorageClassName | 专用于 Che 工作区的持久性卷声明的存储类。当省略或留空时,会使用默认存储类。 |
属性 | 描述 |
---|---|
ingressClass |
将定义控制器将管理入口的 Ingress 类。默认为 |
ingressDomain | Kubernetes 集群的全局入口域。该 MUST 被显式指定:没有默认值。 |
ingressStrategy |
已弃用。此标志的值会被忽略。入口创建策略。选项包括: |
securityContextFsGroup |
Che Pod 和工作空间 Pod 容器在其中运行的 FSGroup。默认值为 |
securityContextRunAsUser |
Che Pod 和工作区 Pod 容器运行的 ID。默认值为 |
singleHostExposureType |
已弃用。此标志的值会被忽略。当 serverExposureStrategy 设置为 |
tlsSecretName |
启用 TLS 时用于设置入口 TLS 终止的 secret 名称。当字段为空字符串时,将使用默认集群证书。另请参阅 |
属性 | 描述 |
---|---|
enable |
启用 Che 服务器端点 |
属性 | 描述 |
---|---|
cheClusterRunning |
Che 安装的状态。可以在 |
cheURL | Che 服务器的公共 URL。 |
cheVersion | 当前已安装的 Che 版本。 |
dbProvisioned | 表示正确置备或未置备 PostgreSQL 实例。 |
devfileRegistryURL | devfile registry 的公共 URL。 |
devworkspaceStatus | Devworkspace 子系统的状态 |
gitHubOAuthProvisioned | 指明身份提供程序实例(Keycloak 或 RH-SSO)是否配置为与 GitHub OAuth 集成。 |
helpLink | 指向查找与当前 Operator 状态有关的一些 URL 的 URL。 |
keycloakProvisioned | 指明身份提供程序实例(Keycloak 或 RH-SSO)都使用 realm、client 和 user 进行了置备。 |
keycloakURL | 身份提供程序服务器、Keycloak 或 RH-SSO 的公共 URL。 |
message | 人类可读的消息显示了 Pod 在此条件中为什么的详细信息。 |
openShiftOAuthUserCredentialsSecret |
|
openShiftoAuthProvisioned | 指明身份提供程序实例(Keycloak 或 RH-SSO)是否配置为与 OpenShift OAuth 集成。 |
pluginRegistryURL | 插件 registry 的公共 URL。 |
reason | 简短的 CamelCase 消息,说明 Pod 处于此状态的详细信息。 |