Spec-Zone.ru › Ansible 2.8

gcp_cloudbuild_trigger – Создаёт триггер GCP

Новая версия с 2.8.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Обзор

  • Настройка автоматического сборки в ответ на изменения в репозитории исходного кода.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • python >= 2.6
  • requests >= 2.18.4
  • google-auth >= 1.3.0

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
auth_kind
строка / обязательно
    Варианты:
  • application
  • machineaccount
  • serviceaccount
Тип используемых учетных данных.
build
-
Содержание шаблона сборки. Должен быть указан либо файл, либо шаблон сборки.
images
-
Список изображений, которые будут загружены после успешного выполнения всех шагов сборки.
Изображения загружаются с использованием учетных данных сервисного аккаунта сборщика.
Хэши загруженных изображений будут сохранены в поле результатов ресурса сборки.
Если какое-либо изображение не удастся загрузить, статус сборки будет помечен как «ОШИБКА».
steps
-
Операции, которые будут выполнены в рабочей области.
args
-
Список аргументов, которые будут переданы шагу при его запуске.
Если для изображения, используемого для запуска контейнера шага, определена точка входа, args используются в качестве аргументов к этой точке входа. Если в изображении точка входа не определена, первый элемент в args используется в качестве точки входа, а остальные — в качестве аргументов.
dir
-
Рабочая директория, используемая при запуске контейнера данного шага.
Если это относительный путь, он относительный к рабочей директории сборки. Если это абсолютный путь, он может находиться вне рабочей директории сборки, в этом случае содержимое пути может не сохраняться между выполнениями шагов сборки, если для этого пути не указан `volume`.
Если сборка указывает `RepoSource` с `dir`, и шаг с `dir`, который указывает абсолютный путь, то `RepoSource` `dir` игнорируется для выполнения шага.
entrypoint
-
Точка входа, которая будет использоваться вместо значения по умолчанию для изображения шага сборки.
Если не задано, используется значение по умолчанию изображения.
env
-
Список определений переменных окружения, которые будут использоваться при выполнении шага.
Элементы имеют вид «KEY=VALUE», где переменной окружения «KEY» присваивается значение «VALUE».
id
-
Уникальный идентификатор для данного шага сборки, используемый в `wait_for` для ссылки на этот шаг сборки в качестве зависимости.
name
-
Имя контейнерного образа, который будет выполнять данный шаг сборки.
Если образ доступен в кэше демона Docker хоста, он будет запущен непосредственно. В противном случае хост попытается сначала загрузить образ, используя учетные данные сервисного аккаунта сборщика, если необходимо.
В кэше демона Docker хоста уже имеются самые последние версии всех официально поддерживаемых шагов сборки (https://github.com/GoogleCloudPlatform/cloud-builders.)
Дэмон Docker также кэширует многие слои для некоторых популярных образов, таких как "ubuntu", "debian", но они обновляются в момент попытки их использования.
Если вы создали образ на предыдущем шаге сборки, он будет сохранён в кэше демона Docker хоста и доступен для использования на последующих шагах сборки.
secret_env
-
Список переменных среды, которые зашифрованы с помощью криптографического ключа Cloud Key Management Service. Эти значения должны быть указаны в `Secret` сборки.
timeout
-
Время ожидания для выполнения данного шага сборки. Если не задано, у шага нет лимита времени, и он будет выполняться до завершения или завершения самой сборки.
timing
-
Только для вывода. Содержит информацию о времени выполнения данного шага сборки.
volumes
-
Список томов, которые нужно смонтировать в шаг сборки.
Каждый том создаётся как пустой том до начала выполнения шага сборки. По завершении сборки тома и их содержимое удаляются.
Использование именованного тома только в одном шаге является недопустимым, так как это указывает на запрос сборки с неправильной конфигурацией.
name
-
Имя тома для монтирования.
Имена томов должны быть уникальными для каждого шага сборки и должны быть допустимыми именами для томов Docker. Каждый именованный том должен использоваться как минимум двумя шагами сборки.
path
-
Путь для монтирования тома.
Пути должны быть абсолютными и не могут конфликтовать с другими путями томов в том же шаге сборки или с определёнными резервированными путями томов.
wait_for
-
Идентификатор(ы) шага(ов), от которых зависит данный шаг сборки.
Данный шаг сборки не начнётся, пока все шаги сборки в `wait_for` не будут выполнены успешно. Если `wait_for` пусто, этот шаг сборки начнётся, когда все предыдущие шаги сборки в списке `Build.Steps` будут успешно завершены.
tags
-
Теги для аннотирования сборки. Это не теги Docker.
description
-
Описание триггера для отображения пользователю.
disabled
boolean
    Варианты:
  • no
  • yes
Отключён ли триггер. Если значение true, триггер никогда не приведёт к созданию сборки.
filename
-
Путь к файлу, начиная с корневого каталога исходного кода, содержимое которого используется для шаблона. Должен быть указан либо файл, либо шаблон сборки.
id
-
Уникальный идентификатор для триггера.
ignored_files
-
ignoredFiles и includedFiles — это шаблоны соответствия файлам, использующие http://godoc/pkg/path/filepath#Match, расширенные поддержкой `**`.
Если ignoredFiles и изменённые файлы оба пусты, то они не используются для определения того, нужно ли запускать сборку.
Если ignoredFiles не пусто, то мы игнорируем любые файлы, которые соответствуют любому из шаблонов ignored_file. Если изменение не содержит файлов, которые находятся вне шаблонов ignoredFiles, то мы не запускаем сборку.
included_files
-
ignoredFiles и includedFiles — это шаблоны соответствия файлам, использующие http://godoc/pkg/path/filepath#Match, расширенные поддержкой `**`.
Если любые из изменённых в коммите файлов проходят фильтр ignoredFiles, а includedFiles пусто, то, насколько касается этого фильтра, мы должны запустить сборку.
Если любые из изменённых в коммите файлов проходят фильтр ignoredFiles, а includedFiles не пусто, то мы убеждаемся, что хотя бы один из этих файлов соответствует шаблону includedFiles. Если нет, то мы не запускаем сборку.
project
строка
Проект Google Cloud Platform для использования.
scopes
список
Массив используемых областей.
service_account_contents
строка
Строка, представляющая содержимое файла JSON сервисного аккаунта.
Это не должно передаваться в виде словаря, а в виде строки с точным содержимым файла JSON сервисного аккаунта (валидный JSON).
service_account_email
строка
Необязательный адрес электронной почты сервисного аккаунта, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию.
service_account_file
путь
Путь к файлу JSON учетной записи службы, если в качестве типа выбрана учетная запись службы.
state
-
    Варианты:
  • present ←
  • absent
Указывает, должен ли данный объект существовать в GCP
substitutions
-
Данные подстановок для ресурса Build.
trigger_template
-
Шаблон, описывающий типы изменений исходного кода, которые запускают сборку.
Имена ветвей и тегов в шаблонах триггеров интерпретируются как регулярные выражения. Любое изменение ветви или тега, соответствующее этому регулярному выражению, запустит сборку.
branch_name
-
Имя ветви для сборки. Должен быть указан один из: имя ветви, тега или SHA коммита.
commit_sha
-
Явный SHA коммита для сборки. Должен быть указан один из: имя ветви, тега или SHA коммита.
dir
-
Директория, относительная к корню исходного кода, в которой следует выполнить сборку.
Это должен быть относительный путь. Если для шага задан dir как абсолютный путь, это значение игнорируется для выполнения этого шага.
project_id
-
Идентификатор проекта, владеющего Cloud Source Repository. Если опущено, предполагается идентификатор проекта, запрашивающего сборку.
repo_name
-
По умолчанию:
"default"
Имя Cloud Source Repository. Если опущено, предполагается имя "default".
tag_name
-
Имя тега для сборки. Должен быть указан один из: имя ветви, тега или SHA коммита.

Примечания

Примечание

  • Справочник API: https://cloud.google.com/cloud-build/docs/api/reference/rest/
  • Автоматизация сборок с помощью триггеров сборок: https://cloud.google.com/cloud-build/docs/running-builds/automate-builds
  • Идентификатор этого ресурса создаётся API после первого создания ресурса. Если вы хотите управлять этим ресурсом после создания, вам необходимо скопировать сгенерированный идентификатор в конфигурационный файл. В противном случае будут создаваться новые триггеры при последующих запусках.
  • Для аутентификации можно установить service_account_file с помощью переменной среды GCP_SERVICE_ACCOUNT_FILE.
  • Для аутентификации можно установить service_account_email с помощью переменной среды GCP_SERVICE_ACCOUNT_EMAIL.
  • Для аутентификации можно установить service_account_contents с помощью переменной среды GCP_SERVICE_ACCOUNT_CONTENTS.
  • Для аутентификации можно установить auth_kind с помощью переменной среды GCP_AUTH_KIND.
  • Для аутентификации можно установить scopes с помощью переменной среды GCP_SCOPES.
  • Значения переменных среды будут использоваться только в случае, если значения конфигурационного файла не заданы.
  • Параметры service_account_email и service_account_file взаимоисключающие.

Примеры

- name: create a repository
  gcp_sourcerepo_repository:
    name: projects/{{ gcp_project }}/repos/{{ resource_name }}
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present

- name: create a trigger
  gcp_cloudbuild_trigger:
    trigger_template:
      branch_name: master
      project_id: test_project
      repo_name: test_object
    filename: cloudbuild.yaml
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

Значения возврата

Общие значения возврата документированы здесь, следующие являются полями, уникальными для этого модуля:

Ключ Возвращаемое значение Описание
build
сложный
успех
Содержание шаблона сборки. Должен быть указан либо файл, либо шаблон сборки.

images
список
успех
Список изображений, которые необходимо опубликовать после успешного выполнения всех этапов сборки.
Изображения публикуются с использованием учетных данных сервисного аккаунта сборщика.
Хэши опубликованных изображений будут сохранены в поле результатов ресурса Сборка.
Если какое-либо из изображений не удается опубликовать, статус сборки отмечается как ОШИБКА.

steps
сложный
успех
Операции, которые должны быть выполнены в рабочем пространстве.

args
список
успех
Список аргументов, которые будут переданы шагу при его запуске.
Если изображение, используемое для запуска контейнера шага, имеет точку входа, аргументы используются в качестве аргументов для этой точки входа. Если изображение не определяет точку входа, первый элемент в аргументах используется в качестве точки входа, а оставшиеся элементы используются в качестве аргументов.

dir
строка
успех
Рабочий каталог, который следует использовать при запуске контейнера этого шага.
Если это значение является относительным путем, оно относительно рабочего каталога сборки. Если это значение является абсолютным, оно может находиться вне рабочего каталога сборки, в этом случае содержимое пути может не сохраняться между выполнением этапов сборки, если для этого пути не указан том.
Если сборка указывает `RepoSource` с `dir` и шаг со `dir`, указывающий абсолютный путь, `dir` `RepoSource` игнорируется для выполнения шага.

entrypoint
строка
успех
Точка входа, которая должна использоваться вместо точки входа по умолчанию изображения шага сборки.
Если не установлено, используется точка входа по умолчанию изображения.

env
список
успех
Список определений переменных среды, которые будут использоваться при запуске шага.
Элементы имеют вид «KEY=VALUE» для переменной среды «KEY», которой присваивается значение «VALUE».

id
строка
успех
Уникальный идентификатор для этого шага сборки, используемый в `wait_for` для ссылки на этот шаг сборки в качестве зависимости.

name
строка
успех
Имя контейнерного изображения, которое будет запускать этот конкретный шаг сборки.
Если изображение доступно в кэше демона Docker хоста, оно будет запущено непосредственно. В противном случае хост попытается сначала скачать изображение, используя учетные данные сервисного аккаунта сборщика при необходимости.
В кэше демона Docker уже будут содержаться последние версии всех официально поддерживаемых этапов сборки (https://github.com/GoogleCloudPlatform/cloud-builders).
Демон Docker также будет кэшировать многие слои для некоторых популярных изображений, таких как «ubuntu», «debian», но они будут обновлены в момент попытки их использования.
Если вы создали изображение на предыдущем шаге сборки, оно будет храниться в кэше демона Docker хоста и доступно для использования на последующих шагах сборки.

secretEnv
список
успех
Список переменных среды, которые зашифрованы с помощью криптоключа службы управления ключами Cloud. Эти значения должны быть указаны в `Secret` сборки.

timeout
строка
успех
Срок выполнения этого шага сборки. Если не определено, у шага нет лимита по времени, и ему будет разрешено продолжать выполняться до тех пор, пока он не завершится или не истечёт время ожидания самой сборки.

timing
строка
успех
Только для вывода. Содержит информацию о времени выполнения этого шага сборки.

volumes
сложный
успех
Список томов, которые необходимо смонтировать в шаг сборки.
Каждый том создаётся как пустой том перед выполнением шага сборки. После завершения сборки тома и их содержимое удаляются.
Использование именованного тома только в одном шаге неверно, так как это указывает на запрос сборки с неправильной конфигурацией.

name
строка
успех
Имя монтируемого тома.
Имена томов должны быть уникальными для каждого шага сборки и должны быть допустимыми именами томов Docker. Каждый именованный том должен использоваться как минимум двумя шагами сборки.

path
строка
успех
Путь, по которому монтируется том.
Пути должны быть абсолютными и не должны конфликтовать с другими путями томов на том же шаге сборки или с определёнными зарезервированными путями томов.

waitFor
список
успех
Идентификатор(ы) шага(ов), от которого зависит этот шаг сборки.
Этот шаг сборки не начнется, пока все шаги сборки в `wait_for` не завершатся успешно. Если `wait_for` пусто, этот шаг сборки начнется, когда все предыдущие шаги сборки в списке `Build.Steps` завершатся успешно.

tags
список
успех
Теги для аннотации ресурса Сборка. Это не теги Docker.

createTime
строка
успех
Время создания триггера.

description
строка
успех
Описание триггера, понятное человеку.

disabled
булево
успех
Отключен ли триггер. Если true, триггер никогда не приведет к созданию сборки.

filename
строка
успех
Путь к файлу от корневого каталога исходного кода, содержимое которого используется в шаблоне. Должен быть указан либо файл, либо шаблон сборки.

id
строка
успех
Уникальный идентификатор триггера.

ignoredFiles
список
успех
ignoredFiles и includedFiles — это шаблоны файлов, использующие http://godoc/pkg/path/filepath#Match с расширением поддержки `**`.
Если ignoredFiles и изменённые файлы пустые, они не используются для определения того, нужно ли запускать сборку.
Если ignoredFiles не пустой, игнорируются все файлы, соответствующие шаблонам ignored_file. Если изменения не содержат файлов, которые находятся за пределами шаблонов ignoredFiles, сборка не запускается.

includedFiles
список
успех
ignoredFiles и includedFiles — это шаблоны файлов, использующие http://godoc/pkg/path/filepath#Match с расширением поддержки `**`.
Если какие-либо из изменённых в коммите файлов проходят фильтр ignoredFiles и includedFiles пустое, по этому фильтру запускается сборка.
Если какие-либо из изменённых в коммите файлов проходят фильтр ignoredFiles и includedFiles не пустое, убеждаемся, что хотя бы один из этих файлов соответствует шаблону includedFiles. Если нет, сборка не запускается.

substitutions
словарь
успех
Данные подстановок для ресурса Сборка.

triggerTemplate
сложный
успех
Шаблон, описывающий типы изменений исходного кода для запуска сборки.
Имена ветвей и тегов в шаблонах триггеров интерпретируются как регулярные выражения. Любое изменение ветви или тега, соответствующее этому регулярному выражению, запустит сборку.

branchName
строка
успех
Имя ветви для сборки. Должен быть указан только один из имени ветки, тега или хэша коммита.

commitSha
строка
успех
Явный хэш коммита для сборки. Должен быть указан только один из имени ветки, тега или хэша коммита.

dir
string
success
Директория, относительная к корню источника, в которой нужно запустить сборку.
Это должен быть относительный путь. Если для шага указан dir в виде абсолютного пути, это значение игнорируется для выполнения этого шага.

projectId
string
success
Идентификатор проекта, который владеет Cloud Source Repository. Если опущено, используется идентификатор проекта, запрашивающего сборку.

repoName
string
success
Имя Cloud Source Repository. Если опущено, предполагается имя "default".

tagName
string
success
Имя тега для сборки. Должно быть указано ровно одно из имени ветки, тега или SHA коммита.



Статус

  • Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
  • Данный модуль поддерживается сообществом Ansible. [community]

Авторы

  • Google Inc. (@googlecloudplatform)

Подсказка

Если вы заметили какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/gcp_cloudbuild_trigger_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API