3.3. 配置服务器组件


3.3.1. 将 Secret 或 ConfigMap 作为文件或环境变量挂载到 Red Hat OpenShift Dev Spaces 容器中

secret 是存储敏感数据的 OpenShift 对象,例如:

  • 用户名
  • 密码
  • 身份验证令牌

以加密的形式。

用户可以挂载包含敏感数据或 OpenShift Dev Spaces 管理容器中的配置 ConfigMap 的 OpenShift Secret,如下所示:

  • 一个文件
  • 环境变量

挂载过程使用标准 OpenShift 挂载机制,但它需要额外的注解和标记。

3.3.1.1. 将 Secret 或 ConfigMap 作为文件挂载到 OpenShift Dev Spaces 容器中

先决条件

  • 正在运行的 Red Hat OpenShift Dev Spaces 实例。

流程

  1. 在部署了 OpenShift Dev Spaces 的 OpenShift 项目中创建一个新的 OpenShift Secret 或 ConfigMap。要创建的对象标签必须与一组标签匹配:

    • app.kubernetes.io/part-of: che.eclipse.org
    • app.kubernetes.io/component: <DEPLOYMENT_NAME>-<OBJECT_KIND>
    • & lt;DEPLOYMENT_NAME > 对应于以下部署:

      • postgres
      • keycloak
      • devfile-registry
      • plugin-registry
      • devspaces

    • <OBJECT_KIND& gt; 是:

      • secret

        或者

      • configmap

例 3.4. Example:

apiVersion: v1
kind: Secret
metadata:
  name: custom-settings
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-secret
...
Copy to Clipboard

或者

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-settings
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-configmap
...
Copy to Clipboard

注解必须表示,给定的对象挂载为一个文件。

  1. 配置注解值:

    • Che.eclipse.org/mount-as: file - 要表示对象作为文件挂载。
    • Che.eclipse.org/mount-path: <TARGET_PATH > - 提供所需的挂载路径。

例 3.5. Example:

apiVersion: v1
kind: Secret
metadata:
  name: custom-data
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
  labels:
...
Copy to Clipboard

或者

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-data
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
  labels:
...
Copy to Clipboard

OpenShift 对象可以包含多个项目,其名称必须与挂载到容器中所需的文件名匹配。

例 3.6. Example:

apiVersion: v1
kind: Secret
metadata:
  name: custom-data
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-secret
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
data:
  ca.crt: <base64 encoded data content here>
Copy to Clipboard

或者

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-data
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-configmap
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
data:
  ca.crt: <data content here>
Copy to Clipboard

这会导致名为 ca.crt 的文件挂载到 OpenShift Dev Spaces 容器的 /data 路径上。

重要

要在 OpenShift Dev Spaces 容器中进行更改,请完全重新创建对象。

3.3.1.2. 将 Secret 或 ConfigMap 作为环境变量挂载到 OpenShift Dev Spaces 容器中

先决条件

  • 正在运行的 Red Hat OpenShift Dev Spaces 实例。

流程

  1. 在部署了 OpenShift Dev Spaces 的 OpenShift 项目中创建一个新的 OpenShift Secret 或 ConfigMap。要创建的对象标签必须与一组标签匹配:

    • app.kubernetes.io/part-of: che.eclipse.org
    • app.kubernetes.io/component: <DEPLOYMENT_NAME>-<OBJECT_KIND>
    • & lt;DEPLOYMENT_NAME > 对应于以下部署:

      • postgres
      • keycloak
      • devfile-registry
      • plugin-registry
      • devspaces

    • <OBJECT_KIND& gt; 是:

      • secret

        或者

      • configmap

例 3.7. Example:

apiVersion: v1
kind: Secret
metadata:
  name: custom-settings
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-secret
...
Copy to Clipboard

或者

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-settings
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-configmap
...
Copy to Clipboard

注解必须表示给定对象作为环境变量挂载。

  1. 配置注解值:

    • Che.eclipse.org/mount-as: env - 表示对象作为环境变量挂载
    • Che.eclipse.org/env-name : <FOO_ENV > - 提供环境变量名称,这是挂载对象键值所必需的

例 3.8. Example:

apiVersion: v1
kind: Secret
metadata:
  name: custom-settings
  annotations:
    che.eclipse.org/env-name: FOO_ENV
    che.eclipse.org/mount-as: env
  labels:
   ...
data:
  mykey: myvalue
Copy to Clipboard

或者

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-settings
  annotations:
    che.eclipse.org/env-name: FOO_ENV
    che.eclipse.org/mount-as: env
  labels:
   ...
data:
  mykey: myvalue
Copy to Clipboard

这会导致两个环境变量:

  • FOO_ENV
  • myvalue

被置备到 OpenShift Dev Spaces 容器中。

如果对象提供多个数据项,则必须为每个数据键提供环境变量名称,如下所示:

例 3.9. Example:

apiVersion: v1
kind: Secret
metadata:
  name: custom-settings
  annotations:
    che.eclipse.org/mount-as: env
    che.eclipse.org/mykey_env-name: FOO_ENV
    che.eclipse.org/otherkey_env-name: OTHER_ENV
  labels:
   ...
data:
  mykey: __<base64 encoded data content here>__
  otherkey: __<base64 encoded data content here>__
Copy to Clipboard

或者

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-settings
  annotations:
    che.eclipse.org/mount-as: env
    che.eclipse.org/mykey_env-name: FOO_ENV
    che.eclipse.org/otherkey_env-name: OTHER_ENV
  labels:
   ...
data:
  mykey: __<data content here>__
  otherkey: __<data content here>__
Copy to Clipboard

这会导致两个环境变量:

  • FOO_ENV
  • OTHER_ENV

被置备到 OpenShift Dev Spaces 容器中。

注意

OpenShift 对象中注解名称的最大长度为 63 个字符,其中 9 个字符作为前缀被保留,以 / 结尾。这充当可用于对象的密钥最大长度的限制。

重要

要在 OpenShift Dev Spaces 容器中进行更改,请完全重新创建对象。

3.3.2. Dev Spaces 服务器的高级配置选项

以下小节描述了 OpenShift Dev Spaces 服务器组件的高级部署和配置方法。

3.3.2.1. 了解 OpenShift Dev Spaces 服务器高级配置

以下小节描述了 OpenShift Dev Spaces 服务器组件高级配置方法。

高级配置需要:

  • 添加不是由 Operator 从标准 CheCluster 自定义资源字段自动生成环境变量。
  • 覆盖 Operator 从标准 CheCluster 自定义资源字段自动生成属性。

customCheProperties 字段是 CheCluster 自定义资源 服务器设置 的一部分,包含要应用到 OpenShift Dev Spaces 服务器组件的附加环境变量映射。

例 3.10. 覆盖工作区的默认内存限值

  • 配置 CheCluster 自定义资源。请参阅 第 3.1.2 节 “使用 CLI 配置 CheCluster 自定义资源”

    apiVersion: org.eclipse.che/v2
    kind: CheCluster
    spec:
      components:
        cheServer:
          extraProperties:
            CHE_LOGS_APPENDERS_IMPL: json
    Copy to Clipboard
注意

OpenShift Dev Spaces Operator 的早期版本有一个名为 custom 的 ConfigMap 来满足此角色。如果 OpenShift Dev Spaces Operator 找到名为 customconfigMap,它会将其包含的数据添加到 customCheProperties 字段中,重新部署 OpenShift Dev Spaces,并删除 自定义 configMap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat