6.4. 使用 Pipelines as Code 监控管道运行状态
根据上下文和支持的工具,您可以以不同的方式监控管道运行的状态。
GitHub 应用程序的状态
当管道运行完成后,在 Check 选项卡中添加状态,其中包含管道的每个任务以及 tkn pipelinerun describe
命令的输出的有限信息。
日志错误片断
当 Pipelines as Code 检测到管道其中一个任务中的错误时,会显示一段信息,它包括第一个失败的任务的任务详情中的最后 3 行信息。
Pipelines as Code 通过查看管道运行并使用隐藏字符替换 secret 值来避免泄漏 secret。但是,Pipelines as Code 无法隐藏来自工作区和 envFrom 源的 secret。
日志错误片断的注解
在 TektonConfig
自定义资源中,在 pipelinesAsCode.settings
spec 中,您可以将 error-detection-from-container-logs
参数设置为 true
。在这种情况下,Pipelines as Code 会检测容器日志中的错误,并在发生错误的拉取请求中添加它们作为注解。
为日志错误片断添加注解只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
目前,Pipelines as Code 只支持使用以下格式的 makefile
或 grep
输出的简单情况:
<filename>:<line>:<column>: <error message>
您可以使用 error-detection-simple-regexp
参数自定义用于检测错误的正则表达式。正则表达式使用命名组来授予如何指定匹配的灵活性。需要匹配的组是 filename
, line
, 和 error
。您可以查看 Pipelines as Code 配置映射用于默认正则表达式。
默认情况下,Pipelines as Code 只扫描容器日志的最后 50 行。您可以在 error-detection-max-number-of-lines
字段中增加这个值,或为无限数量的行设置 -1
。但是,此类配置可能会增加监视器的内存用量。
Webhook 的状态
对于 Webhook,当事件是拉取请求时,状态将添加为拉取请求或合并请求的注释。
失败
如果命名空间与 Repository
自定义资源定义 (CRD) 匹配,Pipelines as Code 会在命名空间中的 Kubernetes 事件中发出其故障日志消息。
与 Repository CRD 关联的状态
管道运行的最后 5 个状态消息存储在 Repository
自定义资源中。
$ oc get repo -n <pipelines-as-code-ci>
NAME URL NAMESPACE SUCCEEDED REASON STARTTIME COMPLETIONTIME pipelines-as-code-ci https://github.com/openshift-pipelines/pipelines-as-code pipelines-as-code-ci True Succeeded 59m 56m
使用 tkn pac describe
命令,您可以提取与存储库及其元数据关联的运行状态。
通知
Pipelines as Code 不管理通知。如果您需要通知,请使用管道的 finally
功能。