Red Hat Developer Hub 的管理指南


Red Hat Developer Hub 1.0

Red Hat Customer Content Services

摘要

Red Hat Developer Hub 是一个用于构建开发人员门户的开发人员平台。本文档概述 Red Hat Developer Hub 并解释了如何安装产品。

前言

Red Hat Developer Hub 是一个企业级的开放开发人员平台,用于构建开发人员门户。此平台包含支持和建议的框架,有助于减少开发人员的欺诈和提高其生产力。

Red Hat Developer Hub 支持

如果您在执行本文档所述的某个流程时遇到问题,请访问红帽客户门户网站 http://access.redhat.com。您可以使用红帽客户门户网站搜索或浏览有关红帽产品的技术支持文章。您还可以为红帽全球支持服务(GSS)创建支持问题单。https://access.redhat.com/support/cases/#/case/new/get-support?caseCreate=true请选择 "Red Hat Developer Hub" 作为产品并选择适当的产品版本。

第 1 章 Red Hat Developer Hub 概述

Red Hat Developer Hub (Developer Hub)充当专为构建开发人员门户设计的开放开发人员平台。通过开发人员 Hub,工程团队可以访问统一平台,以简化开发流程,并提供各种工具和资源,以便有效地构建高质量的软件。

Developer Hub 的目标是通过以下方式解决与创建和持续开发人员门户相关的困难:

  • 中央化仪表板,用于查看所有可用的开发人员工具和资源,以提高生产力
  • 自助服务功能以及 guardrails,适用于符合企业级最佳实践的云原生应用程序开发
  • 对整个企业的所有开发人员进行适当的安全性和监管

Red Hat Developer Hub 通过提供开发人员体验来简化对内部批准的工具、编程语言以及自助管理门户网站中各种开发人员资源的决策。这种方法有助于加速应用程序开发和维护代码质量,同时促进创新。

第 2 章 使用 Helm Chart 安装 Red Hat Developer Hub

您可以使用 Red Hat OpenShift (OpenShift)中的 Helm Chart 来安装 Red Hat Developer Hub,它是一个灵活的安装方法。

Helm 是 OpenShift 上的软件包管理器,它提供以下功能:

  • 使用自定义 hook 应用常规应用程序更新
  • 管理复杂应用程序的安装
  • 提供可在公共和私有服务器上托管的图表
  • 支持回滚到以前的应用程序版本

Red Hat Developer Hub Helm Chart 在 Red Hat OpenShift Dedicated 和 OpenShift Container Platform (OCP)的 Helm 目录中提供。

先决条件

  • 您已使用 OpenShift Web 控制台登录 OCP。
  • 您已在项目中配置了适当的角色和权限来创建应用程序。

流程

  1. 在 OpenShift 中创建项目(如果不存在)。

    有关在 OpenShift 中创建项目的更多信息,请参阅 Red Hat OpenShift 文档

  2. 在 Red Hat OpenShift Web 控制台中切换到 Developer 模式。
  3. +Add
  4. Developer Catalog 面板中点 Helm Chart
  5. 在搜索栏中搜索 Developer Hub,然后选择 Red Hat Developer Hub 卡。
  6. Create
  7. 对于不想指定自定义 HOSTNAME 的用户,将 OpenShift 路由器主机(例如: apps.<clusterName>.com)复制到 Root SchemaglobalShorthand。仅与 DEFAULT upstream.backstage.appConfig 值和启用了 OCP Route 的 OCP Route 一起使用,并在需要时调整其他值。
  8. 或者,将 OpenShift 路由器主机(例如: apps.<clusterName>.com)复制到 global.clusterRouterBase,并根据需要调整其他值,如 global.clusterRouterBase: apps.example.com

    在前面的步骤中,会复制有关主机的信息,由 Developer Hub 后端访问。

    当自动生成 OCP 路由时,路由的主机值会被推断出来,相同的主机信息会发送到 Developer Hub。另外,如果自定义域中存在使用值手动设置主机,则自定义主机将具有优先权。

  9. Create 并等待数据库和 Red Hat Developer Hub 启动。
  10. Open URL 选项开始使用 Red Hat Developer Hub 平台。

注意

如果您的 developer-hub pod 一直在 CrashLoopBackOff 中,您会看到以下日志:

Loaded config from app-config-from-configmap.yaml, env
...
2023-07-24T19:44:46.223Z auth info Configuring "database" as KeyStore provider type=plugin
Backend failed to start up Error: Missing required config value at 'backend.database.client'
Copy to Clipboard Toggle word wrap

然后,验证配置文件。这是因为 RHDH 容器无法访问配置文件。

第 3 章 air-gapped 环境

air-gapped 环境(也称为 air-gapped 网络或隔离的网络)通过隔离系统或网络来确保安全性。建立这个隔离以防止 air-gapped 系统和外部源间的未授权访问、数据传输或通信。

您可以在 air-gapped 环境中安装 Red Hat Developer Hub,以确保安全性并满足特定的法规要求。

3.1. 在 air-gapped 环境中安装 Red Hat Developer Hub

要在 air-gapped 环境中安装 Developer Hub,您必须有权访问 registry.redhat.io 和 air-gapped 环境的 registry。

先决条件

  • 已安装 Openshift Container Platform (OCP) 4.10 或更高版本。
  • 您可以访问 registry.redhat.io
  • 您可以访问集群的 OpenShift 镜像 registry。如需有关公开 OpenShift 镜像 registry 的更多信息,请参阅 OpenShift 文档中的 公开 registry
  • 您已在工作站上安装了 oc 命令行工具。
  • 您已在工作站上安装了 podman 命令行工具。
  • 您在 Red Hat Developer Portal 中有一个帐户。

