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

    Этот документ помогает новым пользователям быстро понять и использовать 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!"
    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: The username to say goodbye to
            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: The username to say goodbye to
            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