• Русский
  • Быстрый старт

    Этот документ помогает новым пользователям быстро понять и использовать Tekton Pipelines для создания простого CI/CD рабочего процесса.

    Введение

    Tekton — это open-source облачное решение для CI/CD (непрерывной интеграции и непрерывной доставки/развертывания). Оно предоставляет Kubernetes-нативные строительные блоки для создания контейнеризированных, стандартизированных и переносимых CI/CD пайплайнов.

    Сценарии использования

    • Создание автоматизированных рабочих процессов сборки, тестирования и развертывания
    • Запуск CI/CD пайплайнов в Kubernetes-нативном стиле
    • Сборка контейнерных образов без привилегированного доступа
    • Внедрение стандартизированных процессов развертывания в нескольких облачных провайдерах
    • Создание переиспользуемых компонентов для ваших CI/CD систем

    Оценочное время чтения

    15-20 минут

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

    • Kubernetes кластер (для локального тестирования можно использовать minikube)
    • Установленные Tekton Pipelines в вашем кластере
    • Установленный и настроенный kubectl для доступа к кластеру
    • Установленный Tekton CLI (tkn) для удобного взаимодействия с ресурсами Tekton

    Обзор процесса

    ШагОперацияОписание
    1Создать Task "Hello World"Создать базовый Task, который выводит приветственное сообщение
    2Создать Task "Goodbye"Создать второй Task, принимающий параметры
    3Создать PipelineСоздать Pipeline, который объединяет оба Task последовательно
    4Запустить PipelineВыполнить Pipeline и просмотреть результаты
    5ОчиститьУдалить созданные ресурсы

    Пошаговые инструкции

    Шаг 1: Создание Task "Hello World"

    Task — это базовый строительный блок Tekton Pipeline. Он состоит из серии шагов, которые выполняются последовательно в контейнере.

    1. Создайте файл с именем hello-task.yaml со следующим содержимым:

      apiVersion: tekton.dev/v1
      kind: Task
      metadata:
        name: hello
      spec:
        steps:
          - name: echo
            image: ubuntu
            command:
              - echo
            args:
              - "Hello World!"
      TIP

      Пожалуйста, замените образ ubuntu на доступный образ, то же самое ниже.

    2. Примените Task в вашем кластере:

      kubectl apply -f hello-task.yaml
    3. Объект TaskRun создаёт экземпляр и выполняет этот Task. Создайте другой файл с именем hello-world-run.yaml со следующим содержимым:

      apiVersion: tekton.dev/v1
      kind: TaskRun
      metadata:
        name: hello-task-run
      spec:
        taskRef:
          name: hello
    4. Примените TaskRun в вашем кластере:

      kubectl apply -f hello-world-run.yaml
    5. Отслеживайте выполнение TaskRun:

      kubectl get taskrun hello-task-run

      Вы должны увидеть вывод, похожий на:

      NAME            SUCCEEDED   REASON      STARTTIME   COMPLETIONTIME
      hello-task-run  True        Succeeded   1m         2m
    6. Посмотрите логи:

      kubectl logs --selector=tekton.dev/taskRun=hello-task-run

      Вы должны увидеть вывод, похожий на:

      Hello World!

    Шаг 2: Создание Task "Goodbye" с параметрами

    Теперь создадим второй Task, который принимает параметры для большей гибкости.

    1. Создайте файл с именем goodbye-task.yaml со следующим содержимым:

      apiVersion: tekton.dev/v1
      kind: Task
      metadata:
        name: goodbye
      spec:
        params:
          - name: username
            type: string
            description: Имя пользователя, которому говорят «прощай»
            default: "World"
        steps:
          - name: goodbye
            image: ubuntu
            command:
              - echo
            args:
              - "Goodbye $(params.username)!"
    2. Примените Task в вашем кластере:

      kubectl apply -f goodbye-task.yaml

    Шаг 3: Создание Pipeline

    Pipeline определяет упорядоченную последовательность Tasks, выполняемых в определённом порядке в рамках вашего CI/CD рабочего процесса.

    1. Создайте файл с именем hello-goodbye-pipeline.yaml со следующим содержимым:

      apiVersion: tekton.dev/v1
      kind: Pipeline
      metadata:
        name: hello-goodbye
      spec:
        params:
          - name: username
            type: string
            description: Имя пользователя, которому говорят «прощай»
            default: "World"
        tasks:
          - name: hello
            taskRef:
              name: hello
          - name: goodbye
            runAfter:
              - hello
            taskRef:
              name: goodbye
            params:
              - name: username
                value: "$(params.username)"

      Этот Pipeline:

      • Определяет параметр username
      • Включает два Task: hello и goodbye
      • Указывает, что goodbye должен выполняться после завершения hello
      • Передаёт параметр Pipeline в Task goodbye
    2. Примените Pipeline в вашем кластере:

      kubectl apply -f hello-goodbye-pipeline.yaml

    Шаг 4: Запуск Pipeline

    PipelineRun используется для запуска Pipeline и передачи необходимых параметров.

    1. Создайте файл с именем hello-goodbye-pipeline-run.yaml со следующим содержимым:

      apiVersion: tekton.dev/v1
      kind: PipelineRun
      metadata:
        name: hello-goodbye-run
      spec:
        pipelineRef:
          name: hello-goodbye
        params:
          - name: username
            value: "Tekton"
    2. Примените PipelineRun в вашем кластере для запуска Pipeline:

      kubectl apply -f hello-goodbye-pipeline-run.yaml
    3. Отслеживайте выполнение Pipeline:

      tkn pipelinerun logs hello-goodbye-run -f

      Вы должны увидеть вывод, похожий на:

      [hello : echo] Hello World!
      [goodbye : goodbye] Goodbye Tekton!

    Шаг 5: Очистка

    Чтобы удалить ресурсы, созданные в этом руководстве:

    kubectl delete -f hello-task.yaml
    kubectl delete -f hello-task-run.yaml
    kubectl delete -f goodbye-task.yaml
    kubectl delete -f hello-goodbye-pipeline.yaml
    kubectl delete -f hello-goodbye-pipeline-run.yaml

    Расширенная настройка

    Когда вы освоитесь с базовыми Task и Pipeline, вы сможете использовать расширенные возможности для улучшения ваших рабочих процессов:

    • How to Configure Dynamic Forms: Настройка динамических форм для операций Pipeline и Task через UI, позволяющая создавать выпадающие списки, правила валидации и динамическую загрузку данных без написания frontend-кода.

    • Output Markdown to the Overview Tab (PipelineRuns & TaskRuns): Вы можете настроить TaskRuns и PipelineRuns для отображения отформатированного markdown-контента во вкладке Overview, что облегчает визуализацию результатов, сводок или отчетов прямо в UI.

    • Для получения дополнительной информации о конфигурации и использовании Pipeline, пожалуйста, обратитесь к разделу How to.