×

您可以使用tkn pac CLI 工具来控制流水线即代码。您还可以使用TektonConfig自定义资源配置流水线即代码日志记录,并使用oc命令查看流水线即代码日志。

流水线即代码命令参考

tkn pac CLI 工具提供以下功能:

  • 引导流水线即代码的安装和配置。

  • 创建一个新的流水线即代码仓库。

  • 列出所有流水线即代码仓库。

  • 描述流水线即代码仓库和相关的运行。

  • 生成一个简单的流水线运行以开始使用。

  • 解析流水线运行,就好像它是流水线即代码执行的一样。

您可以使用与这些功能对应的命令进行测试和实验,这样您就不必更改包含应用程序源代码的 Git 仓库。

基本语法

$ tkn pac [command or options] [arguments]

全局选项

$ tkn pac --help

实用程序命令

bootstrap

表 1. 引导流水线即代码的安装和配置
命令 描述

tkn pac bootstrap

为 Git 仓库托管服务提供商(如 GitHub 和 GitHub Enterprise)安装和配置流水线即代码。

tkn pac bootstrap --nightly

安装流水线即代码的夜间构建版本。

tkn pac bootstrap --route-url <public_url_to_ingress_spec>

覆盖 OpenShift 路由 URL。

默认情况下,tkn pac bootstrap 会检测 OpenShift 路由,该路由会自动与流水线即代码控制器服务关联。

如果您没有 OpenShift Container Platform 集群,它会提示您输入指向入口端点的公共 URL。

tkn pac bootstrap github-app

openshift-pipelines命名空间中创建 GitHub 应用程序和密钥。

repository

表 2. 管理流水线即代码仓库
命令 描述

tkn pac create repository

根据流水线运行模板创建一个新的流水线即代码仓库和命名空间。

tkn pac list

列出所有流水线即代码仓库并显示关联运行的最后状态。

tkn pac repo describe

描述流水线即代码仓库和相关的运行。

generate

表 3. 使用流水线即代码生成流水线运行
命令 描述

tkn pac generate

生成一个简单的流水线运行。

从包含源代码的目录执行时,它会自动检测当前 Git 信息。

此外,它使用基本语言检测功能并根据语言添加额外任务。

例如,如果它在仓库根目录检测到setup.py文件,则会自动将pylint 任务添加到生成的流水线运行中。

resolve

表 4. 使用流水线即代码解析和执行流水线运行
命令 描述

tkn pac resolve

执行流水线运行,就好像它由服务上的流水线即代码拥有。

tkn pac resolve -f .tekton/pull-request.yaml | oc apply -f -

显示使用.tekton/pull-request.yaml 中模板的实时流水线运行状态。

结合在本地机器上运行的 Kubernetes 安装,您可以观察流水线运行,而无需生成新的提交。

如果您从源代码仓库运行该命令,它会尝试检测当前 Git 信息并自动解析参数,例如当前版本或分支。

tkn pac resolve -f .tekton/pr.yaml -p revision=main -p repo_name=<repository_name>

通过覆盖从 Git 仓库派生的默认参数值来执行流水线运行。

-f 选项还可以接受目录路径,并在该目录中的所有 .yaml.yml 文件上应用 tkn pac resolve 命令。您也可以在同一个命令中多次使用 -f 标志。

您可以使用 -p 选项指定参数值来覆盖从 Git 仓库收集的默认信息。例如,您可以使用 Git 分支作为版本,并使用不同的仓库名称。

配置 Pipelines as Code 日志

您可以通过编辑TektonConfig自定义资源 (CR) 中的pac-config-logging配置映射来配置 Pipelines as Code 日志。

前提条件
  • 您已在集群上安装了 Pipelines as Code。

