• Русский
  • Вывод Markdown на вкладку Overview (PipelineRuns и TaskRuns)

    В этом руководстве показано, как отображать человекочитаемые отчеты на вкладке Overview как для PipelineRuns, так и для TaskRuns, записывая Markdown в результат Task с именем overview-markdown.

    Предварительные требования

    • Tekton Pipelines установлен в вашем кластере.
    • Необязательно, но рекомендуется: развернут Tekton Results, чтобы ваши сводки оставались доступными для запросов даже после того, как старые TaskRuns/PipelineRuns будут удалены сборщиком мусора.

    Зачем нужен Tekton Results? Если в вашем кластере запуски интенсивно очищаются, объекты TaskRun/PipelineRun в кластере (и их результаты) могут исчезать. Tekton Results предоставляет центральное хранилище, чтобы исторические отчеты Overview оставались доступными.

    Как это работает

    • UI читает result задачи с точным именем overview-markdown.
    • Любой Markdown, который вы запишете в этот файл результата, будет отображаться на вкладке Overview соответствующего запуска.
    • В Pipeline каждая Task может формировать свой собственный overview-markdown, а вкладка Overview показывает их сгруппированными по Task.
    • Вам не нужно записывать результат на уровне Pipeline для вкладки Overview; вместо этого записывайте в overview-markdown Task.

    Ограничения: Значение результата одной Task по умолчанию ограничено 4 KB. Делайте сводки краткими; при необходимости давайте ссылку на более крупные артефакты. Если вам нужен более сложный макет, можно обратиться к Настройка обзора Task с помощью шаблонов. Если вы хотите настроить ограничение размера результата, обратитесь к Превышен лимит результата при записи результатов Tekton Task.

    Шаги

    1. Определите результат Task с именем overview-markdown

    Создайте (или обновите) свою Task так, чтобы она объявляла строковый результат с точно таким именем.

    В одном из шагов Task запишите Markdown в $(results.overview-markdown.path).

    Пример Task (замените <image> при необходимости):

    apiVersion: tekton.dev/v1
    kind: Task
    metadata:
      name: demo-markdown-overview
    spec:
      results:
        - name: overview-markdown
          description: "Markdown content displayed in the Overview tab."
          type: string
      steps:
        - name: write-markdown
          image: <image>
          script: |
            #!/bin/bash
            # Write Markdown to the result path.
            cat >"$(results.overview-markdown.path)" <<'EOF'
            # Demo Overview
    
            **Status:** ✅ Success
    
            **Artifacts**
            - Image: `ghcr.io/example/app:v1.2.3`
            - SBOM: `sbom.spdx.json`
    
            **Notes**
            - Lint passed.
            - 0 critical vulnerabilities found.
    
            _Generated by **demo-markdown-overview**._
            EOF

    Делайте Markdown коротким и по существу. Значение результата одной Task по умолчанию ограничено 4 KB. Для длинных отчетов:

    • Загрузите полный артефакт (например, HTML, JSON, PDF) в ваше хранилище или репозиторий артефактов.
    • Укажите ссылку в Markdown (например, [Full report](https://artifact.example.com/run/123/report.html)).

    Если вы хотите настроить ограничение размера результата, обратитесь к Превышен лимит результата при записи результатов Tekton Task.

    2. Запустите Task

    Создайте TaskRun, ссылающийся на вашу Task, и дождитесь его завершения.

    Пример TaskRun:

    apiVersion: tekton.dev/v1
    kind: TaskRun
    metadata:
      name: demo-markdown-overview-run
    spec:
      taskRef:
        name: demo-markdown-overview

    3. Просмотрите обзор

    После завершения TaskRun откройте вкладку Overview TaskRun, чтобы увидеть отрендеренный Markdown.

    Если ничего не отображается, проверьте логи шага, чтобы убедиться, что файл был записан в $(results.overview-markdown.path) и что имя результата указано правильно.

    4. (Необязательно) Используйте это в Pipelines

    В Pipeline каждая Task может выводить свой собственный overview-markdown. Вкладка Overview будет показывать отдельные разделы для каждой Task (например, lint, scan, build).

    Вам не нужно записывать результаты Pipeline для этой функции. На вкладке Overview отображаются только результаты Task.

    Пример Pipeline (замените <lint-image> <scan-image> при необходимости):

    apiVersion: tekton.dev/v1
    kind: Pipeline
    metadata:
      name: pipeline-with-summaries
    spec:
      tasks:
        - name: lint
          taskSpec:
            results:
              - name: overview-markdown
                description: "Lint overview"
                type: string
            steps:
              - name: run-lint
                image: <lint-image>
                script: |
                  #!/bin/bash
                  cat >"$(results.overview-markdown.path)" <<'EOF'
                  ## Lint Overview
    
                  - Files checked: **128**
                  - Issues: **0**
                  - Tool: `golangci-lint 1.57.2`
                  EOF
    
        - name: scan
          runAfter: [lint]
          taskSpec:
            results:
              - name: overview-markdown
                description: "Security scan overview"
                type: string
            steps:
              - name: run-scan
                image: <scan-image>
                script: |
                  #!/bin/bash
                  cat >"$(results.overview-markdown.path)" <<'EOF'
                  ## Security Scan
    
                  **Findings**
                  - Critical: **0**
                  - High: **1** (CVE-2025-XXXX)
                  - Medium: **3**
                  EOF

    Пример PipelineRun:

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      name: pipeline-with-summaries-run
    spec:
      pipelineRef:
        name: pipeline-with-summaries

    Откройте вкладку Overview PipelineRun. Вы должны увидеть два раздела Markdown: lint и scan.

    Рекомендации

    • Важна точность имени: результат должен называться overview-markdown (с учетом регистра).
    • Записывайте в нужное место: всегда записывайте в $(results.overview-markdown.path). Результат на уровне Pipeline не нужен.
    • Ограничение размера: значение результата одной Task по умолчанию ограничено 4 KB. Если вы хотите настроить ограничение размера результата, обратитесь к Превышен лимит результата при записи результатов Tekton Task.

    Устранение неполадок

    • На вкладке Overview ничего не отображается
      • Проверьте имя результата: оно должно быть точно overview-markdown.
      • Убедитесь, что шаг записал данные в $(results.overview-markdown.path).
      • Убедитесь, что ваша версия UI поддерживает эту функцию.
    • В логах Pod отображается overflow сообщения о завершении