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

    Этот документ поможет новым пользователям быстро понять и использовать 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, позволяющая создавать выпадающие списки, правила валидации и динамическую загрузку данных без написания фронтенд-кода.

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

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