流程

  1. 使用 oc 登录 OCP:

    oc login -u <user> -p <password> https://api.<HOSTNAME>:6443
    Copy to Clipboard Toggle word wrap
  2. 使用 podman 登录 OCP 镜像 registry:

    podman login -u kubeadmin -p $(oc whoami -t) default-route-openshift-image-registry.<HOSTNAME>
    Copy to Clipboard Toggle word wrap
    注意

    您可以使用以下命令获取 OpenShift 镜像 registry 的完整主机名,并使用命令中的主机名登录:

    REGISTRY_HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
    
    podman login -u kubeadmin -p $(oc whoami -t) $REGISTRY_HOST
    Copy to Clipboard Toggle word wrap
  3. 使用以下命令,登录到 podman 中的 registry.redhat.io

    podman login registry.redhat.io
    Copy to Clipboard Toggle word wrap

    有关 registry 身份验证的更多信息,请参阅 Red Hat Container Registry 身份验证

  4. 将 Developer Hub 和 PostgreSQL 镜像从 Red Hat Image registry 拉取到您的工作站:

    podman pull <DEVELOPERHUBIMAGE>
    podman pull registry.redhat.io/rhel9/postgresql-15:latest
    Copy to Clipboard Toggle word wrap
  5. 将这两个镜像推送到内部 OCP 注册表。

    有关将镜像直接推送到 OCP registry 的更多信息,请参阅 如何直接将镜像推送到 OpenShift 4 registry 中

    podman push --remove-signatures registry.redhat.io/rhel9/postgresql-15:latest default-route-openshift-image-registry.<hostname>/<yourProject>/postgresql-15:latest
    Copy to Clipboard Toggle word wrap
    提示

    如果发生 x509 错误,请确保在您的系统上安装用于 OpenShift 路由的 CA 证书。

    另外,您还可以将 --tls-verify=false 附加到 podman push 命令中,请注意使用这个方法。

  6. 使用以下命令验证两个镜像是否存在于内部 OCP registry 中:

    oc get imagestream -n <projectName>
    Copy to Clipboard Toggle word wrap
  7. 使用以下命令为这两个镜像启用本地镜像查找:

    oc set image-lookup postgresql-15
    oc set image-lookup  rhdh-hub-rhel9
    Copy to Clipboard Toggle word wrap
  8. 进入 YAML 视图,并使用以下值更新 backstagepostgresqlimage 部分:

    Developer Hub 镜像的值示例

    upstream:
      backstage:
        image:
          registry: ""
          repository: rhdh-hub-rhel9
          tag: latest
    Copy to Clipboard Toggle word wrap

    PostgreSQL 镜像的值示例

    upstream:
      postgresql:
        image:
          registry: ""
          repository: postgresql-15
          tag: latest
    Copy to Clipboard Toggle word wrap

  9. 使用 Helm Chart 安装 Red Hat Developer Hub。有关安装 Developer Hub 的更多信息,请参阅 第 2 章 使用 Helm Chart 安装 Red Hat Developer Hub

基于角色的访问控制是一种安全范例,限制对授权用户访问。此功能包括定义具有特定权限的角色,然后将这些角色分配给用户。

Red Hat Developer Hub 使用 RBAC 来提高平台中的权限系统。Developer Hub 中的 RBAC 功能引入了一个管理员角色,并通过促进高效的访问控制来利用组织结构,包括团队、组和用户。

4.1. 权限策略配置

在 Red Hat Developer Hub 中配置权限策略有两种方法,包括:

  • 配置权限策略管理员
  • 配置外部文件中定义的权限策略

4.1.1. 配置权限策略管理员

Developer Hub 中用户和组的权限策略由权限策略管理员管理。只有权限策略管理员可以访问基于角色的访问控制 REST API。

配置策略管理员的目的是启用特定、受限制的经过身份验证的用户来访问 RBAC REST API。权限策略在 policy.csv 文件中定义,该文件在 app-config-rhdh ConfigMap 中引用。OpenShift 平台管理员或集群管理员可以执行此任务,可访问部署 Red Hat Developer Hub 的命名空间。

您可以在 app-config.yaml 文件中设置权限策略管理员的凭证,如下所示:

permission:
  enabled: true
  rbac:
    admin:
      users:
        - name: user:default/joeuser
Copy to Clipboard Toggle word wrap

4.1.2. 配置外部文件中定义的权限策略

在开始 Red Hat Developer Hub 前,您可以遵循这种方法来配置权限策略。如果外部文件中定义了权限策略,您可以在 Developer Hub 中导入同一文件。权限策略需要以 Casbin 规则格式定义。有关 Casbin 规则格式的详情,请参考 Casbin 规则 的基本信息。

以下是权限策略配置示例:

p, role:default/guests, catalog-entity, read, deny

p, role:default/guests, catalog.entity.create, create, deny

g, user:default/<USER_TO_ROLE>, role:default/guests

如果定义的权限不包含与其关联的操作,请添加 use 作为策略。请参见以下示例:

p, role:default/guests, kubernetes.proxy, use, deny

您可以在 app-config.yaml 文件中定义 policy.csv 文件路径:

permission:
  enabled: true
  rbac:
    policies-csv-file: /some/path/rbac-policy.csv
Copy to Clipboard Toggle word wrap

当使用 Helm Chart 部署 Red Hat Developer Hub 时,您必须通过将 policy.csv 文件挂载到 Developer Hub Helm Chart 来定义 policy.csv 文件。

您可以通过创建一个 configMap 并挂载它,将 policy.csv 文件添加到 Developer Hub Helm Chart 中。

先决条件

流程

  1. 在 Red Hat OpenShift 中,创建一个 ConfigMap 来保存策略,如下例所示:

    ConfigMap 示例

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: rbac-policy
      namespace: rhdh
    data:
      rbac-policy.csv: |
        p, role:default/guests, catalog-entity, read, allow
        p, role:default/guests, catalog.entity.create, create, allow
    
        g, user:default/<YOUR_USER>, role:default/guests
    Copy to Clipboard Toggle word wrap

  2. 在 Developer Hub Helm Chart 中,进入 Root Schema → Backstage chart schema → Backstage parameters → Backstage container additional volume mount
  3. 选择 Add Backstage 容器附加卷挂载 并添加以下值:

    • mountPath:opt/app-root/src/rbac
    • 名称rbac-policy
  4. 将 RBAC 策略添加到 Developer Hub Helm Chart 中的 Backstage 容器额外卷中

    • 名称rbac-policy
    • configMap

      • DefaultMode:420
      • 名称rbac-policy
  5. 更新 app-config.yaml 文件中的策略路径,如下所示:

    app-config.yaml 文件示例

    permission:
      enabled: true
      rbac:
        policies-csv-file: ./rbac/rbac-policy.csv
    Copy to Clipboard Toggle word wrap

