3.4.2. 使用自签名证书支持 Git 存储库部署 OpenShift Dev Spaces

您可以配置 OpenShift Dev Spaces,以支持使用自签名证书的 Git 提供程序中的操作。

先决条件

  • 具有 OpenShift 集群的管理权限的活跃 oc 会话。请参阅 OpenShift CLI 入门
  • Git 版本 2 或更高版本

流程

  1. 创建一个新 ConfigMap,其中包含 Git 服务器的详情:

    $ oc create configmap che-git-self-signed-cert \
      --from-file=ca.crt=<path_to_certificate> \  1
      --from-literal=githost=<host:port> -n openshift-devspaces  2
    1
    自签名证书的路径
    2
    Git 服务器上 HTTPS 连接的主机和端口(可选)。
    注意
    • 如果没有指定 githost,则给定的证书会用于所有 HTTPS 软件仓库。
    • 证书文件通常存储为 Base64 ASCII 文件,例如:.pem,.crt,.ca-bundle.另外,它们可以编码为二进制数据,例如 .cer。拥有证书文件的所有 secret 应该使用 Base64 ASCII 证书而不是二进制数据证书。
  2. 将所需的标签添加到 ConfigMap:

    $ oc label configmap che-git-self-signed-cert \
      app.kubernetes.io/part-of=che.eclipse.org -n openshift-devspaces
  3. 配置 OpenShift Dev Spaces 操作对象,将自签名证书用于 Git 存储库。请参阅 第 3.1.2 节 “使用 CLI 配置 CheCluster 自定义资源”

    spec:
      server:
        gitSelfSignedCert: true

验证步骤

  • 创建并启动新工作区。工作区使用的每一容器都挂载一个特殊的卷,其中包含带有自签名证书的文件。存储库的 .git/config 文件包含关于 http 部分中的 Git 服务器主机(its URL)和证书的路径的信息(请参阅 git-config的 Git 文档)。

    例 3.11. .git/config 文件示例

    [http "https://10.33.177.118:3000"]
    sslCAInfo = /etc/che/git/cert/ca.crt