argo_workflows

Ansible Роль: Argo Workflows

Node CI   Release

Это роль Ansible для настройки Argo Workflows в одном пространстве имен.

О проекте

Посмотрите пост в блоге на Medium для подробного руководства.

Требования

  1. Кластер OpenShift с правами cluster-admin.

Зачем нужен доступ cluster-admin?

Argo создает CRD, эта операция требует (если не настроено иначе) прав cluster-admin.

  1. Установленные зависимости для ansible модуля k8s
pip install kubernetes openshift
  1. Установленный kubectl (смотрите https://kubernetes.io/docs/tasks/tools/install-kubectl/)

Установка роли из Ansible Galaxy

ansible-galaxy install thoth-station.argo_workflows

Переменные роли

defaults:
  # Пространство имен, в которое должен быть установлен Argo
  namespace: argo

  # Это предполагает наличие определенных прав и модифицирует ресурсы соответственно
  # Например, предполагается, что разработчик не сможет создавать CRD.
  # Эти ресурсы поэтому должны уже существовать в кластере.
  role: cluster-admin  # варианты: developer, cluster-admin

  # Пользовательский оверлей, который будет применен через kustomize к базовой установке argo.
  # Оверлеи должны находиться в папке [/templates/overlays/](/templates/overlays/) и содержать валидный `kustomization.yaml`
  overlay: ""       # варианты: openshift

  # Арго контейнерный исполнитель
  executor: docker   # варианты: docker, kubelet, k8sapi, pns

  # Проверять ли kubernetes шаблоны перед отправкой через kubectl
  validate: true

  # metricsConfig контролирует путь и порт для метрик prometheus
  metricsEnabled: true
  metricsPath: /metrics
  metricsPort: 8080

  # telemetryConfig контролирует путь и порт для телеметрии prometheus
  telemetryEnabled: true
  telemetryPath: /telemetry
  telemetryPort: 8080

  # Артефакты
  # ---------

  # Тип репозитория артефактов для настройки (если не пусто)
  artifactRepository: ""

  # archiveLogs будет архивировать основные контейнерные логи как артефакт
  # применимо только если artifactRepository != ""
  archiveLogs: {{ archiveLogs }}

  # конфигурация репозитория артефактов s3
  # применимо только если artifactRepository == "s3"
  AWS_S3_BUCKET_PREFIX: ""  # префикс ведра s3
  AWS_S3_ARTIFACT_PATH: ""  # путь к директории артефактов в префиксе
extra:
  # Ссылка на Argo, которую следует использовать
  # Может быть ветка, тег или конкретный коммит (по умолчанию - последняя версия)
  - ref

  # Позволяет переопределять образы.executor и workflow controller
  - executor_image
  - workflow_controller_image

  # Если выбран репозиторий артефактов s3, требуются хост (endpoint) и учетные данные
  - AWS_S3_HOST
  - AWS_S3_BUCKET_NAME
  - AWS_S3_ACCESS_KEY_ID
  - AWS_S3_SECRET_ACCESS_KEY

Пример плейбука

---
- name: "Базовый плей для установки Argo в одно пространство имен."

  hosts: localhost
  connection: local

  roles:
  - role: thoth-station.argo_workflows
    tags:
      - argo
      - argo-workflows
    namespace: argo
    ref: v2.4.0

Роль предоставляет возможность добавлять пользовательские оверлеи через Kustomize, в данный момент существует существующий оверлей для среды OpenShift. Используйте так:

---
- name: "Базовый плей для установки Argo в одно пространство имен."

  hosts: localhost
  connection: local

  roles:
  - role: thoth-station.argo_workflows
    tags:
      - argo
      - argo-workflows
    namespace: argo
    # патч базовой установки для работы в пространстве имен OpenShift
    # это также добавляет маршрут для argo-ui
    overlay: openshift

Испытано на minishift, OpenShift 3.11.


Лицензия

MIT

Информация об авторе

Марк Чермак macermak@redhat.com

Установить
ansible-galaxy install thoth-station/ansible-role-argo-workflows
Лицензия
mit
Загрузки
117
Владелец
Using Artificial Intelligence to analyse and recommend Software Stacks for the Python Ecosystem.