4.1.3. Red Hat Developer Hub 中的权限策略

Red Hat Developer Hub 中的权限策略是一组规则,用于控制对资源或功能的访问。这些策略声明根据其角色授予用户的授权级别。实施权限策略,以维护给定环境中的安全性和保密性。

Developer Hub 支持以下权限策略:

目录权限
Expand
名称资源类型policy描述

catalog.entity.read

catalog-entity

读取

允许用户或角色从目录中读取

catalog.entity.create

 

create

允许用户或团队创建目录实体,包括在目录中注册现有组件

catalog.entity.refresh

catalog-entity

update

允许用户或组从目录中刷新一个或多个实体

catalog.entity.delete

catalog-entity

delete

允许用户或组从目录中删除一个或多个实体

catalog.location.read

 

读取

允许用户或组从目录中读取一个或多个位置

catalog.location.create

 

create

允许用户或组在目录中创建位置

catalog.location.delete

 

delete

允许用户或组从目录中删除位置

Scaffolder 权限
Expand
名称资源类型policy描述

scaffolder.action.execute

scaffolder-action

 

允许从模板执行操作

scaffolder.template.parameter.read

scaffolder-template

读取

允许用户或组从模板读取一个或多个参数

scaffolder.template.step.read

scaffolder-template

读取

允许用户或角色从模板读取一个或多个步骤

RBAC 权限
Expand
名称资源类型policy描述

policy.entity.read

policy-entity

读取

允许用户或角色读取权限策略和角色

policy.entity.create

policy-entity

create

允许用户或组创建一个或多个权限策略和角色

policy.entity.update

policy-entity

update

允许用户或组更新一个或多个权限策略和角色

policy.entity.delete

policy-entity

delete

允许用户或组删除一个或多个权限策略和角色

Kubernetes 权限
Expand
名称资源类型policy描述

kubernetes.proxy

  

允许用户或组访问代理端点

4.2. 基于角色的访问控制(RBAC) REST API

Red Hat Developer Hub 提供 RBAC REST API,可用于管理 Developer Hub 中的权限和角色。此 API 允许您促进和自动化 Developer Hub 权限策略和角色的维护。

使用 RBAC REST API,您可以执行以下操作:

  • 检索有关所有权限策略或特定权限策略或角色的信息
  • 创建、更新或删除权限策略或角色
  • 检索有关静态插件的权限策略信息

RBAC REST API 需要以下组件:

授权

RBAC REST API 需要允许的用户角色的 Bearer 令牌授权。出于开发目的,您可以在浏览器中访问 Web 控制台。当您在网络请求列表中刷新令牌请求时,您可以在响应 JSON 中查找令牌。

Authorization: Bearer $token

例如,在 Developer Hub 的 Home 页面中,您可以进入 Network 选项卡并搜索 query?term= network 调用。或者,您可以进入 Catalog 页面,再选择带有 entity-facets 的任何网络调用来获取 Bearer 令牌。

HTTP 方法

RBAC REST API 支持以下 API 请求的 HTTP 方法:

  • GET: 从指定资源端点检索指定信息
  • POST :创建或更新资源
  • PUT :更新资源
  • DELETE :删除资源

基本 URL

RBAC REST API 请求的基本 URL 是 http://SERVER:PORT/api/permission/policies,如 http://localhost:7007/api/permission/policies。

Endpoints

RBAC REST API 端点,如 /api/permission/policies/[kind]/[namespace]/[name] (用于指定 kind、namespace 和 username)是附加到基本 URL 中的 URI,以访问对应的资源。

/api/permission/policies/[kind]/[namespace]/[name] 端点的请求 URL 示例:

http://localhost:7007/api/permission/policies/user/default/johndoe

注意

如果至少有一个权限分配给 user:default/johndoe,则前面提到的示例请求 URL 会返回带有有效授权令牌的 GET 响应中的结果。但是,如果只为角色分配权限,则示例请求 URL 不会返回输出。

请求数据

RBAC REST API 中的 HTTP POST 请求可能需要带有数据的 JSON 请求正文以及请求。

http://localhost:7007/api/permission/policiesPOST 请求 URL 和 JSON 请求正文数据示例:

{
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "delete",
    "effect": "allow"
}
Copy to Clipboard Toggle word wrap

HTTP 状态代码

RBAC REST API 支持以下 HTTP 状态代码来返回响应:

  • 200 OK :请求成功。
  • 201 created :请求成功创建新资源。
  • 204 no Content: 请求成功,但响应有效负载中没有发送额外内容。
  • 400 bad Request: input error with the request
  • 401 未授权:缺少所请求资源的有效身份验证
  • 403 forbidden:拒绝授权请求
  • 404 not Found:无法找到请求的资源
  • 409 冲突:请求与当前状态和目标资源冲突

RBAC REST API 可让您在不使用用户界面的情况下与 Developer Hub 中的权限策略和角色交互。您可以使用任何 REST 客户端或 curl 实用程序发送 RBAC REST API 请求。

先决条件

流程

  1. 识别您要发送请求的相关 API 端点,如 POST /api/permission/policies。根据您的用例调整任何请求详情。

    对于 REST 客户端

    对于 curl 工具

    • -x: 设置为 POST
    • - h :设置以下标头:

      content-type: application/json

      Authorization: Bearer $token

      $token 是浏览器中从 Web 控制台请求的令牌。

    • URL :输入以下 RBAC REST API 基础 URL 端点,如 http://localhost:7007/api/permission/policies
    • -d :添加请求 JSON 正文

    请求示例

    curl -X POST "http://localhost:7007/api/permission/policies" -d '{"entityReference":"role:default/test", "permission": "catalog-entity", "policy": "read", "effect":"allow"}' -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v

  2. 执行请求并检查响应。

4.2.2. 支持的 RBAC REST API 端点

RBAC REST API 提供了以下端点,以管理 Developer Hub 中的权限策略和角色,并检索有关策略和角色的信息。

4.2.2.1. 权限策略

RBAC REST API 支持以下端点来管理 Red Hat Developer Hub 中的权限策略。

