thoth-station.argo_workflows

Ansible Role: Argo Workflows

Node CI   Release

This Ansible role helps you set up Argo Workflows in a single namespace.

About

For a step-by-step guide, check out this blog post on Medium.

Requirements

  1. You need an OpenShift cluster with cluster-admin rights.

Why do you need cluster-admin access?

Argo requires creating a Custom Resource Definition (CRD), which needs cluster-admin privileges.

  1. You must have the required dependencies for the Kubernetes Ansible module:

    pip install kubernetes openshift
    
  2. You need to have kubectl installed. More info can be found here.

Install the Role from Ansible Galaxy

To install the role, run:

ansible-galaxy install thoth-station.argo_workflows

Role Variables

Here's how you can configure the role:

defaults:
  # Choose the namespace for Argo installation
  namespace: argo

  # Define access level
  role: cluster-admin  # options: developer, cluster-admin

  # Custom overlay for Argo installation via kustomize
  overlay: ""  # options: openshift

  # Choose the executor for Argo
  executor: docker   # options: docker, kubelet, k8sapi, pns

  # Validate Kubernetes templates when using kubectl
  validate: true

  # Configurations for Prometheus metrics and telemetry
  metricsEnabled: true
  metricsPath: /metrics
  metricsPort: 8080
  telemetryEnabled: true
  telemetryPath: /telemetry
  telemetryPort: 8080

  # Artifact repository configuration
  artifactRepository: ""
  archiveLogs: {{ archiveLogs }}
  AWS_S3_BUCKET_PREFIX: ""
  AWS_S3_ARTIFACT_PATH: ""
extra:
  # Specify the Argo version
  - ref

  # Overwrite executor and workflow controller images
  - executor_image
  - workflow_controller_image

  # If using an S3 artifact repository, provide endpoint and credentials
  - AWS_S3_HOST
  - AWS_S3_BUCKET_NAME
  - AWS_S3_ACCESS_KEY_ID
  - AWS_S3_SECRET_ACCESS_KEY

Example Playbook

Here's a simple playbook to set up Argo in a single namespace:

---
- name: "Set up Argo in a single namespace."

  hosts: localhost
  connection: local

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

You can also add custom overlays using Kustomize. Here's an example for OpenShift:

---
- name: "Set up Argo in a single namespace with OpenShift overlay."

  hosts: localhost
  connection: local

  roles:
  - role: thoth-station.argo_workflows
    tags:
      - argo
      - argo-workflows
    namespace: argo
    overlay: openshift  # This will apply OpenShift-specific changes.

Tested on Minishift and OpenShift 3.11.


License

This project is licensed under MIT.

Author Information

Marek Cermak macermak@redhat.com

Installa
ansible-galaxy install thoth-station.argo_workflows
Licenza
mit
Download
129
Proprietario
Using Artificial Intelligence to analyse and recommend Software Stacks for the Python Ecosystem.