• Русский
  • Вывод 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 читает результат Task с точным именем overview-markdown.
    • Любой Markdown, записанный в этот результат, будет отображён во вкладке Overview запуска.
    • В Pipeline каждый Task может создавать свой собственный overview-markdown, и вкладка Overview покажет их сгруппированными по Task.
    • Вам не нужно записывать результат на уровне Pipeline для вкладки Overview; достаточно записать в overview-markdown Task.

    Ограничения: Значение результата одного Task по умолчанию ограничено 4 КБ. Держите сводки краткими; при необходимости добавляйте ссылки на более крупные артефакты. Если нужен более сложный макет, смотрите Customize Task Overview with Templates. Для настройки лимита размера результата смотрите Result Limit Exceeded When Writing Tekton Task Results.

    Шаги

    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
            # Записать Markdown в путь результата.
            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 КБ. Для длинных отчётов:

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

    Для настройки лимита размера результата смотрите Result Limit Exceeded When Writing Tekton Task Results.

    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 КБ. Для настройки лимита смотрите Result Limit Exceeded When Writing Tekton Task Results.

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

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