[GET] /api/permission/policies

返回所有用户的权限策略列表。

响应示例(JSON)

[
  {
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "read",
    "effect": "allow"
  },
  {
    "entityReference": "role:default/test",
    "permission": "catalog.entity.create",
    "policy": "use",
    "effect": "allow"
  },
]
Copy to Clipboard Toggle word wrap

[GET] /api/permission/policies/{kind}/{namespace}/{name}

返回与指定实体引用相关的权限策略。

Expand
表 4.1. 请求参数
名称描述类型要求

kind

实体的类型

字符串

必填

namespace

实体的命名空间

字符串

必填

name

与实体相关的用户名

字符串

必填

响应示例(JSON)

[
  {
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "read",
    "effect": "allow"
  },
  {
    "entityReference": "role:default/test",
    "permission": "catalog.entity.create",
    "policy": "use",
    "effect": "allow"
  }
]
Copy to Clipboard Toggle word wrap

[POST] /api/permission/policies

为指定实体创建权限策略。

Expand
表 4.2. 请求参数
名称描述类型要求

entityReference

包括命名空间和名称的实体的引用值

字符串

必填

权限

权限类型

字符串

必填

policy

权限的读取或写入策略

字符串

必填

effect

指明允许策略

字符串

必填

请求正文(JSON)示例

{
    "entityReference": "role:default/test",
    "permission": "catalog-entity",
    "policy": "read",
    "effect": "allow"
}
Copy to Clipboard Toggle word wrap

响应示例

201 Created
Copy to Clipboard Toggle word wrap

[PUT] /api/permission/policies/{kind}/{namespace}/{name}

更新指定实体的权限策略。

请求参数

请求正文包含 oldPolicynewPolicy 对象:

Expand
Name描述类型要求

权限

权限类型

字符串

必填

policy

权限的读取或写入策略

字符串

必填

effect

指明允许策略

字符串

必填

请求正文(JSON)示例

{
    "oldPolicy": {
        "permission": "catalog-entity",
        "policy": "read",
        "effect": "deny"
    },
    "newPolicy": {
        "permission": "policy-entity",
        "policy": "read",
        "effect": "allow"
    }
}
Copy to Clipboard Toggle word wrap

响应示例

200
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/policies/{kind}/{namespace}/{name}?permission={value1}&policy={value2}&effect={value3}

删除添加到指定实体的权限策略。

Expand
表 4.3. 请求参数
名称描述类型要求

kind

实体的类型

字符串

必填

namespace

实体的命名空间

字符串

必填

name

与实体相关的用户名

字符串

必填

权限

权限类型

字符串

必填

policy

权限的读取或写入策略

字符串

必填

effect

指明允许策略

字符串

必填

响应示例

204 No Content
Copy to Clipboard Toggle word wrap

[GET] /api/permission/plugins/policies

返回所有静态插件的权限策略。

响应示例(JSON)

[
  {
    "pluginId": "catalog",
      "policies": [
        {
          "permission": "catalog-entity",
          "policy": "read"
        },
        {
          "permission": "catalog.entity.create",
          "policy": "create"
        },
        {
          "permission": "catalog-entity",
          "policy": "delete"
        },
        {
          "permission": "catalog-entity",
          "policy": "update"
        },
        {
          "permission": "catalog.location.read",
          "policy": "read"
        },
        {
          "permission": "catalog.location.create",
          "policy": "create"
        },
        {
          "permission": "catalog.location.delete",
          "policy": "delete"
        }
      ]
    },
  ...
]
Copy to Clipboard Toggle word wrap

4.2.2.2. 角色

RBAC REST API 支持以下端点来管理 Red Hat Developer Hub 中的角色。

[GET] /api/permission/roles

返回 Developer Hub 中的所有角色。

响应示例(JSON)

[
  {
    "memberReferences": ["user:default/pataknight"],
    "name": "role:default/guests"
  },
  {
    "memberReferences": [
      "group:default/janus-authors",
      "user:default/matt"
    ],
    "name": "role:default/rbac_admin"
  }
]
Copy to Clipboard Toggle word wrap

[GET] /api/permission/roles/{kind}/{namespace}/{name}

在 Developer Hub 中创建角色。

Expand
表 4.4. 请求参数
名称描述类型要求

正文(body)

memberReferencesnamespace,并 命名 要创建的新角色。

请求正文

必填

请求正文(JSON)示例

{
  "memberReferences": ["group:default/test"],
  "name": "role:default/test_admin"
}
Copy to Clipboard Toggle word wrap

响应示例

201 Created
Copy to Clipboard Toggle word wrap

[PUT] /api/permission/roles/{kind}/{namespace}/{name}

为 Developer Hub中的角色 更新 memberReferences、类型、命名空间或 名称

请求参数

请求正文包含 oldRolenewRole 对象:

Expand
Name描述类型要求

正文(body)

memberReferencesnamespace,并 命名 要创建的新角色。

请求正文

必填

请求正文(JSON)示例

{
  "oldRole": {
    "memberReferences": ["group:default/test"],
    "name": "role:default/test_admin"
  },
  "newRole": {
    "memberReferences": ["group:default/test", "user:default/test2"],
    "name": "role:default/test_admin"
  }
}
Copy to Clipboard Toggle word wrap

响应示例

200 OK
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/roles/{kind}/{namespace}/{name}?memberReferences=<VALUE>

从 Developer Hub 中的角色中删除指定的用户或组。

Expand
表 4.5. 请求参数
名称描述类型要求

kind

实体的类型

字符串

必填

namespace

实体的命名空间

字符串

必填

name

与实体相关的用户名

字符串

必填

memberReferences

关联的组信息

字符串

必填

响应示例

204
Copy to Clipboard Toggle word wrap

[DELETE] /api/permission/roles/{kind}/{namespace}/{name}

从 Developer Hub 中删除指定的角色。

Expand
表 4.6. 请求参数
名称描述类型要求

kind

实体的类型

字符串

必填

namespace

实体的命名空间

字符串

必填

name

与实体相关的用户名

字符串

必填

响应示例

204
Copy to Clipboard Toggle word wrap

第 5 章 安装动态插件

