第 1 章 在 OpenShift Pipelines 中使用 Tekton Hub
Tekton Hub 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
Tekton Hub 可帮助您发现、搜索和共享 CI/CD 工作流可重复使用的任务和管道。Tekton Hub 的一个公共实例位于 hub.tekton.dev 中。集群管理员还可以通过修改 TektonHub 自定义资源(CR)中的配置来安装和部署 Tekton Hub
的自定义实例。
1.1. 在 OpenShift Container Platform 集群上安装并部署 Tekton Hub 复制链接链接已复制到粘贴板!
Tekton Hub 是一个可选组件 ; 集群管理员无法使用 TektonConfig
自定义资源(CR)安装它。要安装和管理 Tekton Hub,请使用 TektonHub
CR。
您可以使用以下模式在集群中安装 Tekton Hub:
- 没有 Tekton Hub 工件的登录授权和评级
- 使用 Tekton Hub 工件的登录授权和评级
如果您使用 Github Enterprise 或 Gitlab Enterprise,请在与企业服务器相同的网络中安装并部署 Tekton Hub。例如,如果企业服务器在 VPN 后面运行,请在 VPN 之后也部署 Tekton Hub。
1.1.1. 在不登录和评级的情况下安装 Tekton Hub 复制链接链接已复制到粘贴板!
您可以使用默认配置在集群中安装 Tekton Hub。在使用默认配置时,Tekton Hub 不支持使用 Tekton Hub 工件的授权和评级登录。
先决条件
-
确保在集群中的默认
openshift-pipelines
命名空间中安装了 Red Hat OpenShift Pipelines Operator。
流程
创建一个类似以下示例的
TektonHub
CR。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果没有为
TektonHub
CR 中的可选字段提供自定义值,则会使用 Tekton Hub API 配置映射中配置的默认值。应用
TektonHub
CR。oc apply -f <tekton-hub-cr>.yaml
$ oc apply -f <tekton-hub-cr>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查安装的状态。
TektonHub
CR 可能需要一些时间才能获得 steady 状态。oc get tektonhub.operator.tekton.dev
$ oc get tektonhub.operator.tekton.dev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME VERSION READY REASON APIURL UIURL hub v1.9.0 True https://api.route.url/ https://ui.route.url/
NAME VERSION READY REASON APIURL UIURL hub v1.9.0 True https://api.route.url/ https://ui.route.url/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2. 使用登录和评级安装 Tekton Hub 复制链接链接已复制到粘贴板!
您可以使用支持使用 Tekton Hub 工件的授权和评级登录的自定义配置在集群中安装 Tekton Hub。
先决条件
-
确保在集群中的默认
openshift-pipelines
命名空间中安装了 Red Hat OpenShift Pipelines Operator。
流程
使用托管供应商的 Git 存储库创建 OAuth 应用程序,并记下客户端 ID 和客户端 Secret。支持的提供程序是 GitHub、GitLab 和 BitBucket。
-
对于 GitHub OAuth 应用程序,请将 Homepage URL 和 Authorization 回调 URL 设置为
<auth-route>
。 -
对于 GitLab OAuth 应用程序,将
REDIRECT_URI
设置为<auth-route>/auth/gitlab/callback
。 -
对于 BitBucket OAuth 应用,将
Callback URL
设置为<auth-route>
。
-
对于 GitHub OAuth 应用程序,请将 Homepage URL 和 Authorization 回调 URL 设置为
编辑
<tekton_hub_root>/config/02-api/20-api-secret.yaml
文件,使其包含 Tekton Hub API secret。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- GitHub OAuth 应用程序的客户端 ID。
- 2
- GitHub OAuth 应用程序的客户端 Secret。
- 3
- GitLab OAuth 应用的客户端 ID。
- 4
- GitLab OAuth 应用中的 Client Secret。
- 5
- BitBucket OAuth 应用程序的客户端 ID。
- 6
- BitBucket OAuth 应用程序的客户端机密。
- 7
- 用于为用户创建的 JSON Web Token (JWT) 签名的随机字符串。
- 8
- 添加访问令牌过期的时间限制。例如:
1m
,其中 m 表示分钟。支持的时间单位为秒(s
)、分钟(m
)、小时(h
)、天(d
)和周(w
)。 - 9
- 添加刷新令牌过期的时间限制。例如,
1m
,其中m
表示分钟。支持的时间单位为秒(s
)、分钟(m
)、小时(h
)、天(d
)和周(w
)。确保为令牌刷新设置的到期时间大于为令牌访问设置的到期时间。 - 10
- OAuth 应用的路由 URL。
- 11
- GitHub Enterprise URL,如果您使用 GitHub Enterprise 进行身份验证。不要提供目录的 URL 作为此字段的值。
- 12
- GitLab Enterprise URL,如果您使用 GitLab Enterprise 进行身份验证。不要提供目录的 URL 作为此字段的值。
注意您可以删除与部署无关的 Git 存储库托管服务供应商的未使用字段。
创建一个类似以下示例的
TektonHub
CR。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 需要安装 Tekton Hub 的命名空间;默认为
openshift-pipelines
。 - 2
- 可选:自定义数据库,如 Crunchy Postgres 数据库。
- 3
- 数据库 secret 的名称必须是
tekton-hub-db
。 - 4
- 可选:为 Tekton Hub 中的任务和管道自定义类别。
- 5
- 可选:为 Tekton Hub 自定义目录。
- 6
- 可选:其他用户。您可以满足多个用户,如
[<username_1>, <username_2>, <username_3>]
。 - 7
- 可选:自定义默认范围。
- 8
- 目录自动刷新的时间间隔。支持的时间单位为秒(
s
)、分钟(m
)、小时(h
)、天(d
)和周(w
)。默认间隔为 30 分钟。
注意如果没有为
TektonHub
CR 中的可选字段提供自定义值,则会使用 Tekton Hub API 配置映射中配置的默认值。应用
TektonHub
CR。oc apply -f <tekton-hub-cr>.yaml
$ oc apply -f <tekton-hub-cr>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查安装的状态。
TektonHub
CR 可能需要一些时间才能获得 steady 状态。oc get tektonhub.operator.tekton.dev
$ oc get tektonhub.operator.tekton.dev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME VERSION READY REASON APIURL UIURL hub v1.9.0 True https://api.route.url/ https://ui.route.url/
NAME VERSION READY REASON APIURL UIURL hub v1.9.0 True https://api.route.url/ https://ui.route.url/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow