1.2. Red Hat OpenShift Pipelines 1.19 发行注记


在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.19 包括在 OpenShift Container Platform 4.15 及更新的版本中。

1.2.1. 新功能

除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.19 中的新内容:

1.2.1.1. Pipelines

  • 在这个版本中,您可以在 EventListener 资源中指定自定义 securityContext 设置。当您启用自定义 securityContext 时,用户定义的值会覆盖默认配置。否则,会自动应用默认的 securityContext 设置。

    EventListener 资源中的 securityContext 配置示例

    apiVersion: triggers.tekton.dev/v1beta1
    kind: EventListener
    metadata:
      name: listener-securitycontext
    spec:
      serviceAccountName: pipeline
      resources:
        kubernetesResource:
          spec:
            template:
              spec:
                securityContext:
                  runAsNonRoot: true
                containers:
                  - resources:
                      requests:
                        memory: "64Mi"
                        cpu: "250m"
                      limits:
                        memory: "128Mi"
                        cpu: "500m"
                    securityContext:
                      readOnlyRootFilesystem: true
      triggers:
        - name: foo-trig
          bindings:
            - ref: pipeline-binding
            - ref: message-binding
          template:
            ref: pipeline-template
    # ...
    Copy to Clipboard Toggle word wrap

1.2.1.2. Tekton Results

  • 在这个版本中,您可以使用 TektonConfig 自定义资源(CR)为 Tekton Results 配置自定义数据库凭证。这消除了依赖使用默认用户名和密码的默认 PostgreSQL secret 的需求。

    为 Tekton Results 添加自定义数据库凭证示例

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonResult
    metadata:
      name: result
    spec:
      db_secret_name: # optional: custom database secret name
      db_secret_user_key: # optional
      db_secret_password_key: # optional
    ...
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,Tekton Results API 支持响应字段过滤或部分响应来减少有效负载大小并改进网络效率。您可以指定要包含在 API 响应中的哪些字段,通过防止检索整个对象来提高 List 操作,从而优化响应延迟和 I/O 性能。
  • 在这个版本中,您可以在 bundle.resolver.backoff 下的 config-resolver-bundle 配置映射中为 OCI 捆绑包查找配置重试计时,如初始重试延迟、backoff 因素和最大重试持续时间。这有助于通过防止积极重试行为来减少忙碌 registry 上的负载。

    配置重试时间的示例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: bundleresolver-config
      namespace: tekton-pipelines-resolvers
      labels:
        app.kubernetes.io/component: resolvers
        app.kubernetes.io/instance: default
        app.kubernetes.io/part-of: tekton-pipelines
    data:
      # The initial duration for a backoff.
      backoff-duration: "500ms"
      # The factor by which the sleep duration increases every step
      backoff-factor: "2.5"
      # A random amount of additional sleep between 0 and duration * jitter.
      backoff-jitter: "0.1"
      # The number of backoffs to attempt.
      backoff-steps: "3"
      # The maxumum backoff duration. If reached, remaining steps are zeroed.
      backoff-cap: "10s"
      # The default layer kind in the bundle image.
      default-kind: "task"
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,Git 解析器可以使用个人访问令牌通过 GitHub 或 GitLab 进行身份验证,避免与匿名 git clone API 使用关联的速率限制。要启用此功能,请在 git resolver 参数规格中添加 gitToken: 字段。Tekton 在解析过程中自动将令牌注入 HTTP 标头,以减少远程解析过程中与配额相关的错误的风险。

    配置 gitToken: 字段的示例

    apiVersion: tekton.dev/v1beta1
    kind: PipelineRun
    metadata:
      name: git-clone-demo-pr
    spec:
      pipelineRef:
        resolver: git
        params:
        - name: url
          value: https://github.com/tektoncd/catalog.git
        - name: revision
          value: main
        - name: pathInRepo
          value: pipeline/simple/0.1/simple.yaml
        - name: gitToken
          value: "secret-with-token"
        - name: gitTokenKey (optional, defaults to "token")
          value: "token"
      params:
      - name: name
        value: Ranni
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,Tekton Results 中的 SQL 的默认日志级别被设置为 warn。您可以通过在 Tekton Results 部署中指定 SQL_LOG_LEVEL 环境变量来覆盖此设置。

    启用 SQL_LOG_LEVEL 环境变量的示例

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
      options:
        deployments:
           tekton-results-api:
             spec:
               template:
                 spec:
                   containers:
                   - name: api
                     env:
                     - name: SQL_LOG_LEVEL
                       value: debug
    # ...
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,Tekton Results 监视器会在删除终结器前重试协调,直到达到 storedDeadline 持续时间为止。这可减少缺少 TaskRunPipelineRun 存储的风险。
  • 在这个版本中,Tekton Results 用户可以从 OpenShift Logging 转发的 Splunk 检索日志。要启用此功能,请在 Tekton Results API 部署中设置以下环境变量:

    • SPLUNK\_SEARCH\_TOKEN, LOGGING\_PLUGIN\_QUERY\_PARAMS
    • LOGGING\_PLUGIN\_API\_URL

      OpenShift Logging 检索转发的日志的示例

      apiVersion: operator.tekton.dev/v1alpha1
      kind: TektonConfig
      metadata:
        name: config
        options:
          deployments:
             tekton-results-api:
               spec:
                 template:
                   spec:
                     containers:
                     - name: api
                       env:
      Copy to Clipboard Toggle word wrap

      注意
      • LOGGING\_PLUGIN\_API\_URL 变量必须使用 Splunk 端点和端口号进行配置。
  • 在这个版本中,Tekton Results watcher 使用 StatefulSet ordinals 提高高可用性和工作负载分布作为领导选举机制的替代选择。

    为 Tekton Results 监视器启用 StatefulSet 或dinals 示例

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      result:
        performance:
          disable-ha: false
          buckets: 4
          replicas: 4
          statefulset-ordinals: true
    # ...
    Copy to Clipboard Toggle word wrap

    重要

    对高可用性使用 StatefulSet 或dinals 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

    有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

