thoth-station.argo_workflows

Ansible Rôle : Argo Workflows

Node CI   Release

Ceci est un rôle Ansible pour mettre en place Argo Workflows dans un seul espace de noms.

À propos

Consultez le article de blog sur Medium pour un guide détaillé.

Exigences

  1. Cluster OpenShift avec des droits de cluster-admin.

Pourquoi un accès cluster-admin est-il requis ?

Argo crée une CRD, cette opération nécessite (sauf configuration contraire) des privilèges de cluster-admin.

  1. Dépendances installées pour le module Ansible k8s
pip install kubernetes openshift
  1. kubectl installé (voir https://kubernetes.io/docs/tasks/tools/install-kubectl/)

Installer le rôle depuis Ansible Galaxy

ansible-galaxy install thoth-station.argo_workflows

Variables du Rôle

defaults:
  # Espace de noms dans lequel Argo doit être provisionné
  namespace: argo

  # Cela suppose certaines privilèges et modifie les ressources en conséquence
  # Par exemple, il est supposé qu'un développeur ne pourra pas créer
  # une CRD. Ces ressources sont donc censées exister déjà dans le cluster.
  role: cluster-admin  # options: developer, cluster-admin

  # Superposition personnalisée à appliquer via kustomize à l'installation de base d'argo.
  # Les superpositions doivent être présentes dans le dossier [/templates/overlays/](/templates/overlays/) et doivent contenir un `kustomization.yaml` valide
  overlay: ""       # options: openshift

  # Exécuteur du runtime de conteneur Argo
  executor: docker   # options: docker, kubelet, k8sapi, pns

  # Que valider les modèles kubernetes lors de la soumission via kubectl
  validate: true

  # metricsConfig contrôle le chemin et le port pour les métriques prometheus
  metricsEnabled: true
  metricsPath: /metrics
  metricsPort: 8080

  # telemetryConfig contrôle le chemin et le port pour la télémétrie prometheus
  telemetryEnabled: true
  telemetryPath: /telemetry
  telemetryPort: 8080

  # Artéfacts
  # ---------

  # Type de dépôt d'artéfacts à configurer (si non vide)
  artifactRepository: ""

  # archiveLogs va archiver les journaux du conteneur principal en tant qu'artéfact
  archiveLogs: {{ archiveLogs }}

  # configuration de dépôt d'artéfacts s3
  AWS_S3_BUCKET_PREFIX: ""  # préfixe du bucket s3
  AWS_S3_ARTIFACT_PATH: ""  # chemin vers le répertoire d'artéfacts dans le préfixe
extra:
  # Référence Argo à utiliser
  - ref

  # Permet d'écraser les images de l'exécuteur et du contrôleur de flux de travail
  - executor_image
  - workflow_controller_image

  # Si le dépôt d'artéfacts s3 est sélectionné, un hôte (point de terminaison) et des identifiants sont nécessaires
  - AWS_S3_HOST
  - AWS_S3_BUCKET_NAME
  - AWS_S3_ACCESS_KEY_ID
  - AWS_S3_SECRET_ACCESS_KEY

Exemple de Playbook

---
- name: "Un Playbook basique pour provisionner Argo dans un seul espace de noms."

  hosts: localhost
  connection: local

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

Le rôle offre la possibilité d'ajouter des superpositions personnalisées via Kustomize, actuellement il existe une superposition pour l'environnement OpenShift. Utilisez-le comme suit :

---
- name: "Un Playbook basique pour provisionner Argo dans un seul espace de noms."

  hosts: localhost
  connection: local

  roles:
  - role: thoth-station.argo_workflows
    tags:
      - argo
      - argo-workflows
    namespace: argo
    overlay: openshift  # patch l'installation de base pour fonctionner dans un espace de noms OpenShift

Testé sur minishift, OpenShift 3.11.


Licence

MIT

Informations sur l'Auteur

Marek Cermak macermak@redhat.com

Installer
ansible-galaxy install thoth-station.argo_workflows
Licence
mit
Téléchargements
129
Propriétaire
Using Artificial Intelligence to analyse and recommend Software Stacks for the Python Ecosystem.