通过 TektonConfig 配置 tektoncd-enhancement ConfigMap

本指南介绍如何通过 TektonConfig 使用 spec.pipeline.options.configMaps 来管理 tektoncd-enhancement-config

命名空间说明:在本指南中,<tekton-pipelines> 用作你的 Tekton 命名空间占位符。请将其替换为实际的命名空间名称。默认安装使用 tekton-pipelines 命名空间。

前提条件

  • 已安装 Tekton Operator。
  • TektonConfig 资源已存在(通常名为 config)。
  • 你可以在集群中编辑 TektonConfig

步骤

1. 使用 spec.pipeline.options.configMaps 更新 TektonConfig

options 结构遵循与 调整子组件的可选配置项 中所述相同的模式。

使用如下 TektonConfig patch:

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  targetNamespace: <tekton-pipelines>
  pipeline:
    options:
      configMaps:
        tektoncd-enhancement-config:
          data:
            config: |
              # Shared configuration for tektoncd-enhancement features.
              template-render:
                # Template to build the details URL.
                details-url-template: "{{- if .isPipelineRun -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/pipelineRuns/detail/{{ .pipelineRunName }}{{- else -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/taskRuns/detail/{{ .taskRunName }}{{- end -}}"
                # Empty value means using the container local time zone.
                time-zone: ""

2. 参数参考与默认值

参数含义默认值
template-render.details-url-template用于在邮件/模板渲染上下文中渲染 detailsURL 的 Go 模板。{{- if .isPipelineRun -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/pipelineRuns/detail/{{ .pipelineRunName }}{{- else -}}{{ .platformURL }}/console-acp/workspace/{{ .project }}~{{ .cluster }}~{{ .namespace }}/pipeline/taskRuns/detail/{{ .taskRunName }}{{- end -}}
template-render.time-zone用于模板渲染的全局时区设置。""(使用容器的本地时区)

3. 验证 ConfigMap 更新

更新 TektonConfig 后,检查 tektoncd-enhancement-config 是否已完成 reconcile:

kubectl get configmap tektoncd-enhancement-config -n <tekton-pipelines> -o yaml

4. 重启 tektoncd-enhancement

重启 <tekton-pipelines> 命名空间中的 tektoncd-enhancement workload:

kubectl rollout restart deployment/tektoncd-enhancement -n <tekton-pipelines>
# deployment.apps/tektoncd-enhancement restarted

kubectl rollout status deployment/tektoncd-enhancement -n <tekton-pipelines>
# Waiting for deployment "tektoncd-enhancement" rollout to finish: 1 old replica is pending termination...
# deployment "tektoncd-enhancement" successfully rolled out

常见问题

我更新了 TektonConfig,但生效配置没有变化。我该检查什么?

请按以下顺序检查:

  1. TektonConfig 已成功更新。
  2. <tekton-pipelines> 命名空间中的 tektoncd-enhancement-config 具有预期的 data.config
  3. tektoncd-enhancement 已重启且 rollout 已完成。