1.2.1.3. Pipelines 作为代码(Pipelines as Code)

  • 在这个版本中,当未授权的 bot 用户尝试触发 PipelineRun 时,Pipelines as Code 不再会在 GitHub 拉取请求上创建一个 Pending 状态。现在,不生成阻止状态检查,而是静默禁止此类请求。
  • 在这个版本中,一个新的 pipelines_as_code_git_provider_api_request_count 指标跟踪由 Pipelines as Code 到 Git 供应商(如 GitHub、GitLab 和 Gitea)进行的 API 调用数量。指标还帮助监控每个 Git 提供程序、命名空间、事件类型和存储库的 API 速率限制使用量。
  • 在这个版本中,Repository CR 中的 URL 会在创建过程中验证,以确保它们被正确格式化并使用有效的方案,如 http 或 https。此功能增强有助于防止配置错误和运行时错误。
  • 在这个版本中,PipelineRun 状态注释会在 Bitbucket 数据中心和 Bitbucket 云上正确显示,而不是在拉取请求 UI 中显示原始字符串。

1.2.1.4. Operator

  • 在这个版本中,您可以通过将 TektonConfig 自定义资源(CR)中的 generateSigningSecret 字段设置为 true 来生成 cosign 密钥对。Red Hat OpenShift Pipelines Operator 生成 cosign.key 密钥对、cosign.key 私钥和 cosign.pub 公钥。

    启用 cosign 密钥对的示例

    apiVersion: operator.tekton.dev/v1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      chain:
        disabled: false
        generateSigningSecret: true
    # ...
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,/ok-to-test 内存功能会被默认禁用。这种预防措施有助于降低测试环境中恶意代码执行的风险。
  • 在这个版本中,可以从远程管道定义中扩展动态变量。此功能增强改进了管道组成功能。
  • 在这个版本中,远程解析功能中包含的 Git 解析器使用原生 git 二进制文件,而不是 pure Go go-git 库。这个更改减少了内存消耗并提高克隆性能,特别是对于大型存储库。此增强使用 shallow-clone 标志(如 深入的 1) 来减少资源使用量。不需要更改管道清单。
  • 在这个版本中,Red Hat OpenShift Pipelines 中的 onError 字段支持 Tekton 参数替换。在以前的版本中,onError 字段只接受字面值 stopAndFail 并继续。您可以使用 $(params.strategy) 替换令牌在运行时动态决定失败处理行为。这允许单个 Pipeline 定义根据参数、上下文或结果调整其 onError 策略。
  • 在这个版本中,StepAction 定义从 alpha 更新至 stable,现在默认启用。早期版本中使用的 enable-step-actions 标志不再使用,并将在以后的发行版本中删除。
  • 在这个版本中,Pipeline 调度程序可以正确地评估 fan-out/fan-in 模式的结果引用。在以前的版本中,当列表任务依赖于结果 refs 时,此类管道可能会失败。
  • 在这个版本中,TektonConfig CR 中的 remember-ok-to-test 值默认设置为 false,以减少在测试环境中运行不可信代码的风险。