动态插件支持基于 backend 插件管理器软件包,这是为动态插件软件包扫描配置的根目录( app 配置中的dynamicPlugins.rootDirectory)的服务,并动态加载它们。

5.1. Helm 部署

要部署 Red Hat Developer Hub (RHDH)实例,您可以使用 Helm Chart,它是一个灵活的安装方法。

您可以将动态插件加载到 Developer Hub 实例中,而无需重新编译代码或重建容器。

要安装动态插件,您可以在 Helm Chart 中使用以下 global.dynamic 参数:

  • plugins :此字段包含为安装提供的动态插件列表。默认情况下,它是一个空列表。软件包可以指定为本地相对路径(从 ./ 开始)到动态插件的文件夹,也可以指定为 NPM 存储库中的软件包规格。
  • 包括 :此字段包含使用相同语法的 YAML 文件简介。这些文件中的 插件列表将包含在主 helm 值中的 plugins 列表中,并可能被覆盖。默认配置包括 dynamic-plugins.default.yaml 文件,其中包含 Developer Hub 中包含的所有动态插件,无论是默认启用还是禁用。

5.2. 使用 Helm Chart 安装动态插件

您可以通过在 Helm Chart 中的 global.dynamic.plugins 列表中附加条目,在 RHDH 中包含动态插件。

每个条目都必须包含以下字段:

  • 软件包 :要安装的动态插件软件包的软件包规格(可以从本地路径或 NPM 存储库)
  • 完整性 :(本地软件包是可选的)特定软件包的 <alg>-<digest> 形式的完整性校验和。支持的算法包括 sha256SHA384sha512
  • pluginConfig :特定于插件的 app-config yaml 片段。如需了解更多详细信息,请参阅插件配置。
  • disabled :如果设为 true,则禁用动态插件。默认值: false

5.2.1. 例子

示例 1:从本地和远程源启用两个插件,需要一个特定的 app-config

global:
  dynamic:
    plugins:
      - package: <a local package-spec used by npm pack>
      - package: <a remote package-spec used by npm pack>
        integrity: sha512-<some hash>
        pluginConfig: ...
Copy to Clipboard Toggle word wrap

示例 2:从包含的文件禁用插件

global:
  dynamic:
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - package: <some imported plugins listed in dynamic-plugins.default.yaml>
        disabled: true
Copy to Clipboard Toggle word wrap

示例 3:从包含的文件启用插件

global:
  dynamic:
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - package: <some imported plugins listed in dynamic-plugins.custom.yaml>
        disabled: false
Copy to Clipboard Toggle word wrap

5.3. Red Hat Developer Hub 中预加载的动态插件

Red Hat Developer Hub (Developer Hub)会预先加载特定的动态插件。由于需要强制配置,大多数动态插件都默认禁用。

有关此 RHDH 发行版本中包含的动态插件的完整列表,请查看 动态插件列表 表。

在应用程序启动时,对于默认禁用的每个插件,Developer Hub pod 日志中的 install-dynamic-plugins init 容器 会显示类似如下的行:

======= Skipping disabled dynamic plugin ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
Copy to Clipboard Toggle word wrap

要激活此插件,只需添加名称相同的软件包,并调整 Helm Chart 值中的 disabled 字段,如下所示:

global:
  dynamic:
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
        disabled: false
Copy to Clipboard Toggle word wrap
注意

插件的默认配置从 dynamic-plugins.default.yaml 文件中提取,但您可以使用 pluginConfig 条目来覆盖此默认配置。

5.4. 动态插件的基本配置

有些动态插件需要设置环境变量。如果没有设置强制环境变量,并且插件已启用,则应用程序在启动时可能会失败。

每个插件的必要环境变量都列在 动态插件列表 表中。

注意

ZiB-bomb 检测在安装一些包含大型文件的动态插件时,如果安装脚本认为软件包存档成为 Zib-Bomb,安装会失败。

要增加软件包存档中文件的最大允许大小,您可以从默认的 20000000 字节增加部署 install-dynamic-plugins initContainerMAX_ENTRY_SIZE 环境值。

5.5. Red Hat Developer Hub 中包含的动态插件

重要

红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能的更多信息,请参阅 技术预览功能范围

有关红帽如何提供对捆绑社区动态插件的支持的更多详细信息,请参阅 Red Hat Developer Support Policy 页面。

有 47 插件。

Expand
表 5.1. 动态插件支持列表
Name角色plugin描述Version支持等级路径所需的变量Default(默认)

3scale

后端

@janus-idp/backstage-plugin-3scale-backend

3scale Backstage 供应商插件将 3scale 内容同步到 Backstage 目录。

1.3.6

红帽技术预览

./dynamic-plugins/dist/janus-idp-backstage-plugin-3scale-backend-dynamic

3SCALE_BASE_URL

3SCALE_ACCESS_TOKEN

Disabled

AAP

后端

@janus-idp/backstage-plugin-aap-backend

 

1.4.5

红帽技术预览

./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic

AAP_BASE_URL

AP_AUTH_TOKEN

Disabled

ACR

frontend

@janus-idp/backstage-plugin-acr

 

1.2.4

红帽技术预览

./dynamic-plugins/dist/janus-idp-backstage-plugin-acr

 

Disabled

分析供应商分割

frontend

@janus-idp/backstage-plugin-analytics-provider-segment

此插件为 Segment 提供 Backstage Analytics API 的实现。安装和配置后,分析事件将在用户导航和使用您的 Backstage 实例时发送到 Segment。

1.2.0

Production

./dynamic-plugins/dist/janus-idp-backstage-plugin-analytics-provider-segment

SEGMENT_WRITE_KEY

SEGMENT_MASK_IP

SEGMENT_TEST_MODE

Disabled

Argo CD

frontend

@roadiehq/backstage-plugin-argo-cd

Backstage 插件来查看和与 Argo CD 交互。

2.3.5

Production

./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd

 

Disabled

Argo CD

后端

@roadiehq/backstage-plugin-argo-cd-backend

Backstage 插件 Argo CD 后端

2.11.3

Production

./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd-backend-dynamic

ARGOCD_USERNAME

ARGOCD_PASSWORD

ARGOCD_INSTANCE1_URL

ARGOCD_AUTH_TOKEN

