IBM Cloud Docs
Tekton 管道环境属性和资源

Tekton 管道环境属性和资源

缺省情况下,以下信息和资源可用于 IBM Cloud® Continuous Delivery Tekton PipelineRun

PipelineRun 注释

表 1 描述了 Tekton PipelineRun 中包含的注释。

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 启动此管道运行的触发器的类型。 类型可以是 manualtimerscmgeneric
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 ConfigMapSecret

Continuous Delivery Tekton PipelineRun 资源为环境属性创建特定的 ConfigMapSecretsecure-properties Kubernetes Secret 中提供了安全属性,包括所选字段包含安全值的任何 Tool integration 属性。 environment-properties Kubernetes ConfigMap 中提供了不安全的属性。 这些键是管道编写用户界面中提供的字段的名称。

访问 ConfigMapSecret 时,请确保找到正确的对象名和引用,以便管道可以成功完成。

访问各个值

您可以访问 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

访问所有值

您可以将 ConfigMapSecret 中的所有“键/值”对添加到 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: 2Gi
  • medium: 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 的内容显示为该组的标题/摘要,以及该组当前状态(即展开或折叠)的指示符。 点击摘要将切换组的状态。

组默认为折叠状态,除非查看日志时步骤仍在进行中。 用户可以根据需要展开或折叠组,在用户导航到不同的视图之前,它们的状态都将保持不变。

日志组不能与日志级别混用在同一行,groupendgroup 和日志级别命令是互斥的。 不过,组内包含的日志可以正常使用日志级别。

不支持嵌套组。 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