步骤
  1. 在 Web 控制台的**管理员**视角中,转到**管理** → **自定义资源定义**。

  2. 使用**按名称搜索**字段搜索tektonconfigs.operator.tekton.dev自定义资源定义 (CRD),然后单击**TektonConfig**以查看 CRD 的**详细信息**页面。

  3. 单击**实例**选项卡。

  4. 单击**config**实例以查看TektonConfig CR 的详细信息。

  5. 单击**YAML**选项卡。

  6. 根据您的需求编辑.options.configMaps.pac-config-logging.data参数下的loglevel.字段。

    将 Pipelines as Code 日志级别字段设置为warn的示例TektonConfig CR
    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      platforms:
        openshift:
          pipelinesAsCode:
            options:
              configMaps:
                pac-config-logging:
                  data:
                    loglevel.pac-watcher: warn (1)
                    loglevel.pipelines-as-code-webhook: warn (2)
                    loglevel.pipelinesascode: warn (3)
                    zap-logger-config: |
                      {
                        "level": "info",
                        "development": false,
                        "sampling": {
                          "initial": 100,
                          "thereafter": 100
                        },
                        "outputPaths": ["stdout"],
                        "errorOutputPaths": ["stderr"],
                        "encoding": "json",
                        "encoderConfig": {
                          "timeKey": "ts",
                          "levelKey": "level",
                          "nameKey": "logger",
                          "callerKey": "caller",
                          "messageKey": "msg",
                          "stacktraceKey": "stacktrace",
                          "lineEnding": "",
                          "levelEncoder": "",
                          "timeEncoder": "iso8601",
                          "durationEncoder": "",
                          "callerEncoder": ""
                        }
                      }
    1 pipelines-as-code-watcher组件的日志级别。
    2 pipelines-as-code-webhook组件的日志级别。
    3 pipelines-as-code-controller组件的日志级别。
  7. 可选:通过更改.options.deployments字段下每个组件的.env.value来为 Pipelines as Code 组件创建自定义日志配置映射。以下示例显示了使用名为custom-pac-config-logging的自定义配置映射的配置。

    使用 Pipelines as Code 自定义日志配置映射的示例TektonConfig CR
    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      platforms:
        openshift:
          pipelinesAsCode:
            enable: true
            options:
              configMaps:
                custom-pac-config-logging:
                  data:
                    loglevel.pac-watcher: warn
                    loglevel.pipelines-as-code-webhook: warn
                    loglevel.pipelinesascode: warn
                    zap-logger-config: |
                      {
                        "level": "info",
                        "development": false,
                        "sampling": {
                          "initial": 100,
                          "thereafter": 100
                        },
                        "outputPaths": ["stdout"],
                        "errorOutputPaths": ["stderr"],
                        "encoding": "json",
                        "encoderConfig": {
                          "timeKey": "ts",
                          "levelKey": "level",
                          "nameKey": "logger",
                          "callerKey": "caller",
                          "messageKey": "msg",
                          "stacktraceKey": "stacktrace",
                          "lineEnding": "",
                          "levelEncoder": "",
                          "timeEncoder": "iso8601",
                          "durationEncoder": "",
                          "callerEncoder": ""
                        }
                      }
              deployments:
                pipelines-as-code-controller:
                  spec:
                    template:
                      spec:
                        containers:
                        - name: pac-controller
                          env:
                          - name: CONFIG_LOGGING_NAME
                            value: custom-pac-config-logging
                pipelines-as-code-watcher:
                  spec:
                    template:
                      spec:
                        containers:
                        - name: pac-watcher
                          env:
                          - name: CONFIG_LOGGING_NAME
                            value: custom-pac-config-logging
                pipelines-as-code-webhook:
                  spec:
                    template:
                      spec:
                        containers:
                        - name: pac-webhook
                          env:
                          - name: CONFIG_LOGGING_NAME
                            value: custom-pac-config-logging

按命名空间拆分 Pipelines as Code 日志

Pipelines as Code 日志包含命名空间信息,以便可以按特定命名空间过滤日志或拆分日志。例如,要查看与mynamespace命名空间相关的 Pipelines as Code 日志,请输入以下命令

$ oc logs pipelines-as-code-controller-<unique-id> -n openshift-pipelines | grep mynamespace (1)
1 pipelines-as-code-controller-<unique-id>替换为 Pipelines as Code 控制器名称。