Skip to content
This repository has been archived by the owner on Jul 31, 2023. It is now read-only.
/ argo-poc Public archive

PoC with argo workflows, argo events and fission

Notifications You must be signed in to change notification settings

thspinto/argo-poc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Argo Workflows PoC

This is a PoC demonstrating possible integrations using Argo Workflows and Argo Events.

  1. Static Analysis pipelines with github global hooks

  2. Scheduled DAG triggers with timezone support

  3. Build using Drone file

Architecture

TODO

Running the PoC

  1. Spin up a kubernetes of your choice.

  2. Install All: Argo Events, Argo Workflows, Fission

kubectl apply -f kube/

To install from the master branch use:

kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-events/master/hack/k8s/manifests/installation.yaml
kubectl create namespace argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/stable/manifests/install.yaml
kubectl -n fission apply -f \
    https://github.com/fission/fission/releases/download/1.8.0/fission-all-1.8.0-minikube.yaml

This installation only reads argo events resources form the argo-events namespace.

References:

Installing Argo Events Installing Argo Workflows Installing Fission

  1. Install the Argo Workflows cli

  2. Install the Fission cli

  3. Argo Workflow Artifact Support

helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm repo update
helm install argo-artifacts stable/minio --set service.type=LoadBalancer --set fullnameOverride=argo-artifacts

References:

Configure Artifact Repository

Tasks

  1. Triggering events using argo events
  • Show integration with Workflows
kubectl -n argo-events -f http-workflow-sensor.yaml
kubectl -n port-forward svc/webhook-gateway-svc 12000:12000
curl -d '{"message":"this is my first webhook"}' -H "Content-Type: application/json" -X POST http://localhost:12000/example

To check the workflow status and logs run:

argo list -n argo-events
argo -n argo-events logs <workflow-id>
  • Show integration with Fission

Spin up a simple Fission function

# Add the stock NodeJS env to your Fission deployment
fission env create --name nodejs --image fission/node-env

# Upload your function code to fission
fission function create --name hello --env nodejs --code hello.js

# Map GET /hello to your new function
fission route create --method GET --url /hello --function hello
  • Github Webhook

  • Kafka

  • SQS

  1. Global CI pipelines
  • Use Github webhooks to trigger a pipeline (would be nice to support Drone's YAML)
  • Scan for secrets on Github webhook
  1. Scheduled jobs
  • Trigger a daemons job using argo events

Productizing

  • Use helm charts to simplify events and workflows deployments

  • Drone file to workflow conversion?

About

PoC with argo workflows, argo events and fission

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published