ARGOCD_INSTANCE2_URL

ARGOCD_AUTH_TOKEN2

Disabled

Argo CD

后端

@roadiehq/scaffolder-backend-argocd

 

1.1.17

社区支持

./dynamic-plugins/dist/roadiehq-scaffolder-backend-argocd-dynamic

ARGOCD_USERNAME

ARGOCD_PASSWORD

ARGOCD_INSTANCE1_URL

ARGOCD_AUTH_TOKEN

ARGOCD_INSTANCE2_URL

ARGOCD_AUTH_TOKEN2

Disabled

Azure Devops

frontend

@backstage/plugin-azure-devops

 

0.3.7

社区支持

./dynamic-plugins/dist/backstage-plugin-azure-devops

 

Disabled

Azure Devops

后端

@backstage/plugin-azure-devops-backend

Azure DevOps 后端插件,其中包含检索构建、拉取请求等的 API,供 Azure DevOps 前端插件使用。

0.4.3

技术预览

./dynamic-plugins/dist/backstage-plugin-azure-devops-backend-dynamic

AZURE_TOKEN

AZURE_ORG

Disabled

Datadog

frontend

@roadiehq/backstage-plugin-datadog

将 Datadog 图形和仪表板嵌入到 Backstage。

2.2.0

社区支持

./dynamic-plugins/dist/roadiehq-backstage-plugin-datadog

 

Disabled

Dynatrace

frontend

@backstage/plugin-dynatrace

集成到 Dynatrace 的 Backstage 插件。

7.0.5

社区支持

./dynamic-plugins/dist/backstage-plugin-dynatrace

 

Disabled

GitHub

后端

@backstage/plugin-catalog-backend-module-github

有助于集成到 Github 的 Backstage 目录后端模块

0.4.4

社区支持

./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic

GITHUB_ORG

Disabled

GitHub

后端

@backstage/plugin-catalog-backend-module-github-org

catalog 插件的 github-org 后端模块。

0.1.0

社区支持

./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic

GITHUB_ORG_URL

Disabled

GitHub

frontend

@backstage/plugin-github-actions

集成到 GitHub Actions 的 Backstage 插件

0.6.6

社区支持

./dynamic-plugins/dist/backstage-plugin-github-actions

 

Disabled

GitHub

frontend

@backstage/plugin-github-issues

集成到 GitHub 问题的 Backstage 插件

0.2.14

社区支持

./dynamic-plugins/dist/backstage-plugin-github-issues

 

Disabled

GitHub

frontend

@roadiehq/backstage-plugin-github-insights

Backstage 插件,以提供 Readmes、顶级 Contributors 和其他小部件。

2.3.21

社区支持

./dynamic-plugins/dist/roadiehq-backstage-plugin-github-insights

 

Disabled

GitHub

frontend

@roadiehq/backstage-plugin-github-pull-requests

Backstage 插件来查看和与 GitHub 拉取请求交互。

2.5.18

社区支持

./dynamic-plugins/dist/roadiehq-backstage-plugin-github-pull-requests

 

Disabled

GitHub

frontend

@roadiehq/backstage-plugin-security-insights

Backstage 插件,为 GitHub 存储库添加安全见解。

2.3.9

社区支持

./dynamic-plugins/dist/roadiehq-backstage-plugin-security-insights

 

Disabled

GitLab

后端

@backstage/plugin-catalog-backend-module-gitlab

从 GitLab 实例中提取存储库。

0.3.3

社区支持

./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-dynamic

 

Disabled

GitLab

后端

@backstage/plugin-scaffolder-backend-module-gitlab

可让您与 gitlab 交互的 scaffolder 后端的模块

0.2.9

社区支持

./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gitlab-dynamic

 

Disabled

GitLab

frontend

@immobiliarelabs/backstage-plugin-gitlab

Backstage 插件与 GitLab 交互

6.2.0

社区支持

./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab

 

Disabled

GitLab

后端

@immobiliarelabs/backstage-plugin-gitlab-backend

Backstage 插件与 GitLab 交互

6.2.0

社区支持

./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab-backend-dynamic

GITLAB_HOST

GITLAB_TOKEN

Disabled

Jenkins

frontend

@backstage/plugin-jenkins

集成到 Jenkins 的 Backstage 插件

0.9.0

社区支持

./dynamic-plugins/dist/backstage-plugin-jenkins

 

Disabled

Jenkins

后端

@backstage/plugin-jenkins-backend

集成到 Jenkins 的 backstage 后端插件

0.3.0

社区支持

./dynamic-plugins/dist/backstage-plugin-jenkins-backend-dynamic

JENKINS_URL

JENKINS_USERNAME

JENKINS_TOKEN

Disabled

JFrog Artifactory

frontend

@janus-idp/backstage-plugin-jfrog-artifactory

Jfrog Artifactory 插件显示 Jfrog Artifactory registry 中有关容器镜像的信息。

1.2.4

红帽技术预览

./dynamic-plugins/dist/janus-idp-backstage-plugin-jfrog-artifactory

 

Disabled

jira

frontend

@roadiehq/backstage-plugin-jira

Backstage 插件来查看和与 JIRA 交互

2.4.11

社区支持

./dynamic-plugins/dist/roadiehq-backstage-plugin-jira

 

Disabled

Keycloak

后端

@janus-idp/backstage-plugin-keycloak-backend

Keycloak 后端插件将 Keycloak 集成到 Backstage。

1.7.6

Production

./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic

KEYCLOAK_BASE_URL

KEYCLOAK_LOGIN_REALM

KEYCLOAK_REALM

KEYCLOAK_CLIENT_ID

KEYCLOAK_CLIENT_SECRET

Disabled

Kubernetes

frontend

@backstage/plugin-kubernetes

集成到 Kubernetes 的 Backstage 插件

0.11.0

社区支持

./dynamic-plugins/dist/backstage-plugin-kubernetes

 

Enabled

Kubernetes

后端

@backstage/plugin-kubernetes-backend

集成到 Kubernetes 的 backstage 后端插件

0.13.0

Production

./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic

K8S_CLUSTER_NAME

K8S_CLUSTER_URL

K8S_CLUSTER_TOKEN

