6.6.5. GitHub CR 示例

以下自定义资源 (CR) 显示 GitHub 身份提供程序的参数和可接受值。

GitHub CR

apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  identityProviders:
  - name: githubidp 1
    mappingMethod: claim 2
    type: GitHub
    github:
      ca: 3
        name: ca-config-map
      clientID: {...} 4
      clientSecret: 5
        name: github-secret
      hostname: ... 6
      organizations: 7
      - myorganization1
      - myorganization2
      teams: 8
      - myorganization1/team-a
      - myorganization2/team-b

1
此提供程序名称作为前缀放在 GitHub 数字用户 ID 前,以此组成身份名称。它还可用来构建回调 URL。
2
控制如何在此提供程序的身份和 User 对象之间建立映射。
3
可选:对包含 PEM 编码证书颁发机构捆绑包的 OpenShift Container Platform ConfigMap 的引用,以用于验证所配置 URL 的服务器证书。仅用于带有非公开信任的根证书的 GitHub Enterprise。
4
注册的 GitHub OAuth 应用程序的客户端 ID。应用程序必须配置有回调 URL https://oauth-openshift.apps.<cluster-name>.<cluster-domain>/oauth2callback/<idp-provider-name>
5
对包含 GitHub 发布的客户端 Secret 的 OpenShift Container Platform Secret 的引用。
6
对于 GitHub Enterprise,您必须提供实例的主机名,如 example.com。这个值必须与 /setup/settings 文件中的 GitHub Enterprise hostname 值匹配,且不可包括端口号。如果未设定这个值,则必须定义 teamsorganizations。对于 GitHub,请省略此参数。
7
组织列表。必须设置 organizationsteams 字段,除非设置 hostname 字段,或者将 mappingMethod 设为 lookup。不可与 teams 字段结合使用。
8
团队列表。必须设置 teamsorganizations 字段,除非设置 hostname 字段,或者将 mappingMethod 设为 lookup。不可与 organizations 字段结合使用。
注意

如果指定了 organizationsteams,只有至少是一个所列组织成员的 GitHub 用户才能登录。如果在 clientID 中配置的 GitHub OAuth 应用程序不归该组织所有,则组织所有者必须授予第三方访问权限才能使用此选项。这可以在组织管理员第一次登录 GitHub 时完成,也可以在 GitHub 组织设置中完成。

其他资源

  • 有关适用于所有身份供应商的参数(如 mappingMethod)信息,请参阅身份供应商参数