13.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 控制台中,点 +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 的值。

    注意

    目标端口 自动生成 Kubernetes 或 OpenShift Container Platform 服务以进行通信。

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

    proxy:
      endpoints:
        # Other Proxies
        # customize developer hub instance
        '/developer-hub':
          target: ${HOMEPAGE_DATA_URL} 
    1
    
          changeOrigin: true
          # Change to "false" in case of using self-hosted cluster with a self-signed certificate
          secure: true
    1 1 1 1
    http://<SERVICE_NAME>:8080,例如 http://rhdh-customization-provider:8080
    注意

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

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

验证

  • 要查看该服务,进入 OpenShift Container Platform Web 控制台并点 Networking > Service

    注意

    您还可以在 Topology 视图中查看 服务资源。

  • 确保 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.yaml
    data:
      app-config.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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部