Enabled

Kubernetes

frontend

@janus-idp/backstage-plugin-topology

Topology 插件可让您视觉化工作负载,如 Deployment, Job, Daemonset, Statefulset, CronJob, 和 Pod 在 Kubernetes 集群上支持任何服务。

1.16.4

Production

./dynamic-plugins/dist/janus-idp-backstage-plugin-topology

 

Enabled

lighthouse

frontend

@backstage/plugin-lighthouse

集成到 Lighthouse 的 Backstage 插件

0.4.10

社区支持

./dynamic-plugins/dist/backstage-plugin-lighthouse

 

Disabled

Nexus 存储库管理器

frontend

@janus-idp/backstage-plugin-nexus-repository-manager

Nexus Repository Manager 插件显示有关您的 Backstage 应用中 Nexus Repository Manager 中可用的构建工件的信息。

1.4.4

红帽技术预览

./dynamic-plugins/dist/janus-idp-backstage-plugin-nexus-repository-manager

 

Disabled

OCM

frontend

@janus-idp/backstage-plugin-ocm

Open Cluster Management (OCM)插件将您的 Backstage 实例与 OCM 的 MultiClusterHubMultiCluster 引擎集成。

3.5.0

Production

./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm

 

Disabled

OCM

后端

@janus-idp/backstage-plugin-ocm-backend

 

3.4.6

Production

./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm-backend-dynamic

OCM_HUB_NAME

OCM_HUB_URL

moc_infra_token

Disabled

Pagerduty

frontend

@backstage/plugin-pagerduty

集成到 PagerDuty 的 Backstage 插件

0.6.6

社区支持

./dynamic-plugins/dist/backstage-plugin-pagerduty

 

Disabled

Quy

frontend

@janus-idp/backstage-plugin-quay

Quay 插件在 Backstage 应用中显示 Quay registry 中有关容器镜像的信息。

1.4.6

Production

./dynamic-plugins/dist/janus-idp-backstage-plugin-quay

 

Disabled

Quy

后端

@janus-idp/backstage-scaffolder-backend-module-quay

此模块为 Quay 提供 Backstage 模板操作。

1.2.1

Production

./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-quay-dynamic

 

Enabled

regex

后端

@janus-idp/backstage-scaffolder-backend-module-regex

此插件为 RegExp 提供 Backstage 模板操作。

1.2.1

Production

./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-regex-dynamic

 

Enabled

Scaffolder

后端

@roadiehq/scaffolder-backend-module-utils

它包含在构建器模板中使用的一系列操作。

1.10.4

社区支持

./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-utils-dynamic

 

Enabled

ServiceNow

后端

@janus-idp/backstage-scaffolder-backend-module-servicenow

此插件为 ServiceNow 提供 Backstage 模板操作。

1.2.3

红帽技术预览

./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-servicenow-dynamic

SERVICENOW_BASE_URL

SERVICENOW_USERNAME

SERVICENOW_PASSWORD

Disabled

SonarQube

frontend

@backstage/plugin-sonarqube

一个 Backstage 插件,以显示 incompatible 代码质量和安全结果。

0.7.7

社区支持

./dynamic-plugins/dist/backstage-plugin-sonarqube

 

Disabled

SonarQube

后端

@backstage/plugin-sonarqube-backend

 

0.2.8

社区支持

./dynamic-plugins/dist/backstage-plugin-sonarqube-backend-dynamic

SONARQUBE_URL

SONARQUBE_TOKEN

Disabled

SonarQube

后端

@janus-idp/backstage-scaffolder-backend-module-sonarqube

此模块为 hieradata 提供 Backstage 模板操作。

1.2.1

红帽技术预览

./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-sonarqube-dynamic

 

Disabled

tech Radar

frontend

@backstage/plugin-tech-radar

可让您为您的机构显示 Tech Radar 的 Backstage 插件

0.6.9

社区支持

./dynamic-plugins/dist/backstage-plugin-tech-radar

 

Disabled

ProductShortName

frontend

@backstage/plugin-techdocs

呈现组件技术文档的 Backstage 插件

1.8.0

Production

./dynamic-plugins/dist/backstage-plugin-techdocs

 

Disabled

ProductShortName

后端

@backstage/plugin-techdocs-backend

呈现组件技术文档的 backstage 后端插件

1.8.0

Production

./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic

TECHDOCS_BUILDER_TYPE

TECHDOCS_GENERATOR_TYPE

TECHDOCS_PUBLISHER_TYPE

BUCKET_NAME

BUCKET_REGION_VAULT

BUCKET_URL

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

Disabled

Tekton

frontend

@janus-idp/backstage-plugin-tekton

Tekton 插件可让您视觉化 Kubernetes 集群中可用的 PipelineRun 资源。

3.1.3

Production

./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton

 

Disabled

5.6. 安装和配置 Ansible Automation Platform

Ansible Automation Platform (AAP)插件同步可访问的模板,包括来自 AAP 的作业模板和工作流作业模板到 Developer Hub 目录。

重要

Ansible Automation Platform 插件只是一个技术预览功能。

红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能的更多信息,请参阅 技术预览功能范围

有关红帽如何提供对捆绑社区动态插件的支持的更多详细信息,请参阅 Red Hat Developer Support Policy 页面。

5.6.1. 对于管理员

5.6.1.1. 安装和配置 AAP 后端插件

AAP 后端插件允许您使用 Developer Hub 中的 app-config.yaml 配置文件配置一个或多个供应商。

先决条件

  • 您的 Developer Hub 应用程序已安装并运行。
  • 您已在 Ansible Automation Platform 中创建帐户。

安装

AAP 后端插件在 Developer Hub 中预加载,带有基本配置属性。要启用它,将 disabled 属性设置为 false,如下所示:

global:
  dynamic:
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic
        disabled: false
Copy to Clipboard Toggle word wrap

基本配置

要启用 AAP 插件,您必须设置以下环境变量:

  • AAP_BASE_URL: 服务的基本 URL
  • AAP AUTH TOKEN: 服务的身份验证令牌

