10.2. 使用专用服务向 Quick 访问卡提供数据


在使用专用服务时,您可以执行以下操作:

  • 使用相同的服务向所有可配置的 Developer Hub 页面提供数据,或者为每个页面使用不同的服务。
  • 使用 red-hat-developer-hub-customization-provider 作为示例服务,它为 Home 和 Tech Radar 页面提供数据。red-hat-developer-hub-customization-provider 服务提供与默认 Developer Hub 数据相同的数据。您可以从 GitHub 分叉 red-hat-developer-hub-customization-provider 服务存储库,并根据需要使用自己的数据进行修改。
  • 在同一集群中部署 red-hat-developer-hub-customization-provider 服务和 Developer Hub Helm Chart。

先决条件

流程

要使用单独的服务提供 Home 页面数据,请完成以下步骤:

  1. 从 Red Hat OpenShift Container Platform Web 控制台中的 Developer 视角,点 +Add > Import from Git
  2. Git Repo URL 字段中输入 Git 存储库的 URL。

    要使用 red-hat-developer-hub-customization-provider 服务,请添加 red-hat-developer-hub-customization-provider 存储库的 URL 或包含您的自定义的存储库分叉。

  3. General 选项卡中,在 Name 字段中输入 red-hat-developer-hub-customization-provider,然后单击 Create
  4. Advanced Options 选项卡中,从 Target Port 复制值。

    注意

    Target Port 会自动生成 Kubernetes 或 OpenShift Container Platform 服务以与之通信。

  5. 将以下代码添加到 app-config-rhdh.yaml 文件中:

    proxy:
      endpoints:
        # Other Proxies
        # customize developer hub instance
        '/developer-hub':
          target: ${HOMEPAGE_DATA_URL}
          changeOrigin: true
          # Change to "false" in case of using self-hosted cluster with a self-signed certificate
          secure: true

    其中 HOMEPAGE_DATA_URL 定义为 http://<SERVICE_NAME>:8080,例如 http://rhdh-customization-provider:8080

    注意

    red-hat-developer-hub-customization-provider 服务默认包含 8080 端口。如果使用自定义端口,您可以使用 app-config-rhdh.yaml 文件中的 'PORT' 环境变量指定它。

  6. 将 URL 添加到 rhdh-secrets 或直接在自定义 ConfigMap 中替换它,替换 HOMEPAGE_DATA_URL
  7. 删除 Developer Hub pod,以确保正确载入新配置。

验证

  • 要查看该服务,请导航到 OpenShift Container Platform Web 控制台中的 Administrator 视角,然后点 Networking > Service

    注意

    您还可以在 Topology 视图中查看 Service Resources

  • 确保 Home 页面提供的 API URL 以 JSON 格式返回数据,如下例所示:

    [
      {
        "title": "Dropdown 1",
        "isExpanded": false,
        "links": [
          {
            "iconUrl": "https://imagehost.com/image.png",
            "label": "Dropdown 1 Item 1",
            "url": "https://example.com/"
          },
          {
            "iconUrl": "https://imagehost2.org/icon.png",
            "label": "Dropdown 1 Item 2",
            "url": ""
          }
        ]
      },
      {
        "title": "Dropdown 2",
        "isExpanded": true,
        "links": [
          {
            "iconUrl": "http://imagehost3.edu/img.jpg",
            "label": "Dropdown 2 Item 1",
            "url": "http://example.com"
          }
        ]
      }
    ]
    注意

    如果请求调用失败或未配置,Developer Hub 实例会返回默认的本地数据。

  • 如果镜像或图标没有加载,那么通过将您的镜像或图标主机 URL 添加到自定义 ConfigMap 中的内容安全策略(csp) img-src 来列出它们,如下所示:
kind: ConfigMap
apiVersion: v1
metadata:
  name: app-config-rhdh
data:
  app-config-rhdh.yaml: |
    app:
      title: Red Hat Developer Hub
    backend:
      csp:
        connect-src:
          - "'self'"
          - 'http:'
          - 'https:'
        img-src:
          - "'self'"
          - 'data:'
          - <image host url 1>
          - <image host url 2>
          - <image host url 3>
    # Other Configurations
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.