1.2.1.5. Tekton Cache

  • 在这个版本中,StepAction 功能中的参数命名约定是统一的,以实现一致性。现在,cache-fetchcache-upload 步骤操作的级级与 git-clone 的方法一致。
  • 在这个版本中,tekton-caches 工具除现有的 OCI registry 支持外,tekton-caches 工具也可以推送到 Google Cloud Storage (GCS)存储桶并检索。要启用此功能,请将缓存后端设置为 gs://bucket/path URI。
  • 在这个版本中,您可以将缓存存档存储在任何 S3 兼容存储桶中,包括内部解决方案,如 MinIO 或云供应商,如 AWS。要使用这个功能,请指定 URL,如 s3://my-bucket/cache 作为缓存后端。
  • 在这个版本中,缓存存档使用 Gzip 压缩,然后再上传。这降低了对象存储成本并加快数据传输,特别是对于 Go 模块等大型缓存。
  • 在这个版本中,恢复的缓存默认为 0777 权限,确保可执行脚本和其他权限敏感的文件可以正常工作。在以前的版本中,恢复的文件默认为 0600 权限,这可能会阻止脚本按预期运行。
  • 在这个版本中,使用 Workload Identity Federation (WIF)在 Google Kubernetes Engine (GKE)上运行,不再需要将密钥文件嵌入到任务中。现在,您可以挂载投射卷令牌,消除了对长期凭证的需求并提高安全性。
  • 在这个版本中,GCS 和 S3 后端的代码路径使用 gocloud.dev 库统一。此抽象简化了额外的存储提供程序的支持,如 Azure Blob 存储或本地文件系统。
  • 在这个版本中,fetch 命令进行了改进,以便在新工作区中不存在目标文件夹时自动创建它。在以前的版本中,在这种情况下,命令会失败,需要您手动创建目录。
  • 在这个版本中,registry 身份验证不再仅限于 /tekton/home/.docker/config.json 默认路径。现在,您可以使用 Task 资源中的 dockerConfig 参数挂载任何 Docker 配置文件并指定其位置。但是,DOCKER_CONFIG 的自定义位置必须包含有效的 config.json 文件。

    在任务中启用 dockerConfig 参数的示例

    apiVersion: tekton.dev/v1
    kind: Task
    metadata:
      name: build-task
    spec:
      workspaces:
        - name: source
        - name: cred
      params:
        - name: cachePatterns
          default: $(params.cachePatterns)
      steps:
        - name: cache-fetch
          ref:
            resolver: cluster
            params:
              - name: name
                value: cache-fetch
              - name: namespace
                value: openshift-pipelines
              - name: kind
                value: stepaction
          params:
            - name: PATTERNS
              value: $(params.cachePatterns)
            - name: SOURCE
              value: oci://$(params.registry)/cache-go:{{hash}}
            - name: CACHE_PATH
              value: $(workspaces.source.path)/cache
            - name: WORKING_DIR
              value: $(workspaces.source.path)/repo
            - name: DOCKER_CONFIG
              value: $(workspaces.cred.path)/
        - name: cache-upload
          ref:
            resolver: cluster
            params:
              - name: name
                value: cache-upload
              - name: namespace
                value: openshift-pipelines
              - name: kind
                value: stepaction
          params:
            - name: PATTERNS
              value: $(params.cachePatterns)
            - name: TARGET
              value: oci://$(params.registry)/cache-go:{{hash}}
            - name: CACHE_PATH
              value: $(workspaces.source.path)/cache
            - name: WORKING_DIR
              value: $(workspaces.source.path)/repo
            - name: DOCKER_CONFIG
              value: $(workspaces.cred.path)/
    			...
    # ...
    Copy to Clipboard Toggle word wrap