高级配置

  1. 您可以使用 aap 标记来配置 Developer Hub 的 app-config.yaml 文件,如下所示:

       catalog:
         providers:
           aap:
             dev:
               baseUrl: $(AAP_BASE_URL)
               authorization: 'Bearer ${AAP_AUTH_TOKEN}'
               owner: <owner>
               system: <system>
               schedule: # optional; same options as in TaskScheduleDefinition
                 # supports cron, ISO duration, "human duration" as used in code
                 frequency: { minutes: 1 }
                 # supports ISO duration, "human duration" as used in code
                 timeout: { minutes: 1 }
    Copy to Clipboard Toggle word wrap
5.6.1.2. AAP 后端插件的日志行故障排除

启动 Developer Hub 应用程序时,您可以看到以下日志行:

[1] 2023-02-13T15:26:09.356Z catalog info Discovered ResourceEntity API type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.423Z catalog info Discovered ResourceEntity Red Hat Event (DEV, v1.2.0) type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.620Z catalog info Discovered ResourceEntity Red Hat Event (TEST, v1.1.0) type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.819Z catalog info Discovered ResourceEntity Red Hat Event (PROD, v1.1.0) type=plugin target=AapResourceEntityProvider:dev
[1] 2023-02-13T15:26:09.819Z catalog info Applying the mutation with 3 entities type=plugin target=AapResourceEntityProvider:dev
Copy to Clipboard Toggle word wrap

5.6.2. 对于用户

5.6.2.1. 从 Developer Hub 中的 AAP 访问模板

当您成功配置了 AAP 后端插件时,它会同步模板,包括 AAP 中的作业模板和工作流作业模板,并将其显示在 Developer Hub Catalog 页面中作为 Resources。

先决条件

流程

  1. 打开 Developer Hub 应用程序,再打开 Catalog 页面。
  2. 页面左侧的 Type 下拉菜单中选择 Kind 下拉菜单和 作业模板 或工作流作业模板 的资源。

    页面中会出现来自 AAP 的所有可用模板的列表。

  3. 从列表中选择一个模板。

    OVERVIEW 选项卡会出现包含不同卡,例如:

    • 关于 :提供有关模板的详细信息。
    • 关系 :显示模板和相关的各个方面的视觉表示。
    • 链接 :包含到 AAP 仪表板的链接和模板的详细信息页面。
    • 具有子组件 :显示关联的子组件列表。

5.7. 安装和配置 Keycloak

将 Keycloak 后端插件集成到 Developer Hub 中,具有以下功能:

  • 同步域中的 Keycloak 用户。
  • 在域中同步 Keycloak 组及其用户。

5.7.1. 对于管理员

5.7.1.1. 安装

Keycloak 插件在 Developer Hub 中预加载,带有基本配置属性。要启用它,将 disabled 属性设置为 false,如下所示:

global:
  dynamic:
    includes:
      - dynamic-plugins.default.yaml
    plugins:
      - package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic
        disabled: false
Copy to Clipboard Toggle word wrap
5.7.1.2. 基本配置

要启用 Keycloak 插件,您必须设置以下环境变量:

  • KEYCLOAK_BASE_URL
  • KEYCLOAK_LOGIN_REALM
  • KEYCLOAK_REALM
  • KEYCLOAK_CLIENT_ID
  • KEYCLOAK_CLIENT_SECRET
5.7.1.3. 高级配置

调度配置

您可以在 app-config.yaml 文件中配置调度,如下所示:

     catalog:
       providers:
         keycloakOrg:
           default:
             # ...
             # highlight-add-start
             schedule: # optional; same options as in TaskScheduleDefinition
               # supports cron, ISO duration, "human duration" as used in code
               frequency: { minutes: 1 }
               # supports ISO duration, "human duration" as used in code
               timeout: { minutes: 1 }
               initialDelay: { seconds: 15 }
               # highlight-add-end
Copy to Clipboard Toggle word wrap
注意

如果您在 app-config.yaml 文件中对调度进行了任何更改,则重启以应用更改。

Keycloak 查询参数

您可以覆盖 app-config.yaml 文件中的默认 Keycloak 查询参数,如下所示:

   catalog:
     providers:
       keycloakOrg:
         default:
           # ...
           # highlight-add-start
           userQuerySize: 500 # Optional
           groupQuerySize: 250 # Optional
           # highlight-add-end
Copy to Clipboard Toggle word wrap

使用 Keycloak API 启用 Developer Hub 和 Keycloak 之间的通信。用户名和密码或客户端凭证是支持的身份验证方法。

下表描述了您可以配置在 app-config.yaml 文件中的 catalog.providers.keycloakOrg.<ENVIRONMENT_NAME > 对象下启用插件的参数:

Expand
名称描述默认值必填

baseUrl

Keycloak 服务器的位置,如 https://localhost:8443/auth。请注意,Keycloak 的较新版本省略了 /auth 上下文路径。

""

realm

要同步的域

master

loginRealm

用于验证的域

master

username

进行身份验证的用户名

""

如果使用基于密码的身份验证,则为

password

进行身份验证的密码

""

如果使用基于密码的身份验证,则为

clientId

要进行身份验证的客户端 ID

""

如果使用基于客户端凭证的身份验证,则为 yes

clientSecret

要进行身份验证的客户端 Secret

""

如果使用基于客户端凭证的身份验证,则为 yes

userQuerySize

一次查询的用户数

100

groupQuerySize

一次查询的组数

100

在使用客户端凭据时,必须将访问类型设为 机密,并且必须启用服务帐户。您还必须从 realm-management 客户端角色中添加以下角色:

  • query-groups
  • query-users
  • view-users
5.7.1.4. 限制

如果您有自签名或企业证书问题,您可以在启动 Developer Hub 前设置以下环境变量:

NODE_TLS_REJECT_UNAUTHORIZED=0

注意

不建议设置环境变量的解决方案。

5.7.2. 对于用户

成功配置插件后,插件会在每次启动时都会导入用户和组。

注意

如果您设置了调度,则用户和组也会被导入。

第一次导入完成后,您可以从目录页面中选择 User 来列出用户:

您可以在页面中查看用户列表:

当您选择一个用户时,您可以看到从 Keycloak 导入的信息:

您还可以选择一个组,查看列表,并为组选择或查看从 Keycloak 导入的信息:

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat