Tekton 管道环境属性和资源
缺省情况下,以下信息和资源可用于 IBM Cloud® Continuous Delivery Tekton PipelineRun
。
PipelineRun
注释
表 1 描述了 Tekton PipelineRun
中包含的注释。
运行注释 | 描述 |
---|---|
devops.cloud.ibm.com/build-number |
管道的构建号。 此数字是来自所有触发器的管道运行的累积总数。 |
devops.cloud.ibm.com/listener |
映射到启动此管道运行的触发器的 Tekton eventlistener 。 |
devops.cloud.ibm.com/pipeline-id |
用于此运行的管道的唯一标识。 |
devops.cloud.ibm.com/trigger-name |
启动此管道运行的触发器的名称。 |
devops.cloud.ibm.com/trigger-type |
启动此管道运行的触发器的类型。 类型可以是 manual ,timer ,scm 或 generic 。 |
devops.cloud.ibm.com/triggered-by |
启动触发器的用户。 此值是按下 run for manual 触发器的用户,上次为 timer 触发器保存触发器的用户或为 scm 触发器执行 Git 操作的用户的 IBMId。 对于 generic 触发器,此值为空。 |
devops.cloud.ibm.com/pipeline-run-url |
该管道运行的详细信息页面 URL。 |
devops.cloud.ibm.com/tekton-pipeline |
此管道运行的唯一标识。 |
访问注释
您可以从管道定义 YAML 文件中的任务访问注释。 以下示例显示如何访问 devops.cloud.ibm.com/build-number
注释。 要将该注释作为环境变量提供,请将其替换为表 1 中的其中一个运行注释。PipelineRun
注释。
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: simple-task
spec:
steps:
- name: simple-step
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
env:
- name: BUILD_NUMBER
valueFrom:
fieldRef:
fieldPath: metadata.annotations['devops.cloud.ibm.com/build-number']
command: ["bash", "-c"]
args:
- echo $BUILD_NUMBER;
echo "COMPLETED"
PipelineRun ConfigMap
和 Secret
Continuous Delivery Tekton PipelineRun
资源为环境属性创建特定的 ConfigMap
和 Secret
。 secure-properties
Kubernetes Secret
中提供了安全属性,包括所选字段包含安全值的任何 Tool integration
属性。 environment-properties
Kubernetes ConfigMap
中提供了不安全的属性。 这些键是管道编写用户界面中提供的字段的名称。
访问 ConfigMap
或 Secret
时,请确保找到正确的对象名和引用,以便管道可以成功完成。
访问各个值
您可以访问 Task
中的各个键值。 以下代码片段使用样本 apikey
属性名 (具有安全属性) 和 environment
属性名 (具有文本属性)。 这些属性名称在交付管道的“属性”页面中设置。
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: cm-echo-props
spec:
steps:
- name: cm-show-props
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
env:
- name: SECURE_VALUE
valueFrom:
secretKeyRef:
name: secure-properties
key: apikey
- name: ENVIRONMENT
valueFrom:
configMapKeyRef:
name: environment-properties
key: environment
command: ["/bin/bash", "-c"]
args:
- echo -e "environment from ConfigMap is >>";
echo $ENVIRONMENT;
echo "";
echo -e "apikey from Secrets is >>";
echo $SECURE_VALUE
访问所有值
您可以将 ConfigMap
和 Secret
中的所有“键/值”对添加到 Task
环境中:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: cm-secrets-props
spec:
steps:
- name: cm-show-full-env
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
envFrom:
- configMapRef:
name: environment-properties
- secretRef:
name: secure-properties
command: ["/bin/bash", "-c"]
args:
- echo -e "The environment for this Step is ";
env
受管工人虚拟机大小
使用 IBM 受管工作程序池运行管道时,将分配具有特定缺省内存的 VM。 虽然大多数作业可以使用提供的内存成功运行,但某些管道需要额外的内存来执行密集型任务。
用户可以在其任务上指定标签,以指示任务对于特定任务是否需要更多 (或更少) 内存。 此功能用于确定所需资源的特定数量,从而使资源使用情况和最终节省的成本受益。
要指示要应用于 Tekton 管道中的特定任务的 VM 概要文件,请使用下列其中一个 VM 值将 runtimeClassName
标签添加到该任务。 如果未提供标签,那么将使用缺省 VM 概要文件。
small
: 2Gimedium
: 4Gi (缺省值)large
: 8Gi
例如:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: task1
labels:
runtimeClassName: medium
and so on.
您还可以在 PipelineRun
中指定相同的配置作为 TriggerTemplate
的一部分。 通过在 PipelineRun
中指定 runtimeClassName
,用户可以选择要使用的 VM 概要文件,而无需更改任务定义。
例如:
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
generateName: pipeline-run-
spec:
pipelineRef:
name: pipeline
taskRunSpecs:
- pipelineTaskName: task1
taskPodTemplate:
runtimeClassName: medium
日志格式
本节介绍 PipelineRun 详细信息页面提供的日志查看器的特性和功能,以及利用这些特性所支持的日志格式。
基本功能
日志查看器支持 ANSI 颜色编码和文本样式,可自动检测日志内容中的 URL,并将其显示为可点击的链接,在新窗口中打开。
工具栏
日志查看器中显示的工具栏包含许多附加功能,包括
- 最大化:通过隐藏任务列表和运行标题,增加日志查看器的可用区域。 这样,用户就可以排除应用程序其他部分的干扰,专注于日志内容。
- 用户偏好:这些偏好在浏览器中本地持久保存,并应用于应用程序中的所有日志。 详情请参见以下章节。
时间戳记
IBM-受管 Worker 和使用 0.20.5 或更高版本代理的私有 Worker 默认会生成以时间戳为前缀的日志行。 用户可以通过切换日志查看器顶部工具栏设置菜单中的选项,在日志查看器中显示或隐藏这些时间戳。
显示的时间戳会根据用户的浏览器设置进行本地化,从工作站接收的原始时间戳值会在悬停时作为工具提示提供。
日志级别
日志查看器会对日志行进行解析,以检测相关的日志级别,并对日志行进行相应的装饰,从而提高日志的可读性。 支持的格式如下所述。
<timestamp> ::<level>::<message>
timestamp
由工人提供level
是,,,中的一个、error
warning
notice
info
debug
debug
日志默认为隐藏- 任何没有明确
level
的日志行都会被视为info
,但不会显示日志级别徽章,以避免在用户界面中出现冗余,因为用户没有使用支持的日志格式
message
是行上的任何其他内容,可能包含格式化等 ANSI 代码。
例如,以下代码段将输出 warning
级别的日志行:
echo '::warning::Something that may require attention but is non-blocking…'
可以通过日志查看器顶部工具栏的设置菜单更改显示的日志级别。
日志组
除日志级别外,日志查看器还支持日志中的可折叠组。 支持的格式如下所述。
<timestamp> ::group::<message>
…
<timestamp> ::endgroup::
group
命令标志着组的开始。 message
的内容显示为该组的标题/摘要,以及该组当前状态(即展开或折叠)的指示符。 点击摘要将切换组的状态。
组默认为折叠状态,除非查看日志时步骤仍在进行中。 用户可以根据需要展开或折叠组,在用户导航到不同的视图之前,它们的状态都将保持不变。
日志组不能与日志级别混用在同一行,group
、endgroup
和日志级别命令是互斥的。 不过,组内包含的日志可以正常使用日志级别。
不支持嵌套组。 group
命令将隐式终止任何先前未终止的组。
例如,以下代码段将输出一个日志组,其摘要为“附加配置”,包含 info
级别的大量信息:
echo '::group::Additional config'
echo 'This extends the base config'
echo '::info:: More info about the config…'
echo '::endgroup::'
了解有关 Tekton 交付管道的更多信息
要了解有关 Tekton 和 Continuous Delivery的更多信息,请参阅 Tekton: A Modern 方法 to Continuous Delivery。