1.2.1.6. Tekton Chains

  • 在这个版本中,Tekton Chains 控制器使用 StatefulSet ordinals 来改进高可用性和工作负载分布,作为领导选举机制的替代选择。

    Chains 控制器启用 StatefulSet ordinals 示例

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonChains
    metadata:
      name: chain
    spec:
      chain:
        performance:
          disable-ha: false
          buckets: 4
          replicas: 4
          statefulset-ordinals: true
    Copy to Clipboard Toggle word wrap

    重要

    对高可用性使用 StatefulSet 或dinals 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

    有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

1.2.1.7. Pipelines 作为代码(Pipelines as Code)

  • 在这个版本中,Pipelines as Code 引入了 pipelines_as_code_git_provider_api_request_count 指标。此指标跟踪 Pipelines as Code 发出的 API 请求数到 Git 供应商,以响应事件。
  • 在这个版本中,TektonConfig 自定义资源支持两个新字段,为在 Pipelines 全局中运行的管道启用 cancel-in-progress 功能:

    • enable-cancel-in-progress-on-pull-requests
    • enable-cancel-in-progress-on-push

      当设置为 true 时,这些字段会在有新提交时自动取消由拉取请求或推送事件触发的任何 in-progress 管道运行。默认情况下,这两个字段都设为 false。

      注意

      如果 PipelineRun 资源包含 pipelinesascode.tekton.dev/cancel-in-progress 注解,它会覆盖对应的 TektonConfig 设置。

      使用 TektonConfig CR 启用 auto-cancel 在拉取请求和推送事件时启用

      apiVersion: operator.tekton.dev/v1alpha1
      kind: TektonConfig
      metadata:
        name: config
      # ...
      platforms:
          openshift:
            pipelinesAsCode:
              # ...
              settings:
                # ...
                enable-cancel-in-progress-on-pull-requests: "false"
                enable-cancel-in-progress-on-push: "false"
              # ...
      Copy to Clipboard Toggle word wrap

  • 在这个版本中,Pipelines as Code 支持 git_tag 动态变量。此变量在标签推送事件期间使用,并反映 Git 标签的值。例如,如果标签 v1.0 推送到 Repository CR,则 git_tag 变量包含值 v1.0

    git_tag 配置示例

    ---
    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      name: pull-pr-3
      annotations:
        pipelinesascode.tekton.dev/on-event: ["push"]
        pipelinesascode.tekton.dev/on-target-branch: ["refs/tags/*"]
    spec:
      params:
        - name: tag
          value: "{{ git_tag }}"
      pipelineSpec:
        tasks:
            # ...
        tasks:
            ...
            taskSpec:
              steps:
                ...
                  script: |
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,TektonConfig CR 包含 skip-push-event-for-pr-commits 字段。启用后,如果提交 SHA 包含在 open pull 请求中,Pipelines as Code 不会触发管道运行用于推送事件。这可防止为同一提交运行重复的管道。默认情况下,此字段设置为 true

    TektonConfig中的 skip-push-event-for-pr-commits 配置示例

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    # ...
    platforms:
      openshift:
        pipelinesAsCode:
          additionalPACControllers:
            <controllerName>:
              enable: true
              configMapName:
              secretName:
              settings:
          enable: true
            # ...
            settings:
              # ...
              hub-url: https://api.hub.tekton.dev/v1
              skip-push-event-for-pr-commits: "true"
              remote-tasks: "true"
              secret-auto-create: "true"
              # ...
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,OpenAPI 模式被集成到 Repository CR 的 Pipelines as Code 中。此模式为 Repository CR 编写启用 IDE 自动完成功能,并通过 oc explain 命令允许存储库解释。
  • 在这个版本中,当您在存储库中设置 on-cel-expressionon-eventon-target-branch 注解时,on-cel-expression 注解会具有优先权。本例中忽略 on-eventon-target-branch 注解。若要提醒用户,将生成一个警告日志和 Kubernetes 事件来指示此行为。

1.2.1.8. 基于事件的 Pruner

重要

