第 5 章 安装和配置 Tekton 插件
您可以使用 Tekton 插件来视觉化在 Kubernetes 或 OpenShift 集群中运行的 CI/CD 管道的结果。通过插件,用户可以视觉化查看管道中所有相关任务的高级别状态。
5.1. 安装
先决条件
-
已安装并配置了
@backstage/plugin-kubernetes
和@backstage/plugin-kubernetes-backend
动态插件。 -
您已将 Kubernetes 插件配置为使用
ServiceAccount
连接到集群。 必须为
自定义资源(PipelineRuns 和 TaskRuns)授予访问集群的ServiceAccount
。注意如果您配置了 RHDH Kubernetes 插件,则已授予
ClusterRole
。-
要查看 pod 日志,您被授予了
pod/log
的权限。 您可以使用以下代码为自定义资源和 pod 日志授予
ClusterRole
:kubernetes: ... customResources: - group: 'tekton.dev' apiVersion: 'v1' plural: 'pipelineruns' - group: 'tekton.dev' apiVersion: 'v1' ... apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: - apiGroups: - "" resources: - pods/log verbs: - get - list - watch ... - apiGroups: - tekton.dev resources: - pipelineruns - taskruns verbs: - get - list
您可以将准备的清单用于只读
ClusterRole
,它为 Kubernetes 插件和 Tekton 插件提供访问权限。在实体的
catalog-info.yaml
文件中添加以下注解,以识别实体是否包含 Kubernetes 资源:annotations: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
您还可以添加
backstage.io/kubernetes-namespace
注解,以使用定义的命名空间来识别 Kubernetes 资源。annotations: ... backstage.io/kubernetes-namespace: <RESOURCE_NS>
将以下注解添加到实体的
catalog-info.yaml
文件中,以启用 RHDH 中的 Tekton 相关功能。注解的值标识 RHDH 实体的名称:annotations: ... janus-idp.io/tekton : <BACKSTAGE_ENTITY_NAME>
添加自定义标签选择器,它 RHDH 用于查找 Kubernetes 资源。标签选择器优先于 ID 注解。
annotations: ... backstage.io/kubernetes-label-selector: 'app=my-app,component=front-end'
在资源中添加以下标签,以便 Kubernetes 插件从请求的实体获取 Kubernetes 资源:
labels: ... backstage.io/kubernetes-id: <BACKSTAGE_ENTITY_NAME>
注意使用标签选择器时,上述标签必须存在于资源上。
流程
Tekton 插件在带有基本配置属性的 RHDH 中预加载。要启用它,请将 disabled 属性设置为 false,如下所示:
global: dynamic: includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton disabled: false