thoth-station.argo_workflows

Rola Ansible: Argo Workflows

Node CI   Release

To jest rola Ansible do skonfigurowania Argo Workflows w pojedynczej przestrzeni nazw.

O roli

Sprawdź ten wpis na Medium dla szczegółowego przewodnika.

Wymagania

  1. Klaster OpenShift z uprawnieniami cluster-admin.

Dlaczego wymagany jest dostęp cluster-admin?

Argo tworzy CRD, ta operacja wymaga (chyba że skonfigurowano inaczej) uprawnień cluster-admin.

  1. Zainstalowane zależności dla modułu ansible k8s
pip install kubernetes openshift
  1. Zainstalowane kubectl (zobacz https://kubernetes.io/docs/tasks/tools/install-kubectl/)

Instalacja roli z Ansible Galaxy

ansible-galaxy install thoth-station.argo_workflows

Zmienne roli

defaults:
  # Przestrzeń nazw, do której Argo powinno być wdrożone
  namespace: argo

  # Zakłada pewne uprawnienia i modyfikuje zasoby odpowiednio
  # Na przykład zakłada, że deweloper nie będzie mógł tworzyć
  # CRD. Zasoby te powinny więc już istnieć w klastrze.
  role: cluster-admin  # opcje: developer, cluster-admin

  # Niestandardowy overlay, który zostanie zastosowany za pomocą kustomize do podstawowej instalacji Argo.
  # Overlay muszą być obecne w folderze [/templates/overlays/](/templates/overlays/) i muszą zawierać prawidłowy `kustomization.yaml`
  overlay: ""       # opcje: openshift

  # Wykonawca kontenera Argo
  executor: docker   # opcje: docker, kubelet, k8sapi, pns

  # Czy walidować szablony kubernetes podczas przesyłania przez kubectl
  validate: true

  # metricsConfig kontroluje ścieżkę i port dla metryk prometheus
  metricsEnabled: true
  metricsPath: /metrics
  metricsPort: 8080

  # telemetryConfig kontroluje ścieżkę i port dla telemetrii prometheus
  telemetryEnabled: true
  telemetryPath: /telemetry
  telemetryPort: 8080

  # Artefakty
  # ---------

  # Rodzaj repozytorium artefaktów do skonfigurowania (jeśli nie jest pusty)
  # opcje:
  # - "s3"
  artifactRepository: ""

  # archiveLogs zarchiwizuje logi głównego kontenera jako artefakt
  # dotyczy tylko, jeśli artifactRepository != ""
  archiveLogs: {{ archiveLogs }}

  # konfiguracja repozytorium artefaktów s3
  # dotyczy tylko, jeśli artifactRepository == "s3"
  AWS_S3_BUCKET_PREFIX: ""  # prefiks koszyka s3
  AWS_S3_ARTIFACT_PATH: ""  # ścieżka do katalogu artefaktów w prefiksie
extra:
  # Argo referencja do użycia
  # Może być to gałąź, tag lub konkretny commit (domyślnie najnowsze wydanie)
  - ref

  # Umożliwia nadpisanie obrazów wykonawcy i kontrolera workflow
  - executor_image
  - workflow_controller_image

  # Jeśli wybrane zostało repozytorium artefaktów s3, wymagane są host (endpoint) i dane uwierzytelniające
  - AWS_S3_HOST
  - AWS_S3_BUCKET_NAME
  - AWS_S3_ACCESS_KEY_ID
  - AWS_S3_SECRET_ACCESS_KEY

Przykład Playbooka

---
- name: "Podstawowy Play do wdrożenia Argo w pojedynczej przestrzeni nazw."

  hosts: localhost
  connection: local

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

Rola umożliwia dodawanie niestandardowych overlayów za pomocą Kustomize, obecnie istnieje overlay dla środowiska OpenShift. Używaj go w następujący sposób:

---
- name: "Podstawowy Play do wdrożenia Argo w pojedynczej przestrzeni nazw."

  hosts: localhost
  connection: local

  roles:
  - role: thoth-station.argo_workflows
    tags:
      - argo
      - argo-workflows
    namespace: argo
    overlay: openshift  # poprawia podstawową instalację, aby działała w przestrzeni nazw OpenShift

Testowane na minishift, OpenShift 3.11.


Licencja

MIT

Informacje o autorze

Marek Cermak macermak@redhat.com

Zainstaluj
ansible-galaxy install thoth-station.argo_workflows
Licencja
mit
Pobrania
129
Właściciel
Using Artificial Intelligence to analyse and recommend Software Stacks for the Python Ecosystem.