Pruner 组件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

  • 在这个版本中,Prun er 组件在 Red Hat OpenShift Pipelines 中自动清理 PipelineRunTaskRun 资源。它支持以下功能:

    • 基于时间的修剪(TTL)。此功能在指定持续时间后自动删除已完成的 PipelineRunTaskRun 资源。这通过 ttlSecondsAfterFinished 设置进行控制。
    • 基于历史记录的修剪。这个功能保留有限数量的成功和失败的运行。它通过以下参数进行配置:

      • successfulHistoryLimit
      • failedHistoryLimit
      • historyLimit
    • 灵活的配置级别。有两个可配置的级别:

      • 全球.这个选项适用于所有命名空间,但前缀为 kube-openshift- 除外。
      • 命名空间。这个选项适用于特定命名空间中的所有资源

        注意

        在这个发行版本中,只有 GlobalNamespace 配置可用。

  • 在这个版本中,您可以通过将 spec.tektonpruner.disabled 设置为 truefalse,在 TektonConfig CR 中禁用或启用基于事件的修剪器。TektonConfig CR 尚不支持细粒度配置,且必须通过配置映射进行管理。

    注意

    在启用基于事件的修剪器之前,必须禁用基于作业的现有修剪器。

1.2.2. 可能会造成问题的更改

  • 在这个版本中,hub clustertask 命令已从 CLI 中删除,因为 Tekton Hub 上不再提供 ClusterTask 功能。
  • 在这个版本中,删除了 ClusterTask 对象的支持。因此,tkn clustertasktkn task create 命令不再可用。
  • 在这个版本中,opc results list 命令被 opc results results list 命令替代。
  • 在这个版本中,disable-affinity-assistant 标志会从 Red Hat OpenShift Pipelines Operator 中删除。此标志在 Red Hat OpenShift Pipelines v1.13 中已弃用,且在 Red Hat OpenShift Pipelines v1.19 中没有任何影响。在 'TektonConfig 自定义资源(CR)中仍可使用 disable-affinity-assistant 标志来 向后兼容,但它不会影响 Red Hat OpenShift Pipelines Operator 的行为。要保持相同的行为,请将 coschedule 功能标记设置为 disabled

1.2.3. 已知问题

  • 目前,基于事件的修剪器不会严格验证 tekton-pruner-default-spec 配置映射的内容。如果提供了无效的配置键或不正确的字段名称的值,则忽略配置。因此,pruner 可能会回退到默认行为,或跳过修剪。

1.2.4. 修复的问题

  • 在此次更新之前,s2i-java 任务失败并显示错误消息 /usr/libexec/s2i/assemble: No such file or directory。这个错误的原因是脚本路径引用不正确。在这个版本中,s2i-java 任务的默认脚本路径被修改为 /usr/local/s2i。其他 S2I 任务,如 Go 或 .NET 的任务,继续使用 /usr/libexec/s2i/assemble 脚本路径。
  • 在此次更新之前,PipelineRun 中的 YAML 语法错误仅在日志和 Kubernetes 事件中报告,从而导致它们难以检测和故障排除。在这个版本中,当 PipelineRun YAML 验证错误发生时,Pipelines as Code 注释会在拉取请求中直接评论。这提高了错误可见性,并简化了 GitHub、GitLab 和 Gitea 供应商上的故障排除。
  • 在此次更新之前,在 GitLab 集成中,Pipelines as Code 会在每个 PipelineRun 的开始和结尾的合并请求中发布注释。当触发多个 pipelineruns 时,此行为会导致在合并请求中出现过量注释。在这个版本中,您可以通过在 Repository 自定义资源(CR)中将 disable_all 设置为 true 来禁用所有 GitLab 注释。

    启用 Repository CR 示例

    ---
    apiVersion: "pipelinesascode.tekton.dev/v1alpha1"
    kind: Repository
    metadata:
      name: test-pac
    spec:
      # other fields
      settings:
        gitlab:
          comment_strategy: "disable_all"
    Copy to Clipboard Toggle word wrap

  • 在此次更新之前,从 Amazon Web Services (AWS) S3 存储桶检索的日志会以随机顺序显示,从而导致调试和故障排除。在这个版本中,AWS S3 的日志会被正确排序,改进了可读性和整体调试体验。
  • 在此次更新之前,Pipelines as Code 需要 Repository CR 中定义的所有自定义参数,使其包含预定义的值。在这个版本中,可以在 Repository CR 中指定默认值的情况下定义自定义参数。这个更改可让通过 Webhook 有效负载提供值并保持向后兼容性。
  • 在此次更新之前,当使用 github-push ClusterTriggerBinding 时,git-clone 命令可能会因为 HTTP 403 错误而失败。出现这个问题的原因是 $(body.repository.url) 参数指向 GitHub API URL,而不是有效的 Git 克隆 URL。在这个版本中,新的 git-repo-clone-url 参数使用 $(body.repository.html_url) 来确保克隆使用正确的存储库 URL。
  • 在此次更新之前,buildah 任务无法处理构建参数,其中包含与集群解析器一起使用的空格。此问题会影响用户从已弃用的 ClusterTask 自定义资源(CR)中迁移。在这个版本中,buildah 任务中的 BUILD_ARGS 参数可以正确地支持空格的参数,例如 EXAMPLE="abc def",恢复与之前功能的兼容性。
  • 在此次更新之前,OpenShift Container Platform Web 控制台中的 PipelineRun 详情页面无法正确加载,从而导致用户查看管道运行详情。在这个版本中,web 控制台可以正确地显示 PipelineRun 信息。
  • 在此次更新之前,因为升级到 PatternFly 6 并删除已弃用的 co- class,所以控制台插件会过期。这会导致 OpenShift Container Platform Web 控制台的 Pipelines 部分中的对齐和影响问题。在这个版本中,控制台插件会更新,以使用适当的 PatternFly 等效类,确保与当前的 OpenShift Container Platform Web 控制台设计标准保持一致和视觉集成
  • 在此次更新之前,OpenShift Pipelines 控制台插件因为 OpenShift Pipelines 1.18 中的默认 Tekton Results TLS secret 创建问题而失败。这会导致控制台无法访问,使管道详情无法查看。在这个版本中,OpenShift Pipelines 1.18 中跳过默认的 Tekton Results TLS secret 创建,从而解决了这个问题。
  • 在此次更新之前,OpenShift Container Platform Web 控制台中的 PipelineRun 链接错误地指向已弃用的 v1beta1 Red Hat OpenShift Pipelines API 而不是当前的 v1 API。在这个版本中,链接指向适当的 v1 API。
  • 在此次更新之前,Red Hat OpenShift Pipelines 和 Tekton Results 会错误地显示之前 PipelineRun 资源中共享相同名称的 TaskRun 资源。这会导致与当前执行关联的 TaskRun 资源混淆。在这个版本中,Tekton Results 可以正确地隔离,仅显示与当前 PipelineRun 资源关联的 TaskRun 资源,从而防止存档和活跃的执行数据混合。
  • 在此次更新之前,因为 GitOps 注释被错误地关联了管道运行,所以端到端(E2E)测试不稳定。此行为会导致在 CI/CD 管道中出现间歇性测试失败并减少可靠性。在这个版本中,GitOps 注释不再与取消的管道运行混合,从而导致稳定和可预测的 E2E 测试。
  • 在此次更新之前,tekton-caches tarit 工具在压缩缓存的目录时不会保留文件权限。因此,可执行文件和脚本有时会在解包后停止工作。这会导致问题,特别是当不同用户或 SELinux 强制基础镜像使用工件时。在这个版本中,在缓存和文件在所有用户环境中都可以正确保留文件权限。
  • 在此次更新之前,当 TaskRun 因为 ImagePullBackOff 错误而失败时,PipelineRun 日志片断会在 OpenShift Container Platform web 控制台的 Pipelines 部分的 Pipelines 部分切换后显示不明确的信息,如 "pods not found"。在这个版本中,错误包括明确的错误消息,如 TaskRunImagePullFailed无法拉取镜像,以改进故障排除体验。
  • 在此次更新之前,OpenShift Container Platform Web 控制台中的 Red Hat OpenShift Pipelines Start 接口中的某些元素(如 deployment-name,Hr,Min, 和 Sec )始终以英语显示,无论用户的区域设置是什么。在这个版本中,所有接口元素都完全本地化,现在会根据用户的所选区域显示。
  • 在此次更新之前,Tekton 修剪器作业会在基于 Helm 的安装过程中遇到 ImagePullBackOff 错误,因为镜像标签中缺少 SHA256 摘要。在这个版本中,镜像标签包含所需的 SHA256 摘要,且不再发生错误。
  • 在此次更新之前,在从 Bitbucket 数据中心推送事件时,Pipelines as Code 控制器可能会崩溃,并带有 index out of range 错误。当事件有效负载中的更改数组为空时,会发生此行为。在这个版本中,Pipelines as Code 可以安全地处理空更改数组,从而防止控制器崩溃。
  • 在此次更新之前,为拉取请求添加标签会意外地触发 PipelineRun。在这个版本中,这个问题已解决。
  • 在此次更新之前,关闭拉取请求会取消持续的 PipelineRun,即使未设置 cancel-in-progress 注解。在这个版本中,仅在配置 cancel-in-progress 注解时,管道运行仅在拉取请求 closure 上取消。
  • 在此次更新之前,Pipelines 中的 GitLab 集成会出现 API 调用失败,从而导致 API URL 不正确。在这个版本中,通过引入 URL 验证来解决这个问题,这可以防止此类错误配置并确保成功 API 通信。
  • 在此次更新之前,Pipelines as Code 不会取消使用 generateName 字段创建的 PipelineRun,即使设置了 cancel-in-progress 注解。在这个版本中,Pipelines as Code 可以正确地取消包含 generateName 字段的 in-progress PipelineRun
  • 在此次更新之前,当在 GitLab 中配置被验证时,Pipelines as Code 从 Git 仓库检索不正确的 PipelineRun 模板。在这个版本中,Pipelines as Code 可以正确地识别并检索 GitLab 验证设置中的预期模板。
  • 在此次更新之前,如果您在推送提交注释中使用 /ok-to-test GitOps 命令,它会触发管道运行。在这个版本中,/ok-to-test 命令不会在拉取请求外使用时触发管道运行。
  • 在此次更新之前,当 Artifact Hub 解析器引用 StepAction 定义时,TaskRunPipelineRun 资源会失败,并带有 kind param must be task 或 pipeline 错误。这是因为 StepAction 定义没有识别为有效的资源类型。在这个版本中,Artifact Hub 解析器支持 StepAction 引用,允许用户在其任务和管道中包含远程步骤操作。
  • 在此次更新之前,PipelineRun 会失败,并显示错误 为 volumeMount 创建 subPath 目录,即使 OpenShift Container Platform 最终会恢复并创建所需的 pod。这会导致不必要的 PipelineRun 失败且用户体验不佳,通常需要手动重启。在这个版本中,PipelineRun 实现一个宽限期和重试机制,用于 subPath 目录创建错误。这允许 OpenShift Container Platform 时间自动解决问题,从而减少错误故障并改进可靠性。
  • 在此次更新之前,Tekton Results API 服务器会在为不存在的 TaskRunPipelineRun 进行日志查询时遇到错误。在这个版本中,这个问题已被解决。
  • 在此次更新之前,用户必须将 CLI 嵌套在单独的 Task 资源中,才能备份或恢复构建缓存。在这个版本中,StepAction 定义支持 fetchupload,因此您可以使用任何 TaskPipeline 中的单个步骤处理缓存操作。
  • 在此次更新之前,因为 TLS 错误,将缓存推送到带有自签名证书的 registry 会失败。在这个版本中,CLI 和 Task 资源支持 new- insecure 标志,它可启用这些推送,并更轻松地用于 air-gapped 开发集群和本地 registry。
  • 在此次更新之前,在 GitLab 中,当 Pipelines as Code (如更新 MR 描述或修改 reviewers)中发生非代码更改时,为 Merge Requests (MR)运行的管道运行会自动重新触发。这个行为会导致不必要的管道执行。在这个版本中,这个问题已被解决,管道运行只由新提交触发。
  • 在此次更新之前,在 Pipelines as Code 中,在拉取请求合并事件时不会触发带有 on-path-change 注解的 push PipelineRun,即使合并的拉取请求修改了指定路径。在这个版本中,通过拉取请求合并引入相关路径更改时,这个问题可以通过确保正确触发管道。
  • 在此次更新之前,Pipelines as Code 会尝试解析和验证 .tekton 目录中的每个 YAML 文件,从而导致不相关或无效的非Tekton 资源出现假错误。在这个版本中,Pipelines as Code 只验证明确定义的 Tekton 资源,从而减少拉取请求反馈并改进 CI 验证的准确性。
  • 在此次更新之前,使用非域限定终结器名称,从而导致 Pipelines 中的警告作为 Kubernetes API 中的代码监视器。现在,使用与 Kubernetes 约定一致的域限定程序名称解决了这个问题。
  • 在此次更新之前,当验证带有无效或过期令牌的 GitHub Webhook secret 时,Pipelines as Code 控制器会意外终止。在这个版本中,这个问题已被解决。控制器会记录清晰的错误消息,并继续运行,确保 Webhook 功能和控制器可用性不会中断。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat